MIPS: tlbex.c: Fix GCC 4.6.0 build error.
For !HUGETLB_PAGE htlb_info barfs, and when !64BIT we get vmalloc_mode grumbling.
CC arch/mips/mm/tlbex.oarch/mips/mm/tlbex.c: In function 'build_r4000_tlb_refill_handler':arch/mips/mm/tlbex.c:1155:22: error: variable 'vmalloc_mode' set but not used [-Werror=unused-but-set-variable] arch/mips/mm/tlbex.c:1154:28: error: variable 'htlb_info' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
Untested other than shovelling through a compiler, it really is turning into an ifdef-fest though in there...
--- arch/mips/mm/tlbex.c | 17 ++++++++++++++++- 1 files changed, 16 insertions(+), 1 deletions(-)
arch/mips/mm/tlbex.c +16 -1
@@ -1151,8 +1151,12 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)struct uasm_reloc *r = relocs;u32 *f;unsigned int final_len; +#ifdef CONFIG_HUGETLB_PAGE struct mips_huge_tlb_info htlb_info; +#endif +#ifdef CONFIG_64BIT enum vmalloc64_mode vmalloc_mode; +#endif memset (tlb_handler,0 ,sizeof (tlb_handler));memset (labels,0 ,sizeof (labels));
@@ -1163,13 +1167,24 @@ static void __cpuinit build_r4000_tlb_refill_handler(void) scratch_reg =allocate_kscratch ();if ((scratch_reg >0 ||scratchpad_available ()) &&use_bbit_insns ()) { - htlb_info =build_fast_tlb_refill_handler (&p, &l, &r,K0 ,K1 , +#ifdef CONFIG_HUGETLB_PAGE + htlb_info = +#else + (void ) +#endif +build_fast_tlb_refill_handler (&p, &l, &r,K0 ,K1 , scratch_reg); +#ifdef CONFIG_64BIT vmalloc_mode = refill_scratch; +#endif }else { +#ifdef CONFIG_HUGETLB_PAGE htlb_info.huge_pte =K0 ; htlb_info.restore_scratch =0 ; +#endif +#ifdef CONFIG_64BIT vmalloc_mode = refill_noscratch; +#endif /* * create the plain linear handler */
Signature · 1 line
1.7.5.1
Forget this, just seen it in upstream as4a9040f451c32cd62971ecda1cb5bc4aed444c78.
Cheers
Quoted 62 lines · Alexander Clouter
For !HUGETLB_PAGE
htlb_infobarfs, and when !64BIT we getvmalloc_modegrumbling.CC
arch/mips/mm/tlbex.oarch/mips/mm/tlbex.c: In function 'build_r4000_tlb_refill_handler':arch/mips/mm/tlbex.c:1155:22: error: variable 'vmalloc_mode' set but not used [-Werror=unused-but-set-variable]arch/mips/mm/tlbex.c:1154:28: error: variable 'htlb_info' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errorsUntested other than shovelling through a compiler, it really is turning into an ifdef-fest though in there...
Signed-off-by Alexander Clouter <[email protected]>--- arch/mips/mm/tlbex.c | 17 ++++++++++++++++- 1 files changed, 16 insertions(+), 1 deletions(-)arch/mips/mm/tlbex.c +16
-1@@ -1151,8 +1151,12 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)struct uasm_reloc *r = relocs;u32 *f;unsigned int final_len; +#ifdef CONFIG_HUGETLB_PAGE struct mips_huge_tlb_info htlb_info; +#endif +#ifdef CONFIG_64BIT enum vmalloc64_mode vmalloc_mode; +#endif memset (tlb_handler,0 ,sizeof (tlb_handler));memset (labels,0 ,sizeof (labels));@@ -1163,13 +1167,24 @@ static void __cpuinit build_r4000_tlb_refill_handler(void) scratch_reg =allocate_kscratch ();if ((scratch_reg >0 ||scratchpad_available ()) &&use_bbit_insns ()) { - htlb_info =build_fast_tlb_refill_handler (&p, &l, &r,K0 ,K1 , +#ifdef CONFIG_HUGETLB_PAGE + htlb_info = +#else + (void ) +#endif +build_fast_tlb_refill_handler (&p, &l, &r,K0 ,K1 , scratch_reg); +#ifdef CONFIG_64BIT vmalloc_mode = refill_scratch; +#endif }else { +#ifdef CONFIG_HUGETLB_PAGE htlb_info.huge_pte =K0 ; htlb_info.restore_scratch =0 ; +#endif +#ifdef CONFIG_64BIT vmalloc_mode = refill_noscratch; +#endif /* * create the plain linear handler */
Signature · 2 lines
Alexander Clouter .sigmonster says: Needs are a function of what other people have.