Merge branch 'linus' into idle-test
This commit is contained in:
@@ -477,6 +477,12 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
|
||||
if (!(pa->flags & ACPI_SRAT_CPU_ENABLED))
|
||||
return;
|
||||
|
||||
if (srat_num_cpus >= ARRAY_SIZE(node_cpuid)) {
|
||||
printk_once(KERN_WARNING
|
||||
"node_cpuid[%d] is too small, may not be able to use all cpus\n",
|
||||
ARRAY_SIZE(node_cpuid));
|
||||
return;
|
||||
}
|
||||
pxm = get_processor_proximity_domain(pa);
|
||||
|
||||
/* record this node in proximity bitmap */
|
||||
|
@@ -633,7 +633,7 @@ ia64_native_register_percpu_irq (ia64_vector vec, struct irqaction *action)
|
||||
BUG_ON(bind_irq_vector(irq, vec, CPU_MASK_ALL));
|
||||
desc = irq_desc + irq;
|
||||
desc->status |= IRQ_PER_CPU;
|
||||
desc->chip = &irq_type_ia64_lsapic;
|
||||
set_irq_chip(irq, &irq_type_ia64_lsapic);
|
||||
if (action)
|
||||
setup_irq(irq, action);
|
||||
set_irq_handler(irq, handle_percpu_irq);
|
||||
|
@@ -829,10 +829,9 @@ pfm_rvmalloc(unsigned long size)
|
||||
unsigned long addr;
|
||||
|
||||
size = PAGE_ALIGN(size);
|
||||
mem = vmalloc(size);
|
||||
mem = vzalloc(size);
|
||||
if (mem) {
|
||||
//printk("perfmon: CPU%d pfm_rvmalloc(%ld)=%p\n", smp_processor_id(), size, mem);
|
||||
memset(mem, 0, size);
|
||||
addr = (unsigned long)mem;
|
||||
while (size > 0) {
|
||||
pfm_reserve_page(addr);
|
||||
@@ -1542,7 +1541,7 @@ pfm_exit_smpl_buffer(pfm_buffer_fmt_t *fmt)
|
||||
* any operations on the root directory. However, we need a non-trivial
|
||||
* d_name - pfm: will go nicely and kill the special-casing in procfs.
|
||||
*/
|
||||
static struct vfsmount *pfmfs_mnt;
|
||||
static struct vfsmount *pfmfs_mnt __read_mostly;
|
||||
|
||||
static int __init
|
||||
init_pfm_fs(void)
|
||||
@@ -2185,7 +2184,7 @@ static const struct file_operations pfm_file_ops = {
|
||||
};
|
||||
|
||||
static int
|
||||
pfmfs_delete_dentry(struct dentry *dentry)
|
||||
pfmfs_delete_dentry(const struct dentry *dentry)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
@@ -2233,7 +2232,7 @@ pfm_alloc_file(pfm_context_t *ctx)
|
||||
}
|
||||
path.mnt = mntget(pfmfs_mnt);
|
||||
|
||||
path.dentry->d_op = &pfmfs_dentry_operations;
|
||||
d_set_d_op(path.dentry, &pfmfs_dentry_operations);
|
||||
d_add(path.dentry, inode);
|
||||
|
||||
file = alloc_file(&path, FMODE_READ, &pfm_file_ops);
|
||||
|
@@ -293,6 +293,7 @@ smp_flush_tlb_all (void)
|
||||
void
|
||||
smp_flush_tlb_mm (struct mm_struct *mm)
|
||||
{
|
||||
cpumask_var_t cpus;
|
||||
preempt_disable();
|
||||
/* this happens for the common case of a single-threaded fork(): */
|
||||
if (likely(mm == current->active_mm && atomic_read(&mm->mm_users) == 1))
|
||||
@@ -301,9 +302,15 @@ smp_flush_tlb_mm (struct mm_struct *mm)
|
||||
preempt_enable();
|
||||
return;
|
||||
}
|
||||
|
||||
smp_call_function_many(mm_cpumask(mm),
|
||||
(void (*)(void *))local_finish_flush_tlb_mm, mm, 1);
|
||||
if (!alloc_cpumask_var(&cpus, GFP_ATOMIC)) {
|
||||
smp_call_function((void (*)(void *))local_finish_flush_tlb_mm,
|
||||
mm, 1);
|
||||
} else {
|
||||
cpumask_copy(cpus, mm_cpumask(mm));
|
||||
smp_call_function_many(cpus,
|
||||
(void (*)(void *))local_finish_flush_tlb_mm, mm, 1);
|
||||
free_cpumask_var(cpus);
|
||||
}
|
||||
local_irq_disable();
|
||||
local_finish_flush_tlb_mm(mm);
|
||||
local_irq_enable();
|
||||
|
@@ -168,7 +168,7 @@ timer_interrupt (int irq, void *dev_id)
|
||||
{
|
||||
unsigned long new_itm;
|
||||
|
||||
if (unlikely(cpu_is_offline(smp_processor_id()))) {
|
||||
if (cpu_is_offline(smp_processor_id())) {
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user