summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/module.lds
diff options
context:
space:
mode:
authorChristophe Leroy <christophe.leroy@csgroup.eu>2020-05-19 07:49:20 +0200
committerMichael Ellerman <mpe@ellerman.id.au>2020-05-26 14:22:22 +0200
commitc8bef10a9f17b2b9549e37878b2bcd48039c136b (patch)
tree70bb6d52f33d3d104da08831ad2b8466d015fc28 /arch/powerpc/kernel/module.lds
parentpowerpc/mm: Don't be too strict with _etext alignment on PPC32 (diff)
downloadlinux-c8bef10a9f17b2b9549e37878b2bcd48039c136b.tar.xz
linux-c8bef10a9f17b2b9549e37878b2bcd48039c136b.zip
powerpc/8xx: Refactor kernel address boundary comparison
Now that linear and IMMR dedicated TLB handling is gone, kernel boundary address comparison is similar in ITLB miss handler and in DTLB miss handler. Create a macro named compare_to_kernel_boundary. When TASK_SIZE is strictly below 0x80000000 and PAGE_OFFSET is above 0x80000000, it is enough to compare to 0x8000000, and this can be done with a single instruction. Using not. instruction, we get to use 'blt' conditional branch as when doing a regular comparison: 0x00000000 <= addr <= 0x7fffffff ==> 0xffffffff >= NOT(addr) >= 0x80000000 The above test corresponds to a 'blt' Otherwise, do a regular comparison using two instructions. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/6312575d06a8813105e6564a3b12e1d373aa1b2f.1589866984.git.christophe.leroy@csgroup.eu
Diffstat (limited to 'arch/powerpc/kernel/module.lds')
0 files changed, 0 insertions, 0 deletions