aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2011-01-12 18:06:06 -0500
committerLen Brown <len.brown@intel.com>2011-01-12 18:06:06 -0500
commit56dbed129df3fdd4caf9018b6e7599ee258a5420 (patch)
treeb902491aef3a99efe0d9d49edd0f6e414dba654f /arch/ia64
parent2a2d31c8dc6f1ebcf5eab1d93a0cb0fb4ed57c7c (diff)
parentf878133bf022717b880d0e0995b8f91436fd605c (diff)
Merge branch 'linus' into idle-test
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/kernel/acpi.c6
-rw-r--r--arch/ia64/kernel/irq_ia64.c2
-rw-r--r--arch/ia64/kernel/perfmon.c9
-rw-r--r--arch/ia64/kernel/smp.c13
-rw-r--r--arch/ia64/kernel/time.c2
5 files changed, 22 insertions, 10 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index c6c90f39f4d9..7b897b7b0ae6 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -477,6 +477,12 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
477 if (!(pa->flags & ACPI_SRAT_CPU_ENABLED)) 477 if (!(pa->flags & ACPI_SRAT_CPU_ENABLED))
478 return; 478 return;
479 479
480 if (srat_num_cpus >= ARRAY_SIZE(node_cpuid)) {
481 printk_once(KERN_WARNING
482 "node_cpuid[%d] is too small, may not be able to use all cpus\n",
483 ARRAY_SIZE(node_cpuid));
484 return;
485 }
480 pxm = get_processor_proximity_domain(pa); 486 pxm = get_processor_proximity_domain(pa);
481 487
482 /* record this node in proximity bitmap */ 488 /* record this node in proximity bitmap */
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
index 9a26015c3e50..38c07b866901 100644
--- a/arch/ia64/kernel/irq_ia64.c
+++ b/arch/ia64/kernel/irq_ia64.c
@@ -633,7 +633,7 @@ ia64_native_register_percpu_irq (ia64_vector vec, struct irqaction *action)
633 BUG_ON(bind_irq_vector(irq, vec, CPU_MASK_ALL)); 633 BUG_ON(bind_irq_vector(irq, vec, CPU_MASK_ALL));
634 desc = irq_desc + irq; 634 desc = irq_desc + irq;
635 desc->status |= IRQ_PER_CPU; 635 desc->status |= IRQ_PER_CPU;
636 desc->chip = &irq_type_ia64_lsapic; 636 set_irq_chip(irq, &irq_type_ia64_lsapic);
637 if (action) 637 if (action)
638 setup_irq(irq, action); 638 setup_irq(irq, action);
639 set_irq_handler(irq, handle_percpu_irq); 639 set_irq_handler(irq, handle_percpu_irq);
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index 39e534f5a3b0..d92d5b5161fc 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -829,10 +829,9 @@ pfm_rvmalloc(unsigned long size)
829 unsigned long addr; 829 unsigned long addr;
830 830
831 size = PAGE_ALIGN(size); 831 size = PAGE_ALIGN(size);
832 mem = vmalloc(size); 832 mem = vzalloc(size);
833 if (mem) { 833 if (mem) {
834 //printk("perfmon: CPU%d pfm_rvmalloc(%ld)=%p\n", smp_processor_id(), size, mem); 834 //printk("perfmon: CPU%d pfm_rvmalloc(%ld)=%p\n", smp_processor_id(), size, mem);
835 memset(mem, 0, size);
836 addr = (unsigned long)mem; 835 addr = (unsigned long)mem;
837 while (size > 0) { 836 while (size > 0) {
838 pfm_reserve_page(addr); 837 pfm_reserve_page(addr);
@@ -1542,7 +1541,7 @@ pfm_exit_smpl_buffer(pfm_buffer_fmt_t *fmt)
1542 * any operations on the root directory. However, we need a non-trivial 1541 * any operations on the root directory. However, we need a non-trivial
1543 * d_name - pfm: will go nicely and kill the special-casing in procfs. 1542 * d_name - pfm: will go nicely and kill the special-casing in procfs.
1544 */ 1543 */
1545static struct vfsmount *pfmfs_mnt; 1544static struct vfsmount *pfmfs_mnt __read_mostly;
1546 1545
1547static int __init 1546static int __init
1548init_pfm_fs(void) 1547init_pfm_fs(void)
@@ -2185,7 +2184,7 @@ static const struct file_operations pfm_file_ops = {
2185}; 2184};
2186 2185
2187static int 2186static int
2188pfmfs_delete_dentry(struct dentry *dentry) 2187pfmfs_delete_dentry(const struct dentry *dentry)
2189{ 2188{
2190 return 1; 2189 return 1;
2191} 2190}
@@ -2233,7 +2232,7 @@ pfm_alloc_file(pfm_context_t *ctx)
2233 } 2232 }
2234 path.mnt = mntget(pfmfs_mnt); 2233 path.mnt = mntget(pfmfs_mnt);
2235 2234
2236 path.dentry->d_op = &pfmfs_dentry_operations; 2235 d_set_d_op(path.dentry, &pfmfs_dentry_operations);
2237 d_add(path.dentry, inode); 2236 d_add(path.dentry, inode);
2238 2237
2239 file = alloc_file(&path, FMODE_READ, &pfm_file_ops); 2238 file = alloc_file(&path, FMODE_READ, &pfm_file_ops);
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c
index dabeefe21134..be450a3e9871 100644
--- a/arch/ia64/kernel/smp.c
+++ b/arch/ia64/kernel/smp.c
@@ -293,6 +293,7 @@ smp_flush_tlb_all (void)
293void 293void
294smp_flush_tlb_mm (struct mm_struct *mm) 294smp_flush_tlb_mm (struct mm_struct *mm)
295{ 295{
296 cpumask_var_t cpus;
296 preempt_disable(); 297 preempt_disable();
297 /* this happens for the common case of a single-threaded fork(): */ 298 /* this happens for the common case of a single-threaded fork(): */
298 if (likely(mm == current->active_mm && atomic_read(&mm->mm_users) == 1)) 299 if (likely(mm == current->active_mm && atomic_read(&mm->mm_users) == 1))
@@ -301,9 +302,15 @@ smp_flush_tlb_mm (struct mm_struct *mm)
301 preempt_enable(); 302 preempt_enable();
302 return; 303 return;
303 } 304 }
304 305 if (!alloc_cpumask_var(&cpus, GFP_ATOMIC)) {
305 smp_call_function_many(mm_cpumask(mm), 306 smp_call_function((void (*)(void *))local_finish_flush_tlb_mm,
306 (void (*)(void *))local_finish_flush_tlb_mm, mm, 1); 307 mm, 1);
308 } else {
309 cpumask_copy(cpus, mm_cpumask(mm));
310 smp_call_function_many(cpus,
311 (void (*)(void *))local_finish_flush_tlb_mm, mm, 1);
312 free_cpumask_var(cpus);
313 }
307 local_irq_disable(); 314 local_irq_disable();
308 local_finish_flush_tlb_mm(mm); 315 local_finish_flush_tlb_mm(mm);
309 local_irq_enable(); 316 local_irq_enable();
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index ed6f22eb5b12..9702fa92489e 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -168,7 +168,7 @@ timer_interrupt (int irq, void *dev_id)
168{ 168{
169 unsigned long new_itm; 169 unsigned long new_itm;
170 170
171 if (unlikely(cpu_is_offline(smp_processor_id()))) { 171 if (cpu_is_offline(smp_processor_id())) {
172 return IRQ_HANDLED; 172 return IRQ_HANDLED;
173 } 173 }
174 174