From: Tong Tiangen <tongtiangen@huawei.com>
To: Mark Rutland <mark.rutland@arm.com>,
James Morse <james.morse@arm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Robin Murphy <robin.murphy@arm.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Michael Ellerman <mpe@ellerman.id.au>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>, <x86@kernel.org>,
"H . Peter Anvin" <hpa@zytor.com>
Cc: <linuxppc-dev@lists.ozlabs.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>,
Kefeng Wang <wangkefeng.wang@huawei.com>,
Xie XiuQi <xiexiuqi@huawei.com>, Guohanjun <guohanjun@huawei.com>,
Tong Tiangen <tongtiangen@huawei.com>
Subject: [PATCH -next v5 7/8] arm64: add uaccess to machine check safe
Date: Sat, 28 May 2022 06:50:55 +0000 [thread overview]
Message-ID: <20220528065056.1034168-8-tongtiangen@huawei.com> (raw)
In-Reply-To: <20220528065056.1034168-1-tongtiangen@huawei.com>
If user access fail due to hardware memory error, only the relevant
processes are affected, so killing the user process and isolate the
error page with hardware memory errors is a more reasonable choice
than kernel panic.
Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
---
arch/arm64/lib/copy_from_user.S | 8 ++++----
arch/arm64/lib/copy_to_user.S | 8 ++++----
arch/arm64/mm/extable.c | 8 ++++----
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/arch/arm64/lib/copy_from_user.S b/arch/arm64/lib/copy_from_user.S
index 34e317907524..402dd48a4f93 100644
--- a/arch/arm64/lib/copy_from_user.S
+++ b/arch/arm64/lib/copy_from_user.S
@@ -25,7 +25,7 @@
.endm
.macro strb1 reg, ptr, val
- strb \reg, [\ptr], \val
+ USER(9998f, strb \reg, [\ptr], \val)
.endm
.macro ldrh1 reg, ptr, val
@@ -33,7 +33,7 @@
.endm
.macro strh1 reg, ptr, val
- strh \reg, [\ptr], \val
+ USER(9998f, strh \reg, [\ptr], \val)
.endm
.macro ldr1 reg, ptr, val
@@ -41,7 +41,7 @@
.endm
.macro str1 reg, ptr, val
- str \reg, [\ptr], \val
+ USER(9998f, str \reg, [\ptr], \val)
.endm
.macro ldp1 reg1, reg2, ptr, val
@@ -49,7 +49,7 @@
.endm
.macro stp1 reg1, reg2, ptr, val
- stp \reg1, \reg2, [\ptr], \val
+ USER(9998f, stp \reg1, \reg2, [\ptr], \val)
.endm
end .req x5
diff --git a/arch/arm64/lib/copy_to_user.S b/arch/arm64/lib/copy_to_user.S
index 802231772608..4134bdb3a8b0 100644
--- a/arch/arm64/lib/copy_to_user.S
+++ b/arch/arm64/lib/copy_to_user.S
@@ -20,7 +20,7 @@
* x0 - bytes not copied
*/
.macro ldrb1 reg, ptr, val
- ldrb \reg, [\ptr], \val
+ USER(9998f, ldrb \reg, [\ptr], \val)
.endm
.macro strb1 reg, ptr, val
@@ -28,7 +28,7 @@
.endm
.macro ldrh1 reg, ptr, val
- ldrh \reg, [\ptr], \val
+ USER(9998f, ldrh \reg, [\ptr], \val)
.endm
.macro strh1 reg, ptr, val
@@ -36,7 +36,7 @@
.endm
.macro ldr1 reg, ptr, val
- ldr \reg, [\ptr], \val
+ USER(9998f, ldr \reg, [\ptr], \val)
.endm
.macro str1 reg, ptr, val
@@ -44,7 +44,7 @@
.endm
.macro ldp1 reg1, reg2, ptr, val
- ldp \reg1, \reg2, [\ptr], \val
+ USER(9998f, ldp \reg1, \reg2, [\ptr], \val)
.endm
.macro stp1 reg1, reg2, ptr, val
diff --git a/arch/arm64/mm/extable.c b/arch/arm64/mm/extable.c
index c301dcf6335f..8ca8d9639f9f 100644
--- a/arch/arm64/mm/extable.c
+++ b/arch/arm64/mm/extable.c
@@ -86,10 +86,10 @@ bool fixup_exception_mc(struct pt_regs *regs)
if (!ex)
return false;
- /*
- * This is not complete, More Machine check safe extable type can
- * be processed here.
- */
+ switch (ex->type) {
+ case EX_TYPE_UACCESS_ERR_ZERO:
+ return ex_handler_uaccess_err_zero(ex, regs);
+ }
return false;
}
--
2.25.1
next prev parent reply other threads:[~2022-05-28 6:29 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-28 6:50 [PATCH -next v5 0/8]arm64: add machine check safe support Tong Tiangen
2022-05-28 6:50 ` [PATCH -next v5 1/8] arm64: extable: add new extable type EX_TYPE_KACCESS_ERR_ZERO support Tong Tiangen
2022-06-17 8:23 ` Mark Rutland
2022-06-18 2:44 ` Tong Tiangen
2022-05-28 6:50 ` [PATCH -next v5 2/8] arm64: extable: make uaaccess helper use extable type EX_TYPE_UACCESS_ERR_ZERO Tong Tiangen
2022-06-17 8:24 ` Mark Rutland
2022-06-18 3:26 ` Tong Tiangen
2022-06-18 8:42 ` Tong Tiangen
2022-06-18 12:40 ` Mark Rutland
2022-06-20 2:59 ` Tong Tiangen
2022-06-20 9:10 ` Mark Rutland
2022-06-20 13:32 ` Tong Tiangen
2022-06-20 14:13 ` Tong Tiangen
2022-06-20 14:26 ` Mark Rutland
2022-05-28 6:50 ` [PATCH -next v5 3/8] arm64: extable: move _cond_extable to _cond_uaccess_extable Tong Tiangen
2022-06-17 8:31 ` Mark Rutland
2022-05-28 6:50 ` [PATCH -next v5 4/8] arm64: extable: cleanup redundant extable type EX_TYPE_FIXUP Tong Tiangen
2022-06-17 8:43 ` Mark Rutland
2022-05-28 6:50 ` [PATCH -next v5 5/8] Add generic fallback version of copy_mc_to_user() Tong Tiangen
2022-05-28 6:50 ` [PATCH -next v5 6/8] arm64: add support for machine check error safe Tong Tiangen
2022-06-17 8:55 ` Mark Rutland
2022-06-18 9:18 ` Tong Tiangen
2022-06-18 12:52 ` Mark Rutland
2022-06-20 1:53 ` Tong Tiangen
2022-05-28 6:50 ` Tong Tiangen [this message]
2022-06-17 9:06 ` [PATCH -next v5 7/8] arm64: add uaccess to machine check safe Mark Rutland
2022-06-18 9:27 ` Tong Tiangen
2022-06-18 11:35 ` Mark Rutland
2022-06-20 2:04 ` Tong Tiangen
2022-05-28 6:50 ` [PATCH -next v5 8/8] arm64: add cow " Tong Tiangen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220528065056.1034168-8-tongtiangen@huawei.com \
--to=tongtiangen@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=guohanjun@huawei.com \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.org \
--cc=robin.murphy@arm.com \
--cc=tglx@linutronix.de \
--cc=viro@zeniv.linux.org.uk \
--cc=wangkefeng.wang@huawei.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=xiexiuqi@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).