diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-02 14:44:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-02 14:44:09 -0500 |
commit | b840d79631c882786925303c2b0f4fefc31845ed (patch) | |
tree | cda60a95d4507fe1321fc285af38982d7eb9693b /drivers | |
parent | 597b0d21626da4e6f09f132442caf0cc2b0eb47c (diff) | |
parent | c3d80000e3a812fe5a200d6bde755fbd7fa65481 (diff) |
Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)
x86: export vector_used_by_percpu_irq
x86: use logical apicid in x2apic_cluster's x2apic_cpu_mask_to_apicid_and()
sched: nominate preferred wakeup cpu, fix
x86: fix lguest used_vectors breakage, -v2
x86: fix warning in arch/x86/kernel/io_apic.c
sched: fix warning in kernel/sched.c
sched: move test_sd_parent() to an SMP section of sched.h
sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc>0
sched: activate active load balancing in new idle cpus
sched: bias task wakeups to preferred semi-idle packages
sched: nominate preferred wakeup cpu
sched: favour lower logical cpu number for sched_mc balance
sched: framework for sched_mc/smt_power_savings=N
sched: convert BALANCE_FOR_xx_POWER to inline functions
x86: use possible_cpus=NUM to extend the possible cpus allowed
x86: fix cpu_mask_to_apicid_and to include cpu_online_mask
x86: update io_apic.c to the new cpumask code
x86: Introduce topology_core_cpumask()/topology_thread_cpumask()
x86: xen: use smp_call_function_many()
x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c
...
Fixed up trivial conflict in kernel/time/tick-sched.c manually
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/cpu.c | 2 | ||||
-rw-r--r-- | drivers/base/node.c | 4 | ||||
-rw-r--r-- | drivers/base/topology.c | 4 | ||||
-rw-r--r-- | drivers/clocksource/tcb_clksrc.c | 2 | ||||
-rw-r--r-- | drivers/lguest/interrupts_and_traps.c | 13 | ||||
-rw-r--r-- | drivers/parisc/iosapic.c | 7 | ||||
-rw-r--r-- | drivers/pci/pci-sysfs.c | 4 | ||||
-rw-r--r-- | drivers/pci/probe.c | 4 | ||||
-rw-r--r-- | drivers/xen/events.c | 6 |
9 files changed, 26 insertions, 20 deletions
diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index 64f5d54f7edc..4259072f5bd0 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c | |||
@@ -109,7 +109,7 @@ static SYSDEV_ATTR(crash_notes, 0400, show_crash_notes, NULL); | |||
109 | */ | 109 | */ |
110 | static ssize_t print_cpus_map(char *buf, cpumask_t *map) | 110 | static ssize_t print_cpus_map(char *buf, cpumask_t *map) |
111 | { | 111 | { |
112 | int n = cpulist_scnprintf(buf, PAGE_SIZE-2, *map); | 112 | int n = cpulist_scnprintf(buf, PAGE_SIZE-2, map); |
113 | 113 | ||
114 | buf[n++] = '\n'; | 114 | buf[n++] = '\n'; |
115 | buf[n] = '\0'; | 115 | buf[n] = '\0'; |
diff --git a/drivers/base/node.c b/drivers/base/node.c index f5207090885a..91636cd8b6c9 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c | |||
@@ -30,8 +30,8 @@ static ssize_t node_read_cpumap(struct sys_device *dev, int type, char *buf) | |||
30 | BUILD_BUG_ON((NR_CPUS/32 * 9) > (PAGE_SIZE-1)); | 30 | BUILD_BUG_ON((NR_CPUS/32 * 9) > (PAGE_SIZE-1)); |
31 | 31 | ||
32 | len = type? | 32 | len = type? |
33 | cpulist_scnprintf(buf, PAGE_SIZE-2, *mask): | 33 | cpulist_scnprintf(buf, PAGE_SIZE-2, mask) : |
34 | cpumask_scnprintf(buf, PAGE_SIZE-2, *mask); | 34 | cpumask_scnprintf(buf, PAGE_SIZE-2, mask); |
35 | buf[len++] = '\n'; | 35 | buf[len++] = '\n'; |
36 | buf[len] = '\0'; | 36 | buf[len] = '\0'; |
37 | return len; | 37 | return len; |
diff --git a/drivers/base/topology.c b/drivers/base/topology.c index 199cd97e32e6..a8bc1cbcfa7c 100644 --- a/drivers/base/topology.c +++ b/drivers/base/topology.c | |||
@@ -49,8 +49,8 @@ static ssize_t show_cpumap(int type, cpumask_t *mask, char *buf) | |||
49 | 49 | ||
50 | if (len > 1) { | 50 | if (len > 1) { |
51 | n = type? | 51 | n = type? |
52 | cpulist_scnprintf(buf, len-2, *mask): | 52 | cpulist_scnprintf(buf, len-2, mask) : |
53 | cpumask_scnprintf(buf, len-2, *mask); | 53 | cpumask_scnprintf(buf, len-2, mask); |
54 | buf[n++] = '\n'; | 54 | buf[n++] = '\n'; |
55 | buf[n] = '\0'; | 55 | buf[n] = '\0'; |
56 | } | 56 | } |
diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c index f450588e5858..254f1064d973 100644 --- a/drivers/clocksource/tcb_clksrc.c +++ b/drivers/clocksource/tcb_clksrc.c | |||
@@ -154,7 +154,6 @@ static struct tc_clkevt_device clkevt = { | |||
154 | .shift = 32, | 154 | .shift = 32, |
155 | /* Should be lower than at91rm9200's system timer */ | 155 | /* Should be lower than at91rm9200's system timer */ |
156 | .rating = 125, | 156 | .rating = 125, |
157 | .cpumask = CPU_MASK_CPU0, | ||
158 | .set_next_event = tc_next_event, | 157 | .set_next_event = tc_next_event, |
159 | .set_mode = tc_mode, | 158 | .set_mode = tc_mode, |
160 | }, | 159 | }, |
@@ -195,6 +194,7 @@ static void __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx) | |||
195 | clkevt.clkevt.max_delta_ns | 194 | clkevt.clkevt.max_delta_ns |
196 | = clockevent_delta2ns(0xffff, &clkevt.clkevt); | 195 | = clockevent_delta2ns(0xffff, &clkevt.clkevt); |
197 | clkevt.clkevt.min_delta_ns = clockevent_delta2ns(1, &clkevt.clkevt) + 1; | 196 | clkevt.clkevt.min_delta_ns = clockevent_delta2ns(1, &clkevt.clkevt) + 1; |
197 | clkevt.clkevt.cpumask = cpumask_of(0); | ||
198 | 198 | ||
199 | setup_irq(irq, &tc_irqaction); | 199 | setup_irq(irq, &tc_irqaction); |
200 | 200 | ||
diff --git a/drivers/lguest/interrupts_and_traps.c b/drivers/lguest/interrupts_and_traps.c index a1039068f95c..415fab0125ac 100644 --- a/drivers/lguest/interrupts_and_traps.c +++ b/drivers/lguest/interrupts_and_traps.c | |||
@@ -222,11 +222,16 @@ bool check_syscall_vector(struct lguest *lg) | |||
222 | int init_interrupts(void) | 222 | int init_interrupts(void) |
223 | { | 223 | { |
224 | /* If they want some strange system call vector, reserve it now */ | 224 | /* If they want some strange system call vector, reserve it now */ |
225 | if (syscall_vector != SYSCALL_VECTOR | 225 | if (syscall_vector != SYSCALL_VECTOR) { |
226 | && test_and_set_bit(syscall_vector, used_vectors)) { | 226 | if (test_bit(syscall_vector, used_vectors) || |
227 | printk("lg: couldn't reserve syscall %u\n", syscall_vector); | 227 | vector_used_by_percpu_irq(syscall_vector)) { |
228 | return -EBUSY; | 228 | printk(KERN_ERR "lg: couldn't reserve syscall %u\n", |
229 | syscall_vector); | ||
230 | return -EBUSY; | ||
231 | } | ||
232 | set_bit(syscall_vector, used_vectors); | ||
229 | } | 233 | } |
234 | |||
230 | return 0; | 235 | return 0; |
231 | } | 236 | } |
232 | 237 | ||
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index 7beffcab2745..9dedbbd218c3 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c | |||
@@ -704,16 +704,17 @@ static unsigned int iosapic_startup_irq(unsigned int irq) | |||
704 | } | 704 | } |
705 | 705 | ||
706 | #ifdef CONFIG_SMP | 706 | #ifdef CONFIG_SMP |
707 | static void iosapic_set_affinity_irq(unsigned int irq, cpumask_t dest) | 707 | static void iosapic_set_affinity_irq(unsigned int irq, |
708 | const struct cpumask *dest) | ||
708 | { | 709 | { |
709 | struct vector_info *vi = iosapic_get_vector(irq); | 710 | struct vector_info *vi = iosapic_get_vector(irq); |
710 | u32 d0, d1, dummy_d0; | 711 | u32 d0, d1, dummy_d0; |
711 | unsigned long flags; | 712 | unsigned long flags; |
712 | 713 | ||
713 | if (cpu_check_affinity(irq, &dest)) | 714 | if (cpu_check_affinity(irq, dest)) |
714 | return; | 715 | return; |
715 | 716 | ||
716 | vi->txn_addr = txn_affinity_addr(irq, first_cpu(dest)); | 717 | vi->txn_addr = txn_affinity_addr(irq, cpumask_first(dest)); |
717 | 718 | ||
718 | spin_lock_irqsave(&iosapic_lock, flags); | 719 | spin_lock_irqsave(&iosapic_lock, flags); |
719 | /* d1 contains the destination CPU, so only want to set that | 720 | /* d1 contains the destination CPU, so only want to set that |
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 5d72866897a8..c88485860a0a 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -74,7 +74,7 @@ static ssize_t local_cpus_show(struct device *dev, | |||
74 | int len; | 74 | int len; |
75 | 75 | ||
76 | mask = pcibus_to_cpumask(to_pci_dev(dev)->bus); | 76 | mask = pcibus_to_cpumask(to_pci_dev(dev)->bus); |
77 | len = cpumask_scnprintf(buf, PAGE_SIZE-2, mask); | 77 | len = cpumask_scnprintf(buf, PAGE_SIZE-2, &mask); |
78 | buf[len++] = '\n'; | 78 | buf[len++] = '\n'; |
79 | buf[len] = '\0'; | 79 | buf[len] = '\0'; |
80 | return len; | 80 | return len; |
@@ -88,7 +88,7 @@ static ssize_t local_cpulist_show(struct device *dev, | |||
88 | int len; | 88 | int len; |
89 | 89 | ||
90 | mask = pcibus_to_cpumask(to_pci_dev(dev)->bus); | 90 | mask = pcibus_to_cpumask(to_pci_dev(dev)->bus); |
91 | len = cpulist_scnprintf(buf, PAGE_SIZE-2, mask); | 91 | len = cpulist_scnprintf(buf, PAGE_SIZE-2, &mask); |
92 | buf[len++] = '\n'; | 92 | buf[len++] = '\n'; |
93 | buf[len] = '\0'; | 93 | buf[len] = '\0'; |
94 | return len; | 94 | return len; |
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 003a9b3c293f..5b3f5937ecf5 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -55,8 +55,8 @@ static ssize_t pci_bus_show_cpuaffinity(struct device *dev, | |||
55 | 55 | ||
56 | cpumask = pcibus_to_cpumask(to_pci_bus(dev)); | 56 | cpumask = pcibus_to_cpumask(to_pci_bus(dev)); |
57 | ret = type? | 57 | ret = type? |
58 | cpulist_scnprintf(buf, PAGE_SIZE-2, cpumask): | 58 | cpulist_scnprintf(buf, PAGE_SIZE-2, &cpumask) : |
59 | cpumask_scnprintf(buf, PAGE_SIZE-2, cpumask); | 59 | cpumask_scnprintf(buf, PAGE_SIZE-2, &cpumask); |
60 | buf[ret++] = '\n'; | 60 | buf[ret++] = '\n'; |
61 | buf[ret] = '\0'; | 61 | buf[ret] = '\0'; |
62 | return ret; | 62 | return ret; |
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index e26733a9df21..eb0dfdeaa949 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c | |||
@@ -585,7 +585,7 @@ void rebind_evtchn_irq(int evtchn, int irq) | |||
585 | spin_unlock(&irq_mapping_update_lock); | 585 | spin_unlock(&irq_mapping_update_lock); |
586 | 586 | ||
587 | /* new event channels are always bound to cpu 0 */ | 587 | /* new event channels are always bound to cpu 0 */ |
588 | irq_set_affinity(irq, cpumask_of_cpu(0)); | 588 | irq_set_affinity(irq, cpumask_of(0)); |
589 | 589 | ||
590 | /* Unmask the event channel. */ | 590 | /* Unmask the event channel. */ |
591 | enable_irq(irq); | 591 | enable_irq(irq); |
@@ -614,9 +614,9 @@ static void rebind_irq_to_cpu(unsigned irq, unsigned tcpu) | |||
614 | } | 614 | } |
615 | 615 | ||
616 | 616 | ||
617 | static void set_affinity_irq(unsigned irq, cpumask_t dest) | 617 | static void set_affinity_irq(unsigned irq, const struct cpumask *dest) |
618 | { | 618 | { |
619 | unsigned tcpu = first_cpu(dest); | 619 | unsigned tcpu = cpumask_first(dest); |
620 | rebind_irq_to_cpu(irq, tcpu); | 620 | rebind_irq_to_cpu(irq, tcpu); |
621 | } | 621 | } |
622 | 622 | ||