summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPaul Burton2018-08-07 03:18:52 +0200
committerPaul Burton2018-08-07 03:44:09 +0200
commitb023a9396062df289399c6c4eab1f78c73199751 (patch)
tree642b59ebdb481e522539182e45c762acee235ea1 /arch
parentMIPS: vdso: Allow clang's --target flag in VDSO cflags (diff)
downloadkernel-qcow2-linux-b023a9396062df289399c6c4eab1f78c73199751.tar.gz
kernel-qcow2-linux-b023a9396062df289399c6c4eab1f78c73199751.tar.xz
kernel-qcow2-linux-b023a9396062df289399c6c4eab1f78c73199751.zip
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/mm/tlbex.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 79b9f2ad3ff5..49312a14cd17 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 */
}