Subject: Re: powerpc: Don't silently handle machine checks from userspace

From: Scott Wood <[email-masked]>
Date: Fri, 2 Nov 2012 11:36:04 -0500

On 11/02/2012 06:48:40 AM, Martijn de Gouw wrote:
> Hi,
>=20
> The following commit:
>=20
> http://git.kernel.org/?p=3Dlinux/kernel/git/stable/linux-stable.git;a=3Dc=
ommit;h=3De49b1fae0ba4d06b29bd753a961abb447566bf4a
>=20
> causes confusion, because it prints "Machine check in kernel mode" =20
> also when the bus error is actually in user space. When using RapidIO =20
> memory mapped access, and the device is removed or powered off, then =20
> a bus error is generated. This is on a freescale mpc8548 powerpc. Due =20
> to removing the user_mode check, the kernel calls "die" which causes =20
> the process to die with a BUS error, regardless of having a SIGBUS =20
> handler or not.
>=20
> Therefore I request to put this check back, and even to put the =20
> removed code at the top of the machine check handler because there is =20
> no point in trying to recover from a user space bus error anyway.

Why is there no point trying to recover?  For example, see MCSR_ICPERR =20
and MCSR_DCPERR_MC in machine_check_e500mc.  The machine check is just =20
letting us know that there was an error and the read-only cache got =20
dumped (i.e. it was a correctable error).

-Scott=