diff options
author | Ian Munsie <imunsie@au1.ibm.com> | 2014-10-08 10:54:51 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2014-10-08 11:14:55 +0200 |
commit | 73d16a6e0e51990cbe13f8d8f43bd5329bbab30a (patch) | |
tree | d151865457d0653072ee8dd2fbc23fb84f05fe23 /arch/powerpc/mm/slb.c | |
parent | powerpc/cell: Move spu_handle_mm_fault() out of cell platform (diff) | |
download | linux-73d16a6e0e51990cbe13f8d8f43bd5329bbab30a.tar.xz linux-73d16a6e0e51990cbe13f8d8f43bd5329bbab30a.zip |
powerpc/cell: Move data segment faulting code out of cell platform
__spu_trap_data_seg() currently contains code to determine the VSID and ESID
required for a particular EA and mm struct.
This code is generically useful for other co-processors. This moves the code of
the cell platform so it can be used by other powerpc code. It also adds 1TB
segment handling which Cell didn't support. The new function is called
copro_calculate_slb().
This also moves the internal struct spu_slb to a generic struct copro_slb which
is now used in the Cell and copro code. We use this new struct instead of
passing around esid and vsid parameters.
Signed-off-by: Ian Munsie <imunsie@au1.ibm.com>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/mm/slb.c')
-rw-r--r-- | arch/powerpc/mm/slb.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index 0399a6702958..6e450ca66526 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c @@ -46,9 +46,6 @@ static inline unsigned long mk_esid_data(unsigned long ea, int ssize, return (ea & slb_esid_mask(ssize)) | SLB_ESID_V | slot; } -#define slb_vsid_shift(ssize) \ - ((ssize) == MMU_SEGSIZE_256M? SLB_VSID_SHIFT: SLB_VSID_SHIFT_1T) - static inline unsigned long mk_vsid_data(unsigned long ea, int ssize, unsigned long flags) { |