From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E997C3ABBC for ; Fri, 9 May 2025 06:29:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DDCA76B00A5; Fri, 9 May 2025 02:29:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D628A6B00A6; Fri, 9 May 2025 02:29:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B8C9B6B00A7; Fri, 9 May 2025 02:29:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 921D36B00A5 for ; Fri, 9 May 2025 02:29:34 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 746AE140F48 for ; Fri, 9 May 2025 06:29:34 +0000 (UTC) X-FDA: 83422393068.23.63921C3 Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by imf04.hostedemail.com (Postfix) with ESMTP id 7B07440003 for ; Fri, 9 May 2025 06:29:32 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=gvgj+cMG; spf=pass (imf04.hostedemail.com: domain of linus.walleij@linaro.org designates 209.85.167.52 as permitted sender) smtp.mailfrom=linus.walleij@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746772172; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Kui/dpXjyf721yPk8tNp429b4S3nyc36grEQ6IAzGfY=; b=HxAKaA2A88nAAPg68dd7v0l4afhFYNhP3/sEo7PyHJbruNkEHROjX9J2UB3Tdfe5ivts70 QvjmJ57wPw8mfbmuk9uwJkIv+WuhDpoxaFhsCRXYE6SP1z0m88eS0xcAqJv3om4kSavA6e xjq/ofXEToeMrQFhERHv8vU9ErJTe2w= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=gvgj+cMG; spf=pass (imf04.hostedemail.com: domain of linus.walleij@linaro.org designates 209.85.167.52 as permitted sender) smtp.mailfrom=linus.walleij@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746772172; a=rsa-sha256; cv=none; b=J+3a6JKNIkVL12aJAimJhtcbTdcIe5pBAJqmhWaFwMfEeAa94vB3v92WrlBTl+a7Oc0/D1 x8sG5J0Nxd4ELsIjyzaXHhdvABEnMnOH1vkd6Dk5uOGcm8/LKp8adO6FxTOLpRJaVTjSDu WWYMYfJKz0nxZE6aU6MYUiBbrRH9Aiw= Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-54d65cb6e8aso2213167e87.1 for ; Thu, 08 May 2025 23:29:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746772170; x=1747376970; darn=kvack.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Kui/dpXjyf721yPk8tNp429b4S3nyc36grEQ6IAzGfY=; b=gvgj+cMGMtQt94AyVynfcHsAoLMbv4WgYKS21Z8eWCzd7O9rgZ6UC8YWLMfbSmYg/V EdBdXaWGIxkhhVLn73u7dRh4rSmAhs3EGrURvin1+DaOfvj0Dbm0HIEvjPjC6E9nJbOq v82G63KXtrSQsKzeHbacKmza6Axv2cVWw6pziqIP+IELvpLkmCD42ow2o8hyVlZCCOf2 yfo03xlbv5jCVrWQ/J/TKc/D80k/Rkko1I96LTrlCshNYtuJDue/2112nzCQm+JWUPAg cdXH6oIkYEF8TclVL3CYZoJKupGMnoOA17XQtyIaIBrhtBYY4DCd8VVHI1jRRaD8M8Oe +m9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746772170; x=1747376970; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Kui/dpXjyf721yPk8tNp429b4S3nyc36grEQ6IAzGfY=; b=P/DXcuQPS3M6OUe3Cp7kJDtTSJNab4E7mOtAWjFxGSE8dqfwVBHnN3n5Uq5sFoRmq7 joyDYbe5yTqdkAUptPRkgvRmO9a9J0o1QZsZZuPPz9Kki70ozzrWOxMAvrCn77lEqCys nHKWXlwd5Vhg/vHrI9EzI/xC/FGeAXecmKxeBHe3RLeOb0wVyTH6QDj05mKuYYnBsBry t1yqDH+EqJVR5NO/KyG0xgh5Od8JAEFgm8aeXtqL+7HCsrCSx5BTNeQXl4FEPoZZXTJz 4QE9u9mhywB8Z9XNqbD6quIdwCqicHOvg0ayqAtnZG1fclzB0F0gOTr0JqjzzSQaBvPM VubQ== X-Forwarded-Encrypted: i=1; AJvYcCWO/3yjdqXccg2o1EEh3YSjRZXEbOEYnnMrOi7yxqgLFDrH/L2w0pDr5SB6qn3Y6PGtqEO0B7Yg1Q==@kvack.org X-Gm-Message-State: AOJu0YzC1QJ4RbLk1YDUN2dU3UtDpuAModUrTysze9Z1PLYlDoZP0AIu HyeIvOZiN1KO792qMg9G5o/Wo0EHDOJzRktgc7Rc3qMc/v4H1IS9qH2/cRcyXGrmNETxyB2KCiz E X-Gm-Gg: ASbGncv9TPpIVbBaRDLpTCDJMBlGBy7NtdKCz+vX58Zk4vKcQ95Y0828ijEFo46kUPF 51jx5jc0l7nVVzdQ/ZHNvqjUH1Goomtn42DqZteuI/1Ktxlnu+7yziBKRqDMVXQMOFGdDdGiws8 2Xn5GkZ1gwFMlDJct6xAKeL64tKLY5jpKwaFLLSWcuoRLCunYs0/sURhgu61iyGeED/Ys79sbDg HXNe2Lnekz+523JF6D3efPrmXugXu4dUenq4iXlyJtU7Xx3NrOUpAd6uRlCDEbJPftR3HEFYGsj VMs2H0U2rxxKlzvkRuwP3boV+AKDhjO9xJ919vQePiTdvlnFFRI= X-Google-Smtp-Source: AGHT+IF7KWDvzUcDNQHF20FCJEaQE6aYjB4ljDg/onWuXnGrufwLeztd8/g+4jznn/hGqTf+o0Ud+Q== X-Received: by 2002:a05:6512:260f:b0:54e:a28b:7b31 with SMTP id 2adb3069b0e04-54fc67ae50emr533629e87.4.1746772169714; Thu, 08 May 2025 23:29:29 -0700 (PDT) Received: from [192.168.1.140] ([85.235.12.238]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54fc64b6dfdsm184223e87.117.2025.05.08.23.29.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 May 2025 23:29:29 -0700 (PDT) From: Linus Walleij Date: Fri, 09 May 2025 08:29:28 +0200 Subject: [PATCH v3 3/3] fork: check charging success before zeroing stack MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250509-fork-fixes-v3-3-e6c69dd356f2@linaro.org> References: <20250509-fork-fixes-v3-0-e6c69dd356f2@linaro.org> In-Reply-To: <20250509-fork-fixes-v3-0-e6c69dd356f2@linaro.org> To: Andrew Morton , linux-mm@kvack.org, Pasha Tatashin , Mateusz Guzik Cc: Linus Walleij X-Mailer: b4 0.14.2 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 7B07440003 X-Stat-Signature: hj949qbx8y4beqm34chomdkw9d46pqii X-HE-Tag: 1746772172-503594 X-HE-Meta: U2FsdGVkX19yMNzQilctUZoeXZKhkt9iPgCbec1AbyPrnwblFpmmaRd6Zb2huJGfH+nTgEVj/SDbX7zLsnEIZLUxeqycDwlMe/oieMy8eMxW2HZ7GKgrT+aN0AG5vxed23ASnTzG7yFo8GjoQD8OmurCvDsg3gXbSBoykIORVCorN3RzvuVuCXjPwChlPmoCw3MvJvmpcJ4AAopRiB0MEorJomxqJfJ/hNfzMsQzGtGqFrvMRueCTHRWKGdVLBvbochLdufBZYVRMBMHPshJhNI3ANCfy1HELMkJ0RrP5qnk4CD1qLSI0Iow5GT99YQAaUXjtOxbYMcTiAh9LdkSMJxYZd/pfYNvcr+GojxQaGDNRtqZKN2Vim9uYKeHGwgiy/a8zlFR24NlZCxdzVRu3LNjUPpJkHWjpYT2kd1JwMrgatl2rwyS+vnBEsv1cCepeaSHFIr75CFs5wOEXUnnyVYndcOK9YwqU5BDZduhz4wUo2DQH+KmNewur/qV5XXs3AfnWI/H9cJuTbT2/dD0TAV3x+Pc4iyM8qwLLSafKMQiAtJgCdYtoPdpOjpN1qeH7QGFBlFYGZqdzK2rrP+3SyaoSdv5/uedxw3JbUbG2vzLSDNFcyz54aFPwF0LfYc+wAJ3P/xw4vlbWTaTxRbjvka9c+Yju3ajVFR9nRrUobGPbMwa5WH+uI3amVaaCwnsxKNw3QwhtJED9fj2Wgj84dyU6aEvCE+X7o3MJs6kq/Bi8rU6wGjXeV9YFO9RwCMRO34Woxl7wwWRxYSGuO5LKGjskCIs7/ROR5DD7wXOiB2IMumpHOccx1n4N0TYDj9Gh34MP4YAC1hdJsb9YUHmK7v3j+jtai7006/NmZvA2BLLFYiAYq4UOUKLe80XcE9NJfea5o0axCNUG9ZP5nldExUB3aMPly7qJ2L5kbPvtms23tLVvGFcswQh8R2zbTSQqqwBVKYFPOV5UBpwXA6 1RnDPrkB T532eBYBC+7eErLLWeFeVC522WeerhokIwjvFaifIl85Ng/bH8UJUehuD0ZNblSbZYD+nyLyiixmNibFMgW13fB+1Cvw/6g2ieaKxjKHwerQA8TyP34fwVPDexOanT0vt9yquA1ftPJj8K891c85QKmQoU7HPeU0LPRYINWVxXRn9IXL5gqIsOZ8P8nl0cfg+na0IxvdDnpVkMDv99lwQ4rYAGGe2BBW0Hrfu3h2PAYaFW5oBUmEqTV3VloWv0XJ8Xmx8RwaXTimIb91/TyQMsO4QLS+r3NiIjXhI5cqro7Hd8/4Tk/ELNjMXyYM0dRH6ZGW2gcaKAZRQxg7s5NkffiwZ6QLWrlJPk3k+D3Mxrk+VWM/O4S5EZA+XIBb2WIG4jWkgiMv8329ooJFPgrY4M36jhYvGTdYad8JN X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Pasha Tatashin No need to do zero cached stack if memcg charge fails, so move the charging attempt before the memset operation. Signed-off-by: Pasha Tatashin Link: https://lore.kernel.org/20240311164638.2015063-6-pasha.tatashin@soleen.com [linus.walleij@linaro.org: Rebased] Signed-off-by: Linus Walleij --- kernel/fork.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c index 8b8457562740c114c640a8cc230876f6a286b246..d6907c49ee87a96a10e231496d27bd29d50be881 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -280,6 +280,11 @@ static int alloc_thread_stack_node(struct task_struct *tsk, int node) if (!vm_area) continue; + if (memcg_charge_kernel_stack(vm_area)) { + vfree(vm_area->addr); + return -ENOMEM; + } + /* Reset stack metadata. */ kasan_unpoison_range(vm_area->addr, THREAD_SIZE); @@ -288,11 +293,6 @@ static int alloc_thread_stack_node(struct task_struct *tsk, int node) /* Clear stale pointers from reused stack. */ memset(stack, 0, THREAD_SIZE); - if (memcg_charge_kernel_stack(vm_area)) { - vfree(vm_area->addr); - return -ENOMEM; - } - tsk->stack_vm_area = vm_area; tsk->stack = stack; return 0; -- 2.49.0