diff options
author | Paul Burton <paul.burton@mips.com> | 2018-08-06 18:18:52 -0700 |
---|---|---|
committer | Paul Burton <paul.burton@mips.com> | 2018-08-06 18:44:09 -0700 |
commit | b023a9396062df289399c6c4eab1f78c73199751 (patch) | |
tree | 642b59ebdb481e522539182e45c762acee235ea1 | |
parent | ee67855ecd9d02da348af11ec8474698b886a0e6 (diff) | |
download | op-kernel-dev-b023a9396062df289399c6c4eab1f78c73199751.zip op-kernel-dev-b023a9396062df289399c6c4eab1f78c73199751.tar.gz |
MIPS: Avoid using array as parameter to write_c0_kpgd()
Passing an array (swapper_pg_dir) as the argument to write_c0_kpgd() in
setup_pw() will become problematic if we modify __write_64bit_c0_split()
to cast its val argument to unsigned long long, because for 32-bit
kernel builds the size of a pointer will differ from the size of an
unsigned long long. This would fall foul of gcc's pointer-to-int-cast
diagnostic.
Cast the value to a long, which should be the same width as the pointer
that we ultimately want & will be sign extended if required to the
unsigned long long that __write_64bit_c0_split() ultimately needs.
Signed-off-by: Paul Burton <paul.burton@mips.com>
-rw-r--r-- | arch/mips/mm/tlbex.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index 79b9f2a..49312a1 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c @@ -1509,7 +1509,7 @@ static void setup_pw(void) #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT write_c0_pwctl(1 << 6 | psn); #endif - write_c0_kpgd(swapper_pg_dir); + write_c0_kpgd((long)swapper_pg_dir); kscratch_used_mask |= (1 << 7); /* KScratch6 is used for KPGD */ } |