diff options
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/include/asm/Kbuild | 11 | ||||
-rw-r--r-- | arch/sparc/include/asm/smp_64.h | 1 | ||||
-rw-r--r-- | arch/sparc/include/asm/topology_64.h | 2 | ||||
-rw-r--r-- | arch/sparc/kernel/ftrace.c | 6 | ||||
-rw-r--r-- | arch/sparc/kernel/leon_pci.c | 5 | ||||
-rw-r--r-- | arch/sparc/kernel/leon_pci_grpci2.c | 1 | ||||
-rw-r--r-- | arch/sparc/kernel/mdesc.c | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/process_64.c | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/prom_64.c | 3 | ||||
-rw-r--r-- | arch/sparc/kernel/smp_64.c | 2 | ||||
-rw-r--r-- | arch/sparc/kernel/sun4m_irq.c | 2 | ||||
-rw-r--r-- | arch/sparc/kernel/syscalls.S | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/time_64.c | 5 | ||||
-rw-r--r-- | arch/sparc/mm/tsb.c | 2 | ||||
-rw-r--r-- | arch/sparc/net/bpf_jit_comp.c | 5 |
15 files changed, 21 insertions, 36 deletions
diff --git a/arch/sparc/include/asm/Kbuild b/arch/sparc/include/asm/Kbuild index 4b60a0c325ec..a45821818003 100644 --- a/arch/sparc/include/asm/Kbuild +++ b/arch/sparc/include/asm/Kbuild | |||
@@ -6,15 +6,16 @@ generic-y += cputime.h | |||
6 | generic-y += div64.h | 6 | generic-y += div64.h |
7 | generic-y += emergency-restart.h | 7 | generic-y += emergency-restart.h |
8 | generic-y += exec.h | 8 | generic-y += exec.h |
9 | generic-y += linkage.h | 9 | generic-y += hash.h |
10 | generic-y += local64.h | ||
11 | generic-y += mutex.h | ||
12 | generic-y += irq_regs.h | 10 | generic-y += irq_regs.h |
11 | generic-y += linkage.h | ||
13 | generic-y += local.h | 12 | generic-y += local.h |
13 | generic-y += local64.h | ||
14 | generic-y += mcs_spinlock.h | ||
14 | generic-y += module.h | 15 | generic-y += module.h |
16 | generic-y += mutex.h | ||
17 | generic-y += preempt.h | ||
15 | generic-y += serial.h | 18 | generic-y += serial.h |
16 | generic-y += trace_clock.h | 19 | generic-y += trace_clock.h |
17 | generic-y += types.h | 20 | generic-y += types.h |
18 | generic-y += word-at-a-time.h | 21 | generic-y += word-at-a-time.h |
19 | generic-y += preempt.h | ||
20 | generic-y += hash.h | ||
diff --git a/arch/sparc/include/asm/smp_64.h b/arch/sparc/include/asm/smp_64.h index dd3bef4b9896..05710393959f 100644 --- a/arch/sparc/include/asm/smp_64.h +++ b/arch/sparc/include/asm/smp_64.h | |||
@@ -32,7 +32,6 @@ | |||
32 | 32 | ||
33 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); | 33 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); |
34 | extern cpumask_t cpu_core_map[NR_CPUS]; | 34 | extern cpumask_t cpu_core_map[NR_CPUS]; |
35 | extern int sparc64_multi_core; | ||
36 | 35 | ||
37 | extern void arch_send_call_function_single_ipi(int cpu); | 36 | extern void arch_send_call_function_single_ipi(int cpu); |
38 | extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); | 37 | extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); |
diff --git a/arch/sparc/include/asm/topology_64.h b/arch/sparc/include/asm/topology_64.h index 1754390a426f..a2d10fc64faf 100644 --- a/arch/sparc/include/asm/topology_64.h +++ b/arch/sparc/include/asm/topology_64.h | |||
@@ -42,8 +42,6 @@ static inline int pcibus_to_node(struct pci_bus *pbus) | |||
42 | #define topology_core_id(cpu) (cpu_data(cpu).core_id) | 42 | #define topology_core_id(cpu) (cpu_data(cpu).core_id) |
43 | #define topology_core_cpumask(cpu) (&cpu_core_map[cpu]) | 43 | #define topology_core_cpumask(cpu) (&cpu_core_map[cpu]) |
44 | #define topology_thread_cpumask(cpu) (&per_cpu(cpu_sibling_map, cpu)) | 44 | #define topology_thread_cpumask(cpu) (&per_cpu(cpu_sibling_map, cpu)) |
45 | #define mc_capable() (sparc64_multi_core) | ||
46 | #define smt_capable() (sparc64_multi_core) | ||
47 | #endif /* CONFIG_SMP */ | 45 | #endif /* CONFIG_SMP */ |
48 | 46 | ||
49 | extern cpumask_t cpu_core_map[NR_CPUS]; | 47 | extern cpumask_t cpu_core_map[NR_CPUS]; |
diff --git a/arch/sparc/kernel/ftrace.c b/arch/sparc/kernel/ftrace.c index 03ab022e51c5..0a2d2ddff543 100644 --- a/arch/sparc/kernel/ftrace.c +++ b/arch/sparc/kernel/ftrace.c | |||
@@ -82,12 +82,8 @@ int ftrace_update_ftrace_func(ftrace_func_t func) | |||
82 | return ftrace_modify_code(ip, old, new); | 82 | return ftrace_modify_code(ip, old, new); |
83 | } | 83 | } |
84 | 84 | ||
85 | int __init ftrace_dyn_arch_init(void *data) | 85 | int __init ftrace_dyn_arch_init(void) |
86 | { | 86 | { |
87 | unsigned long *p = data; | ||
88 | |||
89 | *p = 0; | ||
90 | |||
91 | return 0; | 87 | return 0; |
92 | } | 88 | } |
93 | #endif | 89 | #endif |
diff --git a/arch/sparc/kernel/leon_pci.c b/arch/sparc/kernel/leon_pci.c index 88aaaa57bb64..e16c4157e1ae 100644 --- a/arch/sparc/kernel/leon_pci.c +++ b/arch/sparc/kernel/leon_pci.c | |||
@@ -99,11 +99,6 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res, | |||
99 | return res->start; | 99 | return res->start; |
100 | } | 100 | } |
101 | 101 | ||
102 | int pcibios_enable_device(struct pci_dev *dev, int mask) | ||
103 | { | ||
104 | return pci_enable_resources(dev, mask); | ||
105 | } | ||
106 | |||
107 | /* in/out routines taken from pcic.c | 102 | /* in/out routines taken from pcic.c |
108 | * | 103 | * |
109 | * This probably belongs here rather than ioport.c because | 104 | * This probably belongs here rather than ioport.c because |
diff --git a/arch/sparc/kernel/leon_pci_grpci2.c b/arch/sparc/kernel/leon_pci_grpci2.c index 5f0402aab7fb..24d6a4446349 100644 --- a/arch/sparc/kernel/leon_pci_grpci2.c +++ b/arch/sparc/kernel/leon_pci_grpci2.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/of_device.h> | 8 | #include <linux/of_device.h> |
9 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
10 | #include <linux/pci.h> | 10 | #include <linux/pci.h> |
11 | #include <linux/slab.h> | ||
11 | #include <linux/delay.h> | 12 | #include <linux/delay.h> |
12 | #include <linux/export.h> | 13 | #include <linux/export.h> |
13 | #include <asm/io.h> | 14 | #include <asm/io.h> |
diff --git a/arch/sparc/kernel/mdesc.c b/arch/sparc/kernel/mdesc.c index b90bf23e3aab..a1a4400d4025 100644 --- a/arch/sparc/kernel/mdesc.c +++ b/arch/sparc/kernel/mdesc.c | |||
@@ -896,10 +896,6 @@ void mdesc_fill_in_cpu_data(cpumask_t *mask) | |||
896 | 896 | ||
897 | mdesc_iterate_over_cpus(fill_in_one_cpu, NULL, mask); | 897 | mdesc_iterate_over_cpus(fill_in_one_cpu, NULL, mask); |
898 | 898 | ||
899 | #ifdef CONFIG_SMP | ||
900 | sparc64_multi_core = 1; | ||
901 | #endif | ||
902 | |||
903 | hp = mdesc_grab(); | 899 | hp = mdesc_grab(); |
904 | 900 | ||
905 | set_core_ids(hp); | 901 | set_core_ids(hp); |
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index 32a280ec38c1..d7b4967f8fa6 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c | |||
@@ -58,9 +58,12 @@ void arch_cpu_idle(void) | |||
58 | { | 58 | { |
59 | if (tlb_type != hypervisor) { | 59 | if (tlb_type != hypervisor) { |
60 | touch_nmi_watchdog(); | 60 | touch_nmi_watchdog(); |
61 | local_irq_enable(); | ||
61 | } else { | 62 | } else { |
62 | unsigned long pstate; | 63 | unsigned long pstate; |
63 | 64 | ||
65 | local_irq_enable(); | ||
66 | |||
64 | /* The sun4v sleeping code requires that we have PSTATE.IE cleared over | 67 | /* The sun4v sleeping code requires that we have PSTATE.IE cleared over |
65 | * the cpu sleep hypervisor call. | 68 | * the cpu sleep hypervisor call. |
66 | */ | 69 | */ |
@@ -82,7 +85,6 @@ void arch_cpu_idle(void) | |||
82 | : "=&r" (pstate) | 85 | : "=&r" (pstate) |
83 | : "i" (PSTATE_IE)); | 86 | : "i" (PSTATE_IE)); |
84 | } | 87 | } |
85 | local_irq_enable(); | ||
86 | } | 88 | } |
87 | 89 | ||
88 | #ifdef CONFIG_HOTPLUG_CPU | 90 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/sparc/kernel/prom_64.c b/arch/sparc/kernel/prom_64.c index 6b39125eb927..9a690d39c01b 100644 --- a/arch/sparc/kernel/prom_64.c +++ b/arch/sparc/kernel/prom_64.c | |||
@@ -555,9 +555,6 @@ static void *fill_in_one_cpu(struct device_node *dp, int cpuid, int arg) | |||
555 | 555 | ||
556 | cpu_data(cpuid).core_id = portid + 1; | 556 | cpu_data(cpuid).core_id = portid + 1; |
557 | cpu_data(cpuid).proc_id = portid; | 557 | cpu_data(cpuid).proc_id = portid; |
558 | #ifdef CONFIG_SMP | ||
559 | sparc64_multi_core = 1; | ||
560 | #endif | ||
561 | } else { | 558 | } else { |
562 | cpu_data(cpuid).dcache_size = | 559 | cpu_data(cpuid).dcache_size = |
563 | of_getintprop_default(dp, "dcache-size", 16 * 1024); | 560 | of_getintprop_default(dp, "dcache-size", 16 * 1024); |
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index b085311dcd0e..9781048161ab 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c | |||
@@ -53,8 +53,6 @@ | |||
53 | 53 | ||
54 | #include "cpumap.h" | 54 | #include "cpumap.h" |
55 | 55 | ||
56 | int sparc64_multi_core __read_mostly; | ||
57 | |||
58 | DEFINE_PER_CPU(cpumask_t, cpu_sibling_map) = CPU_MASK_NONE; | 56 | DEFINE_PER_CPU(cpumask_t, cpu_sibling_map) = CPU_MASK_NONE; |
59 | cpumask_t cpu_core_map[NR_CPUS] __read_mostly = | 57 | cpumask_t cpu_core_map[NR_CPUS] __read_mostly = |
60 | { [0 ... NR_CPUS-1] = CPU_MASK_NONE }; | 58 | { [0 ... NR_CPUS-1] = CPU_MASK_NONE }; |
diff --git a/arch/sparc/kernel/sun4m_irq.c b/arch/sparc/kernel/sun4m_irq.c index c5ade9d27a1d..8bb3b3fddea7 100644 --- a/arch/sparc/kernel/sun4m_irq.c +++ b/arch/sparc/kernel/sun4m_irq.c | |||
@@ -9,6 +9,8 @@ | |||
9 | * Copyright (C) 1996 Dave Redman (djhr@tadpole.co.uk) | 9 | * Copyright (C) 1996 Dave Redman (djhr@tadpole.co.uk) |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/slab.h> | ||
13 | |||
12 | #include <asm/timer.h> | 14 | #include <asm/timer.h> |
13 | #include <asm/traps.h> | 15 | #include <asm/traps.h> |
14 | #include <asm/pgalloc.h> | 16 | #include <asm/pgalloc.h> |
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S index 87729fff13b9..33a17e7b3ccd 100644 --- a/arch/sparc/kernel/syscalls.S +++ b/arch/sparc/kernel/syscalls.S | |||
@@ -189,7 +189,8 @@ linux_sparc_syscall32: | |||
189 | mov %i0, %l5 ! IEU1 | 189 | mov %i0, %l5 ! IEU1 |
190 | 5: call %l7 ! CTI Group brk forced | 190 | 5: call %l7 ! CTI Group brk forced |
191 | srl %i5, 0, %o5 ! IEU1 | 191 | srl %i5, 0, %o5 ! IEU1 |
192 | ba,a,pt %xcc, 3f | 192 | ba,pt %xcc, 3f |
193 | sra %o0, 0, %o0 | ||
193 | 194 | ||
194 | /* Linux native system calls enter here... */ | 195 | /* Linux native system calls enter here... */ |
195 | .align 32 | 196 | .align 32 |
@@ -217,7 +218,6 @@ linux_sparc_syscall: | |||
217 | 3: stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] | 218 | 3: stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] |
218 | ret_sys_call: | 219 | ret_sys_call: |
219 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %g3 | 220 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %g3 |
220 | sra %o0, 0, %o0 | ||
221 | mov %ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2 | 221 | mov %ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2 |
222 | sllx %g2, 32, %g2 | 222 | sllx %g2, 32, %g2 |
223 | 223 | ||
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c index c3d82b5f54ca..3fddf64c7fc6 100644 --- a/arch/sparc/kernel/time_64.c +++ b/arch/sparc/kernel/time_64.c | |||
@@ -659,8 +659,7 @@ static int sparc64_cpufreq_notifier(struct notifier_block *nb, unsigned long val | |||
659 | ft->clock_tick_ref = cpu_data(cpu).clock_tick; | 659 | ft->clock_tick_ref = cpu_data(cpu).clock_tick; |
660 | } | 660 | } |
661 | if ((val == CPUFREQ_PRECHANGE && freq->old < freq->new) || | 661 | if ((val == CPUFREQ_PRECHANGE && freq->old < freq->new) || |
662 | (val == CPUFREQ_POSTCHANGE && freq->old > freq->new) || | 662 | (val == CPUFREQ_POSTCHANGE && freq->old > freq->new)) { |
663 | (val == CPUFREQ_RESUMECHANGE)) { | ||
664 | cpu_data(cpu).clock_tick = | 663 | cpu_data(cpu).clock_tick = |
665 | cpufreq_scale(ft->clock_tick_ref, | 664 | cpufreq_scale(ft->clock_tick_ref, |
666 | ft->ref_freq, | 665 | ft->ref_freq, |
@@ -733,7 +732,7 @@ void __irq_entry timer_interrupt(int irq, struct pt_regs *regs) | |||
733 | irq_enter(); | 732 | irq_enter(); |
734 | 733 | ||
735 | local_cpu_data().irq0_irqs++; | 734 | local_cpu_data().irq0_irqs++; |
736 | kstat_incr_irqs_this_cpu(0, irq_to_desc(0)); | 735 | kstat_incr_irq_this_cpu(0); |
737 | 736 | ||
738 | if (unlikely(!evt->event_handler)) { | 737 | if (unlikely(!evt->event_handler)) { |
739 | printk(KERN_WARNING | 738 | printk(KERN_WARNING |
diff --git a/arch/sparc/mm/tsb.c b/arch/sparc/mm/tsb.c index 3b3a360b429a..f5d506fdddad 100644 --- a/arch/sparc/mm/tsb.c +++ b/arch/sparc/mm/tsb.c | |||
@@ -273,7 +273,7 @@ void __init pgtable_cache_init(void) | |||
273 | prom_halt(); | 273 | prom_halt(); |
274 | } | 274 | } |
275 | 275 | ||
276 | for (i = 0; i < 8; i++) { | 276 | for (i = 0; i < ARRAY_SIZE(tsb_cache_names); i++) { |
277 | unsigned long size = 8192 << i; | 277 | unsigned long size = 8192 << i; |
278 | const char *name = tsb_cache_names[i]; | 278 | const char *name = tsb_cache_names[i]; |
279 | 279 | ||
diff --git a/arch/sparc/net/bpf_jit_comp.c b/arch/sparc/net/bpf_jit_comp.c index 01fe9946d388..a82c6b2a9780 100644 --- a/arch/sparc/net/bpf_jit_comp.c +++ b/arch/sparc/net/bpf_jit_comp.c | |||
@@ -618,7 +618,7 @@ void bpf_jit_compile(struct sk_filter *fp) | |||
618 | emit_load16(r_A, struct net_device, type, r_A); | 618 | emit_load16(r_A, struct net_device, type, r_A); |
619 | break; | 619 | break; |
620 | case BPF_S_ANC_RXHASH: | 620 | case BPF_S_ANC_RXHASH: |
621 | emit_skb_load32(rxhash, r_A); | 621 | emit_skb_load32(hash, r_A); |
622 | break; | 622 | break; |
623 | case BPF_S_ANC_VLAN_TAG: | 623 | case BPF_S_ANC_VLAN_TAG: |
624 | case BPF_S_ANC_VLAN_TAG_PRESENT: | 624 | case BPF_S_ANC_VLAN_TAG_PRESENT: |
@@ -809,6 +809,7 @@ cond_branch: f_offset = addrs[i + filter[i].jf]; | |||
809 | if (image) { | 809 | if (image) { |
810 | bpf_flush_icache(image, image + proglen); | 810 | bpf_flush_icache(image, image + proglen); |
811 | fp->bpf_func = (void *)image; | 811 | fp->bpf_func = (void *)image; |
812 | fp->jited = 1; | ||
812 | } | 813 | } |
813 | out: | 814 | out: |
814 | kfree(addrs); | 815 | kfree(addrs); |
@@ -817,7 +818,7 @@ out: | |||
817 | 818 | ||
818 | void bpf_jit_free(struct sk_filter *fp) | 819 | void bpf_jit_free(struct sk_filter *fp) |
819 | { | 820 | { |
820 | if (fp->bpf_func != sk_run_filter) | 821 | if (fp->jited) |
821 | module_free(NULL, fp->bpf_func); | 822 | module_free(NULL, fp->bpf_func); |
822 | kfree(fp); | 823 | kfree(fp); |
823 | } | 824 | } |