Subject: Re: [PATCH V4] powerpc/85xx: Add machine check handler to fix PCIe erratum on mpc85xx

From: Scott Wood <[email-masked]>
Date: Fri, 15 Mar 2013 11:34:52 -0500

On 03/14/2013 09:47:58 PM, Jia Hongtao-B38951 wrote:
>=20
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, March 14, 2013 12:38 AM
> > To: David Laight
> > Cc: Jia Hongtao-B38951; Wood Scott-B07421; =20
> [email-masked];
> > Stuart Yoder
> > Subject: Re: [PATCH V4] powerpc/85xx: Add machine check handler to =20
> fix
> > PCIe erratum on mpc85xx
> >
> > On 03/13/2013 04:40:40 AM, David Laight wrote:
> > > > Hmm, seems there's no probe_user_address() -- for userspace we
> > > > basically want the same thing minus the KERNEL_DS.  See
> > > > arch/powerpc/perf/callchain.c for an example.
> > >
> > > Isn't that just copy_from_user() ?
> >
> > Plus pagefault_disable/enable().
> >
> > -Scott
>=20
> pagefault_disable() is identical to preempt_disable(). So I think this
> could not avoid other cpu to swap out the instruction we want to read =20
> back.
> probe_kernel_address() also have the same issue.

That's not the point -- the point is to let the page fault handler know =20
that it should go directly to bad_page_fault().  Do not pass =20
handle_mm_fault().  Do not collect a page from disk.

Granted, we're already in atomic context which will have that effect =20
due to being in the machine check handler, but it's better to be =20
explicit about it and not depend on how pagefault_diasble() is =20
implemented.

-Scott=