diff options
author | David S. Miller <davem@davemloft.net> | 2011-02-27 02:40:02 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-03-16 21:19:15 -0400 |
commit | c6fee0810df4e0f4cf9c4834d2569ca01c02cffc (patch) | |
tree | 7b6adabf750ca0279895f8b9aa8a42eb9837e4e2 /arch/sparc/kernel/smp_64.c | |
parent | 0399bb5b918bd8ffbf065a3db142ff121aaa18e0 (diff) |
sparc64: Fix build errors with gcc-4.6.0
Most of the warnings emitted (we fail arch/sparc file
builds with -Werror) were legitimate but harmless, however
one case (n2_pcr_write) was a genuine bug.
Based almost entirely upon a patch by Sam Ravnborg.
Reported-by: Dennis Gilmore <dennis@ausil.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/smp_64.c')
-rw-r--r-- | arch/sparc/kernel/smp_64.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index 555a76d1f4a1..3e94a8c23238 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c | |||
@@ -189,7 +189,7 @@ static inline long get_delta (long *rt, long *master) | |||
189 | void smp_synchronize_tick_client(void) | 189 | void smp_synchronize_tick_client(void) |
190 | { | 190 | { |
191 | long i, delta, adj, adjust_latency = 0, done = 0; | 191 | long i, delta, adj, adjust_latency = 0, done = 0; |
192 | unsigned long flags, rt, master_time_stamp, bound; | 192 | unsigned long flags, rt, master_time_stamp; |
193 | #if DEBUG_TICK_SYNC | 193 | #if DEBUG_TICK_SYNC |
194 | struct { | 194 | struct { |
195 | long rt; /* roundtrip time */ | 195 | long rt; /* roundtrip time */ |
@@ -208,10 +208,8 @@ void smp_synchronize_tick_client(void) | |||
208 | { | 208 | { |
209 | for (i = 0; i < NUM_ROUNDS; i++) { | 209 | for (i = 0; i < NUM_ROUNDS; i++) { |
210 | delta = get_delta(&rt, &master_time_stamp); | 210 | delta = get_delta(&rt, &master_time_stamp); |
211 | if (delta == 0) { | 211 | if (delta == 0) |
212 | done = 1; /* let's lock on to this... */ | 212 | done = 1; /* let's lock on to this... */ |
213 | bound = rt; | ||
214 | } | ||
215 | 213 | ||
216 | if (!done) { | 214 | if (!done) { |
217 | if (i > 0) { | 215 | if (i > 0) { |
@@ -933,13 +931,12 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu) | |||
933 | void flush_dcache_page_all(struct mm_struct *mm, struct page *page) | 931 | void flush_dcache_page_all(struct mm_struct *mm, struct page *page) |
934 | { | 932 | { |
935 | void *pg_addr; | 933 | void *pg_addr; |
936 | int this_cpu; | ||
937 | u64 data0; | 934 | u64 data0; |
938 | 935 | ||
939 | if (tlb_type == hypervisor) | 936 | if (tlb_type == hypervisor) |
940 | return; | 937 | return; |
941 | 938 | ||
942 | this_cpu = get_cpu(); | 939 | preempt_disable(); |
943 | 940 | ||
944 | #ifdef CONFIG_DEBUG_DCFLUSH | 941 | #ifdef CONFIG_DEBUG_DCFLUSH |
945 | atomic_inc(&dcpage_flushes); | 942 | atomic_inc(&dcpage_flushes); |
@@ -964,7 +961,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page) | |||
964 | } | 961 | } |
965 | __local_flush_dcache_page(page); | 962 | __local_flush_dcache_page(page); |
966 | 963 | ||
967 | put_cpu(); | 964 | preempt_enable(); |
968 | } | 965 | } |
969 | 966 | ||
970 | void __irq_entry smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) | 967 | void __irq_entry smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) |