aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-28 20:19:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-28 20:19:28 -0400
commit532bfc851a7475fb6a36c1e953aa395798a7cca7 (patch)
treea7892e5a31330dd59f31959efbe9fda1803784fd /arch/ia64
parent0195c00244dc2e9f522475868fa278c473ba7339 (diff)
parent8da00edc1069f01c34510fa405dc15d96c090a3f (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.c6
-rw-r--r--arch/ia64/kernel/irq_ia64.c8
-rw-r--r--arch/ia64/kernel/mca.c6
-rw-r--r--arch/ia64/kernel/msi_ia64.c4
-rw-r--r--arch/ia64/kernel/setup.c2
-rw-r--r--arch/ia64/kernel/smp.c2
-rw-r--r--arch/ia64/kernel/smpboot.c19
-rw-r--r--arch/ia64/kernel/topology.c3
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);
940int acpi_unmap_lsapic(int cpu) 940int 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
1514ia64_mca_cmc_poll (unsigned long dummy) 1514ia64_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
1590ia64_mca_cpe_poll (unsigned long dummy) 1591ia64_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
633void __devinit smp_prepare_boot_cpu(void) 628void __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;