]> git.baikalelectronics.ru Git - kernel.git/commit
sparc64: Fix probe_kernel_{read,write}().
authorDavid S. Miller <davem@davemloft.net>
Mon, 9 Feb 2009 06:32:31 +0000 (22:32 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Feb 2009 06:32:31 +0000 (22:32 -0800)
commit43723da54485907f458bc0a0545c18317e5d9a2f
treec7755f40260ccf89e8f3b765a9b44dcbebcae896
parenta81b320fb1191da4747898fe44068b9ad61b7741
sparc64: Fix probe_kernel_{read,write}().

This is based upon a report from Chris Torek and his initial patch.
From Chris's report:

--------------------
This came up in testing kgdb, using the built-in tests -- turn
on CONFIG_KGDB_TESTS, then

    echo V1 > /sys/module/kgdbts/parameters/kgdbts

-- but it would affect using kgdb if you were debugging and looking
at bad pointers.
--------------------

When we get a copy_{from,to}_user() request and the %asi is set to
something other than ASI_AIUS (which is userspace) then we branch off
to a routine called memcpy_user_stub().  It just does a straight
memcpy since we are copying from kernel to kernel in this case.

The logic was that since source and destination are both kernel
pointers we don't need to have exception checks.

But for what probe_kernel_{read,write}() is trying to do, we have to
have the checks, otherwise things like kgdb bad kernel pointer
accesses don't do the right thing.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/lib/GENcopy_from_user.S
arch/sparc/lib/GENcopy_to_user.S
arch/sparc/lib/NG2copy_from_user.S
arch/sparc/lib/NG2copy_to_user.S
arch/sparc/lib/NGcopy_from_user.S
arch/sparc/lib/NGcopy_to_user.S
arch/sparc/lib/U1copy_from_user.S
arch/sparc/lib/U1copy_to_user.S
arch/sparc/lib/U3copy_to_user.S
arch/sparc/lib/copy_in_user.S