From patchwork Mon Dec 18 08:23:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tong Tiangen X-Patchwork-Id: 180199 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:24d3:b0:fb:cd0c:d3e with SMTP id r19csp1099875dyi; Mon, 18 Dec 2023 00:24:45 -0800 (PST) X-Google-Smtp-Source: AGHT+IEnAEwbAr+Md41i4c0npfqcTEsWtymMSxc/2dXt1iXy+UV1VcczI8u+/S+FRTne/Rf1hmTp X-Received: by 2002:ac8:7d82:0:b0:425:9e5f:1015 with SMTP id c2-20020ac87d82000000b004259e5f1015mr19525821qtd.106.1702887885678; Mon, 18 Dec 2023 00:24:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702887885; cv=none; d=google.com; s=arc-20160816; b=K744yoocKjsTNWOIUF0uAaSZatcYbGFGz473G5FIT4L7IF1rxahISBGlAT2YznPcLC V1Kv9TscHjKQrD3MxBks+JtWLYNkfi+aef9fXGhPKCRv+DnSHj8PKPZP25NtKnchauaI BS1Ogs2iO4s/ziNqlgQb5TvmFyIp3Mr/pSad2Hpf36TUTaRNLRmP2v1QZxVJMdNvWlwR Y2JA5A0MG8qrkg+7+S99AaGOOGemyIg5Pkjdkupp8lCEsGAj21xaKCYFtnNeTYza5kdi JQij4W7Kz7pPxIZic4wuW0AJm7I1YRwPETIihfM2HXuaZv8MB7A/dPQ+XqOUKMr9dNuu jOLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from; bh=RWelpyzW3rv3OqFIwOb3OXrWhQlJpUZfCmh4vKefgxw=; fh=fozFfmvOB2OH6LioO+nm/i/X+k2E+hTLuoXcoSn9Ark=; b=jQQbkNA7X+CNQnPRLCU1dWWe/yUR7cjbyZ8gtFNtxp2G4wJhI5iH/j0MP973hhstye h//2X+xBFQu1w2J0t7wn7Nf2HQTGo10gwCySsNUnq1ARh4iriFbpPv0are3S9K4BbeJI KMlNGC2bqudjxFu4MmiwWyjw835JPHmnSfepiI4edQUg4KYnkfXYtmLf9xlNM2D4roY+ JgY+afy9iyWZDhMY8ElMQo24WRSpKcfSgD/JX1f63HKEq2k+ax/+RvefBz5VPVB0gKi6 IgLcv7Y7Oq8h7AKQDwacsZvdGXr0CM9cAOhrSsrebYepwdb0Bl+wuyobpNA8fjcCvayW 6bGg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-3154-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-3154-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id r17-20020a05622a035100b00425a1900d5csi23399431qtw.240.2023.12.18.00.24.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Dec 2023 00:24:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-3154-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-3154-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-3154-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id CEF461C224C3 for ; Mon, 18 Dec 2023 08:24:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6741E1094B; Mon, 18 Dec 2023 08:24:28 +0000 (UTC) X-Original-To: linux-kernel@vger.kernel.org Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D382C125B0; Mon, 18 Dec 2023 08:24:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=huawei.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=huawei.com Received: from mail.maildlp.com (unknown [172.19.162.254]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4SttCK0dlFzZdZ4; Mon, 18 Dec 2023 16:24:13 +0800 (CST) Received: from kwepemm000017.china.huawei.com (unknown [7.193.23.46]) by mail.maildlp.com (Postfix) with ESMTPS id 50A1518005A; Mon, 18 Dec 2023 16:24:19 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm000017.china.huawei.com (7.193.23.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 18 Dec 2023 16:24:18 +0800 From: Tong Tiangen To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , , Dave Hansen , , "H. Peter Anvin" , Tony Luck , Andy Lutomirski , Peter Zijlstra , Andrew Morton , Naoya Horiguchi CC: , , , Tong Tiangen , Guohanjun Subject: [PATCH -next v3 2/3] x86/mce: rename MCE_IN_KERNEL_COPYIN to MCE_IN_KERNEL_COPY_MC Date: Mon, 18 Dec 2023 16:23:59 +0800 Message-ID: <20231218082400.2694698-3-tongtiangen@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231218082400.2694698-1-tongtiangen@huawei.com> References: <20231218082400.2694698-1-tongtiangen@huawei.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm000017.china.huawei.com (7.193.23.46) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785607367233196347 X-GMAIL-MSGID: 1785607367233196347 In the x86 mce processing, macro MCE_IN_KERNEL_COPYIN is used to identify copied from user. do_machine_check() uses this flag to isolate posion page in memory_failure(). there's nothing wrong but we can expand the use of this macro. Currently, there are some kernel memory copy scenarios is also mc safe which use copy_mc_to_kernel() or copy_mc_user_highpage(). In these scenarios, posion pages need to be isolated too. Therefore, a macro similar to MCE_IN_KERNEL_COPYIN is required. For this reason, we can rename MCE_IN_KERNEL_COPYIN to MCE_IN_KERNEL_COPY_MC, the new macro can be applied to both user-to-kernel mc safe copy and kernel-to-kernel mc safe copy. Signed-off-by: Tong Tiangen --- arch/x86/include/asm/mce.h | 8 ++++---- arch/x86/kernel/cpu/mce/core.c | 2 +- arch/x86/kernel/cpu/mce/severity.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h index de3118305838..cb628ab2f32f 100644 --- a/arch/x86/include/asm/mce.h +++ b/arch/x86/include/asm/mce.h @@ -151,11 +151,11 @@ /* * Indicates an MCE that happened in kernel space while copying data - * from user. In this case fixup_exception() gets the kernel to the - * error exit for the copy function. Machine check handler can then - * treat it like a fault taken in user mode. + * from user or kernel. In this case fixup_exception() gets the kernel + * to the error exit for the copy function. Machine check handler can + * then treat it like a fault taken in user or kernel mode. */ -#define MCE_IN_KERNEL_COPYIN BIT_ULL(7) +#define MCE_IN_KERNEL_COPY_MC BIT_ULL(7) /* * This structure contains all data related to the MCE log. Also diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c index faef7ceed746..dbea0c395c56 100644 --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -1597,7 +1597,7 @@ noinstr void do_machine_check(struct pt_regs *regs) mce_panic("Failed kernel mode recovery", &m, msg); } - if (m.kflags & MCE_IN_KERNEL_COPYIN) + if (m.kflags & MCE_IN_KERNEL_COPY_MC) queue_task_work(&m, msg, kill_me_never); } diff --git a/arch/x86/kernel/cpu/mce/severity.c b/arch/x86/kernel/cpu/mce/severity.c index bca780fa5e57..df67a7a13034 100644 --- a/arch/x86/kernel/cpu/mce/severity.c +++ b/arch/x86/kernel/cpu/mce/severity.c @@ -292,7 +292,7 @@ static noinstr int error_context(struct mce *m, struct pt_regs *regs) case EX_TYPE_UACCESS: if (!copy_user) return IN_KERNEL; - m->kflags |= MCE_IN_KERNEL_COPYIN; + m->kflags |= MCE_IN_KERNEL_COPY_MC; fallthrough; case EX_TYPE_FAULT_MCE_SAFE: