diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 20:19:27 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 20:19:28 -0400 |
commit | 532bfc851a7475fb6a36c1e953aa395798a7cca7 (patch) | |
tree | a7892e5a31330dd59f31959efbe9fda1803784fd /arch/ia64 | |
parent | 0195c00244dc2e9f522475868fa278c473ba7339 (diff) | |
parent | 8da00edc1069f01c34510fa405dc15d96c090a3f (diff) |
Merge branch 'akpm' (Andrew's patch-bomb)
Merge third batch of patches from Andrew Morton:
- Some MM stragglers
- core SMP library cleanups (on_each_cpu_mask)
- Some IPI optimisations
- kexec
- kdump
- IPMI
- the radix-tree iterator work
- various other misc bits.
"That'll do for -rc1. I still have ~10 patches for 3.4, will send
those along when they've baked a little more."
* emailed from Andrew Morton <akpm@linux-foundation.org>: (35 commits)
backlight: fix typo in tosa_lcd.c
crc32: add help text for the algorithm select option
mm: move hugepage test examples to tools/testing/selftests/vm
mm: move slabinfo.c to tools/vm
mm: move page-types.c from Documentation to tools/vm
selftests/Makefile: make `run_tests' depend on `all'
selftests: launch individual selftests from the main Makefile
radix-tree: use iterators in find_get_pages* functions
radix-tree: rewrite gang lookup using iterator
radix-tree: introduce bit-optimized iterator
fs/proc/namespaces.c: prevent crash when ns_entries[] is empty
nbd: rename the nbd_device variable from lo to nbd
pidns: add reboot_pid_ns() to handle the reboot syscall
sysctl: use bitmap library functions
ipmi: use locks on watchdog timeout set on reboot
ipmi: simplify locking
ipmi: fix message handling during panics
ipmi: use a tasklet for handling received messages
ipmi: increase KCS timeouts
ipmi: decrease the IPMI message transaction time in interrupt mode
...
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kernel/acpi.c | 6 | ||||
-rw-r--r-- | arch/ia64/kernel/irq_ia64.c | 8 | ||||
-rw-r--r-- | arch/ia64/kernel/mca.c | 6 | ||||
-rw-r--r-- | arch/ia64/kernel/msi_ia64.c | 4 | ||||
-rw-r--r-- | arch/ia64/kernel/setup.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 19 | ||||
-rw-r--r-- | arch/ia64/kernel/topology.c | 3 |
8 files changed, 24 insertions, 26 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index d1cc81e63ba6..ac795d311f44 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -843,7 +843,7 @@ early_param("additional_cpus", setup_additional_cpus); | |||
843 | * are onlined, or offlined. The reason is per-cpu data-structures | 843 | * are onlined, or offlined. The reason is per-cpu data-structures |
844 | * are allocated by some modules at init time, and dont expect to | 844 | * are allocated by some modules at init time, and dont expect to |
845 | * do this dynamically on cpu arrival/departure. | 845 | * do this dynamically on cpu arrival/departure. |
846 | * cpu_present_map on the other hand can change dynamically. | 846 | * cpu_present_mask on the other hand can change dynamically. |
847 | * In case when cpu_hotplug is not compiled, then we resort to current | 847 | * In case when cpu_hotplug is not compiled, then we resort to current |
848 | * behaviour, which is cpu_possible == cpu_present. | 848 | * behaviour, which is cpu_possible == cpu_present. |
849 | * - Ashok Raj | 849 | * - Ashok Raj |
@@ -921,7 +921,7 @@ static int __cpuinit _acpi_map_lsapic(acpi_handle handle, int *pcpu) | |||
921 | 921 | ||
922 | acpi_map_cpu2node(handle, cpu, physid); | 922 | acpi_map_cpu2node(handle, cpu, physid); |
923 | 923 | ||
924 | cpu_set(cpu, cpu_present_map); | 924 | set_cpu_present(cpu, true); |
925 | ia64_cpu_to_sapicid[cpu] = physid; | 925 | ia64_cpu_to_sapicid[cpu] = physid; |
926 | 926 | ||
927 | acpi_processor_set_pdc(handle); | 927 | acpi_processor_set_pdc(handle); |
@@ -940,7 +940,7 @@ EXPORT_SYMBOL(acpi_map_lsapic); | |||
940 | int acpi_unmap_lsapic(int cpu) | 940 | int acpi_unmap_lsapic(int cpu) |
941 | { | 941 | { |
942 | ia64_cpu_to_sapicid[cpu] = -1; | 942 | ia64_cpu_to_sapicid[cpu] = -1; |
943 | cpu_clear(cpu, cpu_present_map); | 943 | set_cpu_present(cpu, false); |
944 | 944 | ||
945 | #ifdef CONFIG_ACPI_NUMA | 945 | #ifdef CONFIG_ACPI_NUMA |
946 | /* NUMA specific cleanup's */ | 946 | /* NUMA specific cleanup's */ |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 08113b1d30f7..5c3e0888265a 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -117,7 +117,7 @@ static inline int find_unassigned_vector(cpumask_t domain) | |||
117 | cpumask_t mask; | 117 | cpumask_t mask; |
118 | int pos, vector; | 118 | int pos, vector; |
119 | 119 | ||
120 | cpus_and(mask, domain, cpu_online_map); | 120 | cpumask_and(&mask, &domain, cpu_online_mask); |
121 | if (cpus_empty(mask)) | 121 | if (cpus_empty(mask)) |
122 | return -EINVAL; | 122 | return -EINVAL; |
123 | 123 | ||
@@ -140,7 +140,7 @@ static int __bind_irq_vector(int irq, int vector, cpumask_t domain) | |||
140 | BUG_ON((unsigned)irq >= NR_IRQS); | 140 | BUG_ON((unsigned)irq >= NR_IRQS); |
141 | BUG_ON((unsigned)vector >= IA64_NUM_VECTORS); | 141 | BUG_ON((unsigned)vector >= IA64_NUM_VECTORS); |
142 | 142 | ||
143 | cpus_and(mask, domain, cpu_online_map); | 143 | cpumask_and(&mask, &domain, cpu_online_mask); |
144 | if (cpus_empty(mask)) | 144 | if (cpus_empty(mask)) |
145 | return -EINVAL; | 145 | return -EINVAL; |
146 | if ((cfg->vector == vector) && cpus_equal(cfg->domain, domain)) | 146 | if ((cfg->vector == vector) && cpus_equal(cfg->domain, domain)) |
@@ -178,7 +178,7 @@ static void __clear_irq_vector(int irq) | |||
178 | BUG_ON(cfg->vector == IRQ_VECTOR_UNASSIGNED); | 178 | BUG_ON(cfg->vector == IRQ_VECTOR_UNASSIGNED); |
179 | vector = cfg->vector; | 179 | vector = cfg->vector; |
180 | domain = cfg->domain; | 180 | domain = cfg->domain; |
181 | cpus_and(mask, cfg->domain, cpu_online_map); | 181 | cpumask_and(&mask, &cfg->domain, cpu_online_mask); |
182 | for_each_cpu_mask(cpu, mask) | 182 | for_each_cpu_mask(cpu, mask) |
183 | per_cpu(vector_irq, cpu)[vector] = -1; | 183 | per_cpu(vector_irq, cpu)[vector] = -1; |
184 | cfg->vector = IRQ_VECTOR_UNASSIGNED; | 184 | cfg->vector = IRQ_VECTOR_UNASSIGNED; |
@@ -321,7 +321,7 @@ void irq_complete_move(unsigned irq) | |||
321 | if (unlikely(cpu_isset(smp_processor_id(), cfg->old_domain))) | 321 | if (unlikely(cpu_isset(smp_processor_id(), cfg->old_domain))) |
322 | return; | 322 | return; |
323 | 323 | ||
324 | cpus_and(cleanup_mask, cfg->old_domain, cpu_online_map); | 324 | cpumask_and(&cleanup_mask, &cfg->old_domain, cpu_online_mask); |
325 | cfg->move_cleanup_count = cpus_weight(cleanup_mask); | 325 | cfg->move_cleanup_count = cpus_weight(cleanup_mask); |
326 | for_each_cpu_mask(i, cleanup_mask) | 326 | for_each_cpu_mask(i, cleanup_mask) |
327 | platform_send_ipi(i, IA64_IRQ_MOVE_VECTOR, IA64_IPI_DM_INT, 0); | 327 | platform_send_ipi(i, IA64_IRQ_MOVE_VECTOR, IA64_IPI_DM_INT, 0); |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index a39fe098a732..65bf9cd39044 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -1514,7 +1514,8 @@ static void | |||
1514 | ia64_mca_cmc_poll (unsigned long dummy) | 1514 | ia64_mca_cmc_poll (unsigned long dummy) |
1515 | { | 1515 | { |
1516 | /* Trigger a CMC interrupt cascade */ | 1516 | /* Trigger a CMC interrupt cascade */ |
1517 | platform_send_ipi(first_cpu(cpu_online_map), IA64_CMCP_VECTOR, IA64_IPI_DM_INT, 0); | 1517 | platform_send_ipi(cpumask_first(cpu_online_mask), IA64_CMCP_VECTOR, |
1518 | IA64_IPI_DM_INT, 0); | ||
1518 | } | 1519 | } |
1519 | 1520 | ||
1520 | /* | 1521 | /* |
@@ -1590,7 +1591,8 @@ static void | |||
1590 | ia64_mca_cpe_poll (unsigned long dummy) | 1591 | ia64_mca_cpe_poll (unsigned long dummy) |
1591 | { | 1592 | { |
1592 | /* Trigger a CPE interrupt cascade */ | 1593 | /* Trigger a CPE interrupt cascade */ |
1593 | platform_send_ipi(first_cpu(cpu_online_map), IA64_CPEP_VECTOR, IA64_IPI_DM_INT, 0); | 1594 | platform_send_ipi(cpumask_first(cpu_online_mask), IA64_CPEP_VECTOR, |
1595 | IA64_IPI_DM_INT, 0); | ||
1594 | } | 1596 | } |
1595 | 1597 | ||
1596 | #endif /* CONFIG_ACPI */ | 1598 | #endif /* CONFIG_ACPI */ |
diff --git a/arch/ia64/kernel/msi_ia64.c b/arch/ia64/kernel/msi_ia64.c index 94e0db72d4a6..fb2f1e622877 100644 --- a/arch/ia64/kernel/msi_ia64.c +++ b/arch/ia64/kernel/msi_ia64.c | |||
@@ -57,7 +57,7 @@ int ia64_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) | |||
57 | return irq; | 57 | return irq; |
58 | 58 | ||
59 | irq_set_msi_desc(irq, desc); | 59 | irq_set_msi_desc(irq, desc); |
60 | cpus_and(mask, irq_to_domain(irq), cpu_online_map); | 60 | cpumask_and(&mask, &(irq_to_domain(irq)), cpu_online_mask); |
61 | dest_phys_id = cpu_physical_id(first_cpu(mask)); | 61 | dest_phys_id = cpu_physical_id(first_cpu(mask)); |
62 | vector = irq_to_vector(irq); | 62 | vector = irq_to_vector(irq); |
63 | 63 | ||
@@ -179,7 +179,7 @@ msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_msg *msg) | |||
179 | unsigned dest; | 179 | unsigned dest; |
180 | cpumask_t mask; | 180 | cpumask_t mask; |
181 | 181 | ||
182 | cpus_and(mask, irq_to_domain(irq), cpu_online_map); | 182 | cpumask_and(&mask, &(irq_to_domain(irq)), cpu_online_mask); |
183 | dest = cpu_physical_id(first_cpu(mask)); | 183 | dest = cpu_physical_id(first_cpu(mask)); |
184 | 184 | ||
185 | msg->address_hi = 0; | 185 | msg->address_hi = 0; |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index c45e6ddb4ddb..aaefd9b94f2f 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -485,7 +485,7 @@ mark_bsp_online (void) | |||
485 | { | 485 | { |
486 | #ifdef CONFIG_SMP | 486 | #ifdef CONFIG_SMP |
487 | /* If we register an early console, allow CPU 0 to printk */ | 487 | /* If we register an early console, allow CPU 0 to printk */ |
488 | cpu_set(smp_processor_id(), cpu_online_map); | 488 | set_cpu_online(smp_processor_id(), true); |
489 | #endif | 489 | #endif |
490 | } | 490 | } |
491 | 491 | ||
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c index e27f925032ae..9fcd4e63048f 100644 --- a/arch/ia64/kernel/smp.c +++ b/arch/ia64/kernel/smp.c | |||
@@ -76,7 +76,7 @@ stop_this_cpu(void) | |||
76 | /* | 76 | /* |
77 | * Remove this CPU: | 77 | * Remove this CPU: |
78 | */ | 78 | */ |
79 | cpu_clear(smp_processor_id(), cpu_online_map); | 79 | set_cpu_online(smp_processor_id(), false); |
80 | max_xtp(); | 80 | max_xtp(); |
81 | local_irq_disable(); | 81 | local_irq_disable(); |
82 | cpu_halt(); | 82 | cpu_halt(); |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index fb7927be75c4..796f6a5b966a 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -400,7 +400,7 @@ smp_callin (void) | |||
400 | /* Setup the per cpu irq handling data structures */ | 400 | /* Setup the per cpu irq handling data structures */ |
401 | __setup_vector_irq(cpuid); | 401 | __setup_vector_irq(cpuid); |
402 | notify_cpu_starting(cpuid); | 402 | notify_cpu_starting(cpuid); |
403 | cpu_set(cpuid, cpu_online_map); | 403 | set_cpu_online(cpuid, true); |
404 | per_cpu(cpu_state, cpuid) = CPU_ONLINE; | 404 | per_cpu(cpu_state, cpuid) = CPU_ONLINE; |
405 | spin_unlock(&vector_lock); | 405 | spin_unlock(&vector_lock); |
406 | ipi_call_unlock_irq(); | 406 | ipi_call_unlock_irq(); |
@@ -547,7 +547,7 @@ do_rest: | |||
547 | if (!cpu_isset(cpu, cpu_callin_map)) { | 547 | if (!cpu_isset(cpu, cpu_callin_map)) { |
548 | printk(KERN_ERR "Processor 0x%x/0x%x is stuck.\n", cpu, sapicid); | 548 | printk(KERN_ERR "Processor 0x%x/0x%x is stuck.\n", cpu, sapicid); |
549 | ia64_cpu_to_sapicid[cpu] = -1; | 549 | ia64_cpu_to_sapicid[cpu] = -1; |
550 | cpu_clear(cpu, cpu_online_map); /* was set in smp_callin() */ | 550 | set_cpu_online(cpu, false); /* was set in smp_callin() */ |
551 | return -EINVAL; | 551 | return -EINVAL; |
552 | } | 552 | } |
553 | return 0; | 553 | return 0; |
@@ -577,8 +577,7 @@ smp_build_cpu_map (void) | |||
577 | } | 577 | } |
578 | 578 | ||
579 | ia64_cpu_to_sapicid[0] = boot_cpu_id; | 579 | ia64_cpu_to_sapicid[0] = boot_cpu_id; |
580 | cpus_clear(cpu_present_map); | 580 | init_cpu_present(cpumask_of(0)); |
581 | set_cpu_present(0, true); | ||
582 | set_cpu_possible(0, true); | 581 | set_cpu_possible(0, true); |
583 | for (cpu = 1, i = 0; i < smp_boot_data.cpu_count; i++) { | 582 | for (cpu = 1, i = 0; i < smp_boot_data.cpu_count; i++) { |
584 | sapicid = smp_boot_data.cpu_phys_id[i]; | 583 | sapicid = smp_boot_data.cpu_phys_id[i]; |
@@ -605,10 +604,6 @@ smp_prepare_cpus (unsigned int max_cpus) | |||
605 | 604 | ||
606 | smp_setup_percpu_timer(); | 605 | smp_setup_percpu_timer(); |
607 | 606 | ||
608 | /* | ||
609 | * We have the boot CPU online for sure. | ||
610 | */ | ||
611 | cpu_set(0, cpu_online_map); | ||
612 | cpu_set(0, cpu_callin_map); | 607 | cpu_set(0, cpu_callin_map); |
613 | 608 | ||
614 | local_cpu_data->loops_per_jiffy = loops_per_jiffy; | 609 | local_cpu_data->loops_per_jiffy = loops_per_jiffy; |
@@ -632,7 +627,7 @@ smp_prepare_cpus (unsigned int max_cpus) | |||
632 | 627 | ||
633 | void __devinit smp_prepare_boot_cpu(void) | 628 | void __devinit smp_prepare_boot_cpu(void) |
634 | { | 629 | { |
635 | cpu_set(smp_processor_id(), cpu_online_map); | 630 | set_cpu_online(smp_processor_id(), true); |
636 | cpu_set(smp_processor_id(), cpu_callin_map); | 631 | cpu_set(smp_processor_id(), cpu_callin_map); |
637 | set_numa_node(cpu_to_node_map[smp_processor_id()]); | 632 | set_numa_node(cpu_to_node_map[smp_processor_id()]); |
638 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; | 633 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; |
@@ -689,7 +684,7 @@ int migrate_platform_irqs(unsigned int cpu) | |||
689 | /* | 684 | /* |
690 | * Now re-target the CPEI to a different processor | 685 | * Now re-target the CPEI to a different processor |
691 | */ | 686 | */ |
692 | new_cpei_cpu = any_online_cpu(cpu_online_map); | 687 | new_cpei_cpu = cpumask_any(cpu_online_mask); |
693 | mask = cpumask_of(new_cpei_cpu); | 688 | mask = cpumask_of(new_cpei_cpu); |
694 | set_cpei_target_cpu(new_cpei_cpu); | 689 | set_cpei_target_cpu(new_cpei_cpu); |
695 | data = irq_get_irq_data(ia64_cpe_irq); | 690 | data = irq_get_irq_data(ia64_cpe_irq); |
@@ -731,10 +726,10 @@ int __cpu_disable(void) | |||
731 | return -EBUSY; | 726 | return -EBUSY; |
732 | } | 727 | } |
733 | 728 | ||
734 | cpu_clear(cpu, cpu_online_map); | 729 | set_cpu_online(cpu, false); |
735 | 730 | ||
736 | if (migrate_platform_irqs(cpu)) { | 731 | if (migrate_platform_irqs(cpu)) { |
737 | cpu_set(cpu, cpu_online_map); | 732 | set_cpu_online(cpu, true); |
738 | return -EBUSY; | 733 | return -EBUSY; |
739 | } | 734 | } |
740 | 735 | ||
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c index 9deb21dbf629..c64460b9c704 100644 --- a/arch/ia64/kernel/topology.c +++ b/arch/ia64/kernel/topology.c | |||
@@ -220,7 +220,8 @@ static ssize_t show_shared_cpu_map(struct cache_info *this_leaf, char *buf) | |||
220 | ssize_t len; | 220 | ssize_t len; |
221 | cpumask_t shared_cpu_map; | 221 | cpumask_t shared_cpu_map; |
222 | 222 | ||
223 | cpus_and(shared_cpu_map, this_leaf->shared_cpu_map, cpu_online_map); | 223 | cpumask_and(&shared_cpu_map, |
224 | &this_leaf->shared_cpu_map, cpu_online_mask); | ||
224 | len = cpumask_scnprintf(buf, NR_CPUS+1, &shared_cpu_map); | 225 | len = cpumask_scnprintf(buf, NR_CPUS+1, &shared_cpu_map); |
225 | len += sprintf(buf+len, "\n"); | 226 | len += sprintf(buf+len, "\n"); |
226 | return len; | 227 | return len; |