diff options
author | 2010-05-07 16:38:34 +0800 | |
---|---|---|
committer | 2010-05-17 10:56:16 -0500 | |
commit | 78e2e68a2b79f394b7cd61e07987a8a89af907f7 (patch) | |
tree | 41b534f2e557503a1d78f01d852e5eb8cb61b95a /net/ipv4/tcp_timer.c | |
parent | powerpc/8610: add probing for individual DMA channels, not just DMA controllers (diff) | |
download | linux-dev-78e2e68a2b79f394b7cd61e07987a8a89af907f7.tar.xz linux-dev-78e2e68a2b79f394b7cd61e07987a8a89af907f7.zip |
powerpc/fsl-booke: Fix InstructionTLBError execute permission check
In CONFIG_PTE_64BIT the PTE format has unique permission bits for user
and supervisor execute. However on !CONFIG_PTE_64BIT we overload the
supervisor bit to imply user execute with _PAGE_USER set. This allows
us to use the same permission check mask for user or supervisor code on
!CONFIG_PTE_64BIT.
However, on CONFIG_PTE_64BIT we map _PAGE_EXEC to _PAGE_BAP_UX so we
need a different permission mask based on the fault coming from a kernel
address or user space.
Without unique permission masks we see issues like the following with
modules:
Unable to handle kernel paging request for instruction fetch
Faulting instruction address: 0xf938d040
Oops: Kernel access of bad area, sig: 11 [#1]
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jin Qing <b24347@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'net/ipv4/tcp_timer.c')
0 files changed, 0 insertions, 0 deletions