Commit f23dc2c3 authored by Vineet Gupta's avatar Vineet Gupta Committed by Greg Kroah-Hartman

ARC: fix build warnings

[ Upstream commit 89c92142 ]

| arch/arc/mm/tlb.c:914:2: warning: variable length array 'pd0' is used [-Wvla]
| arch/arc/include/asm/cmpxchg.h:95:29: warning: value computed is not used [-Wunused-value]
Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 3656dca3
...@@ -92,8 +92,11 @@ __cmpxchg(volatile void *ptr, unsigned long expected, unsigned long new) ...@@ -92,8 +92,11 @@ __cmpxchg(volatile void *ptr, unsigned long expected, unsigned long new)
#endif /* CONFIG_ARC_HAS_LLSC */ #endif /* CONFIG_ARC_HAS_LLSC */
#define cmpxchg(ptr, o, n) ((typeof(*(ptr)))__cmpxchg((ptr), \ #define cmpxchg(ptr, o, n) ({ \
(unsigned long)(o), (unsigned long)(n))) (typeof(*(ptr)))__cmpxchg((ptr), \
(unsigned long)(o), \
(unsigned long)(n)); \
})
/* /*
* atomic_cmpxchg is same as cmpxchg * atomic_cmpxchg is same as cmpxchg
...@@ -198,8 +201,11 @@ static inline unsigned long __xchg(unsigned long val, volatile void *ptr, ...@@ -198,8 +201,11 @@ static inline unsigned long __xchg(unsigned long val, volatile void *ptr,
return __xchg_bad_pointer(); return __xchg_bad_pointer();
} }
#define xchg(ptr, with) ((typeof(*(ptr)))__xchg((unsigned long)(with), (ptr), \ #define xchg(ptr, with) ({ \
sizeof(*(ptr)))) (typeof(*(ptr)))__xchg((unsigned long)(with), \
(ptr), \
sizeof(*(ptr))); \
})
#endif /* CONFIG_ARC_PLAT_EZNPS */ #endif /* CONFIG_ARC_PLAT_EZNPS */
......
...@@ -911,9 +911,11 @@ void do_tlb_overlap_fault(unsigned long cause, unsigned long address, ...@@ -911,9 +911,11 @@ void do_tlb_overlap_fault(unsigned long cause, unsigned long address,
struct pt_regs *regs) struct pt_regs *regs)
{ {
struct cpuinfo_arc_mmu *mmu = &cpuinfo_arc700[smp_processor_id()].mmu; struct cpuinfo_arc_mmu *mmu = &cpuinfo_arc700[smp_processor_id()].mmu;
unsigned int pd0[mmu->ways];
unsigned long flags; unsigned long flags;
int set; int set, n_ways = mmu->ways;
n_ways = min(n_ways, 4);
BUG_ON(mmu->ways > 4);
local_irq_save(flags); local_irq_save(flags);
...@@ -921,9 +923,10 @@ void do_tlb_overlap_fault(unsigned long cause, unsigned long address, ...@@ -921,9 +923,10 @@ void do_tlb_overlap_fault(unsigned long cause, unsigned long address,
for (set = 0; set < mmu->sets; set++) { for (set = 0; set < mmu->sets; set++) {
int is_valid, way; int is_valid, way;
unsigned int pd0[4];
/* read out all the ways of current set */ /* read out all the ways of current set */
for (way = 0, is_valid = 0; way < mmu->ways; way++) { for (way = 0, is_valid = 0; way < n_ways; way++) {
write_aux_reg(ARC_REG_TLBINDEX, write_aux_reg(ARC_REG_TLBINDEX,
SET_WAY_TO_IDX(mmu, set, way)); SET_WAY_TO_IDX(mmu, set, way));
write_aux_reg(ARC_REG_TLBCOMMAND, TLBRead); write_aux_reg(ARC_REG_TLBCOMMAND, TLBRead);
...@@ -937,14 +940,14 @@ void do_tlb_overlap_fault(unsigned long cause, unsigned long address, ...@@ -937,14 +940,14 @@ void do_tlb_overlap_fault(unsigned long cause, unsigned long address,
continue; continue;
/* Scan the set for duplicate ways: needs a nested loop */ /* Scan the set for duplicate ways: needs a nested loop */
for (way = 0; way < mmu->ways - 1; way++) { for (way = 0; way < n_ways - 1; way++) {
int n; int n;
if (!pd0[way]) if (!pd0[way])
continue; continue;
for (n = way + 1; n < mmu->ways; n++) { for (n = way + 1; n < n_ways; n++) {
if (pd0[way] != pd0[n]) if (pd0[way] != pd0[n])
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment