diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/cpu.c | 11 | ||||
| -rw-r--r-- | kernel/cpuset.c | 4 | ||||
| -rw-r--r-- | kernel/irq/chip.c | 2 | ||||
| -rw-r--r-- | kernel/irq/manage.c | 22 | ||||
| -rw-r--r-- | kernel/irq/migration.c | 14 | ||||
| -rw-r--r-- | kernel/irq/proc.c | 29 | ||||
| -rw-r--r-- | kernel/profile.c | 4 | ||||
| -rw-r--r-- | kernel/sched.c | 6 | ||||
| -rw-r--r-- | kernel/sched_stats.h | 2 | ||||
| -rw-r--r-- | kernel/taskstats.c | 2 | ||||
| -rw-r--r-- | kernel/time/clockevents.c | 2 | ||||
| -rw-r--r-- | kernel/time/tick-broadcast.c | 2 | ||||
| -rw-r--r-- | kernel/time/tick-common.c | 12 | ||||
| -rw-r--r-- | kernel/trace/trace.c | 4 |
14 files changed, 63 insertions, 53 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c index 8ea32e8d68b0..bae131a1211b 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c | |||
| @@ -24,19 +24,20 @@ | |||
| 24 | cpumask_t cpu_present_map __read_mostly; | 24 | cpumask_t cpu_present_map __read_mostly; |
| 25 | EXPORT_SYMBOL(cpu_present_map); | 25 | EXPORT_SYMBOL(cpu_present_map); |
| 26 | 26 | ||
| 27 | #ifndef CONFIG_SMP | ||
| 28 | |||
| 29 | /* | 27 | /* |
| 30 | * Represents all cpu's that are currently online. | 28 | * Represents all cpu's that are currently online. |
| 31 | */ | 29 | */ |
| 32 | cpumask_t cpu_online_map __read_mostly = CPU_MASK_ALL; | 30 | cpumask_t cpu_online_map __read_mostly; |
| 33 | EXPORT_SYMBOL(cpu_online_map); | 31 | EXPORT_SYMBOL(cpu_online_map); |
| 34 | 32 | ||
| 33 | #ifdef CONFIG_INIT_ALL_POSSIBLE | ||
| 35 | cpumask_t cpu_possible_map __read_mostly = CPU_MASK_ALL; | 34 | cpumask_t cpu_possible_map __read_mostly = CPU_MASK_ALL; |
| 35 | #else | ||
| 36 | cpumask_t cpu_possible_map __read_mostly; | ||
| 37 | #endif | ||
| 36 | EXPORT_SYMBOL(cpu_possible_map); | 38 | EXPORT_SYMBOL(cpu_possible_map); |
| 37 | 39 | ||
| 38 | #else /* CONFIG_SMP */ | 40 | #ifdef CONFIG_SMP |
| 39 | |||
| 40 | /* Serializes the updates to cpu_online_map, cpu_present_map */ | 41 | /* Serializes the updates to cpu_online_map, cpu_present_map */ |
| 41 | static DEFINE_MUTEX(cpu_add_remove_lock); | 42 | static DEFINE_MUTEX(cpu_add_remove_lock); |
| 42 | 43 | ||
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 96c0ba13b8cd..39c1a4c1c5a9 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
| @@ -896,7 +896,7 @@ static int update_cpumask(struct cpuset *cs, const char *buf) | |||
| 896 | if (!*buf) { | 896 | if (!*buf) { |
| 897 | cpus_clear(trialcs.cpus_allowed); | 897 | cpus_clear(trialcs.cpus_allowed); |
| 898 | } else { | 898 | } else { |
| 899 | retval = cpulist_parse(buf, trialcs.cpus_allowed); | 899 | retval = cpulist_parse(buf, &trialcs.cpus_allowed); |
| 900 | if (retval < 0) | 900 | if (retval < 0) |
| 901 | return retval; | 901 | return retval; |
| 902 | 902 | ||
| @@ -1482,7 +1482,7 @@ static int cpuset_sprintf_cpulist(char *page, struct cpuset *cs) | |||
| 1482 | mask = cs->cpus_allowed; | 1482 | mask = cs->cpus_allowed; |
| 1483 | mutex_unlock(&callback_mutex); | 1483 | mutex_unlock(&callback_mutex); |
| 1484 | 1484 | ||
| 1485 | return cpulist_scnprintf(page, PAGE_SIZE, mask); | 1485 | return cpulist_scnprintf(page, PAGE_SIZE, &mask); |
| 1486 | } | 1486 | } |
| 1487 | 1487 | ||
| 1488 | static int cpuset_sprintf_memlist(char *page, struct cpuset *cs) | 1488 | static int cpuset_sprintf_memlist(char *page, struct cpuset *cs) |
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 8e4fce4a1b1f..0af16aeee8b6 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
| @@ -46,7 +46,7 @@ void dynamic_irq_init(unsigned int irq) | |||
| 46 | desc->irq_count = 0; | 46 | desc->irq_count = 0; |
| 47 | desc->irqs_unhandled = 0; | 47 | desc->irqs_unhandled = 0; |
| 48 | #ifdef CONFIG_SMP | 48 | #ifdef CONFIG_SMP |
| 49 | cpus_setall(desc->affinity); | 49 | cpumask_setall(&desc->affinity); |
| 50 | #endif | 50 | #endif |
| 51 | spin_unlock_irqrestore(&desc->lock, flags); | 51 | spin_unlock_irqrestore(&desc->lock, flags); |
| 52 | } | 52 | } |
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 801addda3c43..10ad2f87ed9a 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
| @@ -79,7 +79,7 @@ int irq_can_set_affinity(unsigned int irq) | |||
| 79 | * @cpumask: cpumask | 79 | * @cpumask: cpumask |
| 80 | * | 80 | * |
| 81 | */ | 81 | */ |
| 82 | int irq_set_affinity(unsigned int irq, cpumask_t cpumask) | 82 | int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask) |
| 83 | { | 83 | { |
| 84 | struct irq_desc *desc = irq_to_desc(irq); | 84 | struct irq_desc *desc = irq_to_desc(irq); |
| 85 | unsigned long flags; | 85 | unsigned long flags; |
| @@ -91,14 +91,14 @@ int irq_set_affinity(unsigned int irq, cpumask_t cpumask) | |||
| 91 | 91 | ||
| 92 | #ifdef CONFIG_GENERIC_PENDING_IRQ | 92 | #ifdef CONFIG_GENERIC_PENDING_IRQ |
| 93 | if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) { | 93 | if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) { |
| 94 | desc->affinity = cpumask; | 94 | cpumask_copy(&desc->affinity, cpumask); |
| 95 | desc->chip->set_affinity(irq, cpumask); | 95 | desc->chip->set_affinity(irq, cpumask); |
| 96 | } else { | 96 | } else { |
| 97 | desc->status |= IRQ_MOVE_PENDING; | 97 | desc->status |= IRQ_MOVE_PENDING; |
| 98 | desc->pending_mask = cpumask; | 98 | cpumask_copy(&desc->pending_mask, cpumask); |
| 99 | } | 99 | } |
| 100 | #else | 100 | #else |
| 101 | desc->affinity = cpumask; | 101 | cpumask_copy(&desc->affinity, cpumask); |
| 102 | desc->chip->set_affinity(irq, cpumask); | 102 | desc->chip->set_affinity(irq, cpumask); |
| 103 | #endif | 103 | #endif |
| 104 | desc->status |= IRQ_AFFINITY_SET; | 104 | desc->status |= IRQ_AFFINITY_SET; |
| @@ -112,26 +112,24 @@ int irq_set_affinity(unsigned int irq, cpumask_t cpumask) | |||
| 112 | */ | 112 | */ |
| 113 | int do_irq_select_affinity(unsigned int irq, struct irq_desc *desc) | 113 | int do_irq_select_affinity(unsigned int irq, struct irq_desc *desc) |
| 114 | { | 114 | { |
| 115 | cpumask_t mask; | ||
| 116 | |||
| 117 | if (!irq_can_set_affinity(irq)) | 115 | if (!irq_can_set_affinity(irq)) |
| 118 | return 0; | 116 | return 0; |
| 119 | 117 | ||
| 120 | cpus_and(mask, cpu_online_map, irq_default_affinity); | ||
| 121 | |||
| 122 | /* | 118 | /* |
| 123 | * Preserve an userspace affinity setup, but make sure that | 119 | * Preserve an userspace affinity setup, but make sure that |
| 124 | * one of the targets is online. | 120 | * one of the targets is online. |
| 125 | */ | 121 | */ |
| 126 | if (desc->status & (IRQ_AFFINITY_SET | IRQ_NO_BALANCING)) { | 122 | if (desc->status & (IRQ_AFFINITY_SET | IRQ_NO_BALANCING)) { |
| 127 | if (cpus_intersects(desc->affinity, cpu_online_map)) | 123 | if (cpumask_any_and(&desc->affinity, cpu_online_mask) |
| 128 | mask = desc->affinity; | 124 | < nr_cpu_ids) |
| 125 | goto set_affinity; | ||
| 129 | else | 126 | else |
| 130 | desc->status &= ~IRQ_AFFINITY_SET; | 127 | desc->status &= ~IRQ_AFFINITY_SET; |
| 131 | } | 128 | } |
| 132 | 129 | ||
| 133 | desc->affinity = mask; | 130 | cpumask_and(&desc->affinity, cpu_online_mask, &irq_default_affinity); |
| 134 | desc->chip->set_affinity(irq, mask); | 131 | set_affinity: |
| 132 | desc->chip->set_affinity(irq, &desc->affinity); | ||
| 135 | 133 | ||
| 136 | return 0; | 134 | return 0; |
| 137 | } | 135 | } |
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c index 9db681d95814..bd72329e630c 100644 --- a/kernel/irq/migration.c +++ b/kernel/irq/migration.c | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | void move_masked_irq(int irq) | 4 | void move_masked_irq(int irq) |
| 5 | { | 5 | { |
| 6 | struct irq_desc *desc = irq_to_desc(irq); | 6 | struct irq_desc *desc = irq_to_desc(irq); |
| 7 | cpumask_t tmp; | ||
| 8 | 7 | ||
| 9 | if (likely(!(desc->status & IRQ_MOVE_PENDING))) | 8 | if (likely(!(desc->status & IRQ_MOVE_PENDING))) |
| 10 | return; | 9 | return; |
| @@ -19,7 +18,7 @@ void move_masked_irq(int irq) | |||
| 19 | 18 | ||
| 20 | desc->status &= ~IRQ_MOVE_PENDING; | 19 | desc->status &= ~IRQ_MOVE_PENDING; |
| 21 | 20 | ||
| 22 | if (unlikely(cpus_empty(desc->pending_mask))) | 21 | if (unlikely(cpumask_empty(&desc->pending_mask))) |
| 23 | return; | 22 | return; |
| 24 | 23 | ||
| 25 | if (!desc->chip->set_affinity) | 24 | if (!desc->chip->set_affinity) |
| @@ -27,8 +26,6 @@ void move_masked_irq(int irq) | |||
| 27 | 26 | ||
| 28 | assert_spin_locked(&desc->lock); | 27 | assert_spin_locked(&desc->lock); |
| 29 | 28 | ||
| 30 | cpus_and(tmp, desc->pending_mask, cpu_online_map); | ||
| 31 | |||
| 32 | /* | 29 | /* |
| 33 | * If there was a valid mask to work with, please | 30 | * If there was a valid mask to work with, please |
| 34 | * do the disable, re-program, enable sequence. | 31 | * do the disable, re-program, enable sequence. |
| @@ -41,10 +38,13 @@ void move_masked_irq(int irq) | |||
| 41 | * For correct operation this depends on the caller | 38 | * For correct operation this depends on the caller |
| 42 | * masking the irqs. | 39 | * masking the irqs. |
| 43 | */ | 40 | */ |
| 44 | if (likely(!cpus_empty(tmp))) { | 41 | if (likely(cpumask_any_and(&desc->pending_mask, cpu_online_mask) |
| 45 | desc->chip->set_affinity(irq,tmp); | 42 | < nr_cpu_ids)) { |
| 43 | cpumask_and(&desc->affinity, | ||
| 44 | &desc->pending_mask, cpu_online_mask); | ||
| 45 | desc->chip->set_affinity(irq, &desc->affinity); | ||
| 46 | } | 46 | } |
| 47 | cpus_clear(desc->pending_mask); | 47 | cpumask_clear(&desc->pending_mask); |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | void move_native_irq(int irq) | 50 | void move_native_irq(int irq) |
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index f6b3440f05bc..d2c0e5ee53c5 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c | |||
| @@ -40,33 +40,42 @@ static ssize_t irq_affinity_proc_write(struct file *file, | |||
| 40 | const char __user *buffer, size_t count, loff_t *pos) | 40 | const char __user *buffer, size_t count, loff_t *pos) |
| 41 | { | 41 | { |
| 42 | unsigned int irq = (int)(long)PDE(file->f_path.dentry->d_inode)->data; | 42 | unsigned int irq = (int)(long)PDE(file->f_path.dentry->d_inode)->data; |
| 43 | cpumask_t new_value; | 43 | cpumask_var_t new_value; |
| 44 | int err; | 44 | int err; |
| 45 | 45 | ||
| 46 | if (!irq_to_desc(irq)->chip->set_affinity || no_irq_affinity || | 46 | if (!irq_to_desc(irq)->chip->set_affinity || no_irq_affinity || |
| 47 | irq_balancing_disabled(irq)) | 47 | irq_balancing_disabled(irq)) |
| 48 | return -EIO; | 48 | return -EIO; |
| 49 | 49 | ||
| 50 | if (!alloc_cpumask_var(&new_value, GFP_KERNEL)) | ||
| 51 | return -ENOMEM; | ||
| 52 | |||
| 50 | err = cpumask_parse_user(buffer, count, new_value); | 53 | err = cpumask_parse_user(buffer, count, new_value); |
| 51 | if (err) | 54 | if (err) |
| 52 | return err; | 55 | goto free_cpumask; |
| 53 | 56 | ||
| 54 | if (!is_affinity_mask_valid(new_value)) | 57 | if (!is_affinity_mask_valid(*new_value)) { |
| 55 | return -EINVAL; | 58 | err = -EINVAL; |
| 59 | goto free_cpumask; | ||
| 60 | } | ||
| 56 | 61 | ||
| 57 | /* | 62 | /* |
| 58 | * Do not allow disabling IRQs completely - it's a too easy | 63 | * Do not allow disabling IRQs completely - it's a too easy |
| 59 | * way to make the system unusable accidentally :-) At least | 64 | * way to make the system unusable accidentally :-) At least |
| 60 | * one online CPU still has to be targeted. | 65 | * one online CPU still has to be targeted. |
| 61 | */ | 66 | */ |
| 62 | if (!cpus_intersects(new_value, cpu_online_map)) | 67 | if (!cpumask_intersects(new_value, cpu_online_mask)) { |
| 63 | /* Special case for empty set - allow the architecture | 68 | /* Special case for empty set - allow the architecture |
| 64 | code to set default SMP affinity. */ | 69 | code to set default SMP affinity. */ |
| 65 | return irq_select_affinity_usr(irq) ? -EINVAL : count; | 70 | err = irq_select_affinity_usr(irq) ? -EINVAL : count; |
| 66 | 71 | } else { | |
| 67 | irq_set_affinity(irq, new_value); | 72 | irq_set_affinity(irq, new_value); |
| 73 | err = count; | ||
| 74 | } | ||
| 68 | 75 | ||
| 69 | return count; | 76 | free_cpumask: |
| 77 | free_cpumask_var(new_value); | ||
| 78 | return err; | ||
| 70 | } | 79 | } |
| 71 | 80 | ||
| 72 | static int irq_affinity_proc_open(struct inode *inode, struct file *file) | 81 | static int irq_affinity_proc_open(struct inode *inode, struct file *file) |
| @@ -95,7 +104,7 @@ static ssize_t default_affinity_write(struct file *file, | |||
| 95 | cpumask_t new_value; | 104 | cpumask_t new_value; |
| 96 | int err; | 105 | int err; |
| 97 | 106 | ||
| 98 | err = cpumask_parse_user(buffer, count, new_value); | 107 | err = cpumask_parse_user(buffer, count, &new_value); |
| 99 | if (err) | 108 | if (err) |
| 100 | return err; | 109 | return err; |
| 101 | 110 | ||
diff --git a/kernel/profile.c b/kernel/profile.c index 60adefb59b5e..4cb7d68fed82 100644 --- a/kernel/profile.c +++ b/kernel/profile.c | |||
| @@ -442,7 +442,7 @@ void profile_tick(int type) | |||
| 442 | static int prof_cpu_mask_read_proc(char *page, char **start, off_t off, | 442 | static int prof_cpu_mask_read_proc(char *page, char **start, off_t off, |
| 443 | int count, int *eof, void *data) | 443 | int count, int *eof, void *data) |
| 444 | { | 444 | { |
| 445 | int len = cpumask_scnprintf(page, count, *(cpumask_t *)data); | 445 | int len = cpumask_scnprintf(page, count, (cpumask_t *)data); |
| 446 | if (count - len < 2) | 446 | if (count - len < 2) |
| 447 | return -EINVAL; | 447 | return -EINVAL; |
| 448 | len += sprintf(page + len, "\n"); | 448 | len += sprintf(page + len, "\n"); |
| @@ -456,7 +456,7 @@ static int prof_cpu_mask_write_proc(struct file *file, | |||
| 456 | unsigned long full_count = count, err; | 456 | unsigned long full_count = count, err; |
| 457 | cpumask_t new_value; | 457 | cpumask_t new_value; |
| 458 | 458 | ||
| 459 | err = cpumask_parse_user(buffer, count, new_value); | 459 | err = cpumask_parse_user(buffer, count, &new_value); |
| 460 | if (err) | 460 | if (err) |
| 461 | return err; | 461 | return err; |
| 462 | 462 | ||
diff --git a/kernel/sched.c b/kernel/sched.c index e00c92d22655..b309027bf9e8 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
| @@ -6643,7 +6643,7 @@ static int sched_domain_debug_one(struct sched_domain *sd, int cpu, int level, | |||
| 6643 | struct sched_group *group = sd->groups; | 6643 | struct sched_group *group = sd->groups; |
| 6644 | char str[256]; | 6644 | char str[256]; |
| 6645 | 6645 | ||
| 6646 | cpulist_scnprintf(str, sizeof(str), *sched_domain_span(sd)); | 6646 | cpulist_scnprintf(str, sizeof(str), sched_domain_span(sd)); |
| 6647 | cpumask_clear(groupmask); | 6647 | cpumask_clear(groupmask); |
| 6648 | 6648 | ||
| 6649 | printk(KERN_DEBUG "%*s domain %d: ", level, "", level); | 6649 | printk(KERN_DEBUG "%*s domain %d: ", level, "", level); |
| @@ -6696,7 +6696,7 @@ static int sched_domain_debug_one(struct sched_domain *sd, int cpu, int level, | |||
| 6696 | 6696 | ||
| 6697 | cpumask_or(groupmask, groupmask, sched_group_cpus(group)); | 6697 | cpumask_or(groupmask, groupmask, sched_group_cpus(group)); |
| 6698 | 6698 | ||
| 6699 | cpulist_scnprintf(str, sizeof(str), *sched_group_cpus(group)); | 6699 | cpulist_scnprintf(str, sizeof(str), sched_group_cpus(group)); |
| 6700 | printk(KERN_CONT " %s", str); | 6700 | printk(KERN_CONT " %s", str); |
| 6701 | 6701 | ||
| 6702 | group = group->next; | 6702 | group = group->next; |
| @@ -6938,7 +6938,7 @@ static cpumask_var_t cpu_isolated_map; | |||
| 6938 | /* Setup the mask of cpus configured for isolated domains */ | 6938 | /* Setup the mask of cpus configured for isolated domains */ |
| 6939 | static int __init isolated_cpu_setup(char *str) | 6939 | static int __init isolated_cpu_setup(char *str) |
| 6940 | { | 6940 | { |
| 6941 | cpulist_parse(str, *cpu_isolated_map); | 6941 | cpulist_parse(str, cpu_isolated_map); |
| 6942 | return 1; | 6942 | return 1; |
| 6943 | } | 6943 | } |
| 6944 | 6944 | ||
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h index ce340835d055..5fcf0e184586 100644 --- a/kernel/sched_stats.h +++ b/kernel/sched_stats.h | |||
| @@ -43,7 +43,7 @@ static int show_schedstat(struct seq_file *seq, void *v) | |||
| 43 | enum cpu_idle_type itype; | 43 | enum cpu_idle_type itype; |
| 44 | 44 | ||
| 45 | cpumask_scnprintf(mask_str, mask_len, | 45 | cpumask_scnprintf(mask_str, mask_len, |
| 46 | *sched_domain_span(sd)); | 46 | sched_domain_span(sd)); |
| 47 | seq_printf(seq, "domain%d %s", dcount++, mask_str); | 47 | seq_printf(seq, "domain%d %s", dcount++, mask_str); |
| 48 | for (itype = CPU_IDLE; itype < CPU_MAX_IDLE_TYPES; | 48 | for (itype = CPU_IDLE; itype < CPU_MAX_IDLE_TYPES; |
| 49 | itype++) { | 49 | itype++) { |
diff --git a/kernel/taskstats.c b/kernel/taskstats.c index bd6be76303cf..6d7dc4ec4aa5 100644 --- a/kernel/taskstats.c +++ b/kernel/taskstats.c | |||
| @@ -352,7 +352,7 @@ static int parse(struct nlattr *na, cpumask_t *mask) | |||
| 352 | if (!data) | 352 | if (!data) |
| 353 | return -ENOMEM; | 353 | return -ENOMEM; |
| 354 | nla_strlcpy(data, na, len); | 354 | nla_strlcpy(data, na, len); |
| 355 | ret = cpulist_parse(data, *mask); | 355 | ret = cpulist_parse(data, mask); |
| 356 | kfree(data); | 356 | kfree(data); |
| 357 | return ret; | 357 | return ret; |
| 358 | } | 358 | } |
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c index f8d968063cea..ea2f48af83cf 100644 --- a/kernel/time/clockevents.c +++ b/kernel/time/clockevents.c | |||
| @@ -166,6 +166,8 @@ static void clockevents_notify_released(void) | |||
| 166 | void clockevents_register_device(struct clock_event_device *dev) | 166 | void clockevents_register_device(struct clock_event_device *dev) |
| 167 | { | 167 | { |
| 168 | BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED); | 168 | BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED); |
| 169 | BUG_ON(!dev->cpumask); | ||
| 170 | |||
| 169 | /* | 171 | /* |
| 170 | * A nsec2cyc multiplicator of 0 is invalid and we'd crash | 172 | * A nsec2cyc multiplicator of 0 is invalid and we'd crash |
| 171 | * on it, so fix it up and emit a warning: | 173 | * on it, so fix it up and emit a warning: |
diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c index f98a1b7b16e9..9590af2327be 100644 --- a/kernel/time/tick-broadcast.c +++ b/kernel/time/tick-broadcast.c | |||
| @@ -150,7 +150,7 @@ static void tick_do_broadcast(cpumask_t mask) | |||
| 150 | */ | 150 | */ |
| 151 | cpu = first_cpu(mask); | 151 | cpu = first_cpu(mask); |
| 152 | td = &per_cpu(tick_cpu_device, cpu); | 152 | td = &per_cpu(tick_cpu_device, cpu); |
| 153 | td->evtdev->broadcast(mask); | 153 | td->evtdev->broadcast(&mask); |
| 154 | } | 154 | } |
| 155 | } | 155 | } |
| 156 | 156 | ||
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c index df12434b43ca..f8372be74122 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c | |||
| @@ -136,7 +136,7 @@ void tick_setup_periodic(struct clock_event_device *dev, int broadcast) | |||
| 136 | */ | 136 | */ |
| 137 | static void tick_setup_device(struct tick_device *td, | 137 | static void tick_setup_device(struct tick_device *td, |
| 138 | struct clock_event_device *newdev, int cpu, | 138 | struct clock_event_device *newdev, int cpu, |
| 139 | const cpumask_t *cpumask) | 139 | const struct cpumask *cpumask) |
| 140 | { | 140 | { |
| 141 | ktime_t next_event; | 141 | ktime_t next_event; |
| 142 | void (*handler)(struct clock_event_device *) = NULL; | 142 | void (*handler)(struct clock_event_device *) = NULL; |
| @@ -171,8 +171,8 @@ static void tick_setup_device(struct tick_device *td, | |||
| 171 | * When the device is not per cpu, pin the interrupt to the | 171 | * When the device is not per cpu, pin the interrupt to the |
| 172 | * current cpu: | 172 | * current cpu: |
| 173 | */ | 173 | */ |
| 174 | if (!cpus_equal(newdev->cpumask, *cpumask)) | 174 | if (!cpumask_equal(newdev->cpumask, cpumask)) |
| 175 | irq_set_affinity(newdev->irq, *cpumask); | 175 | irq_set_affinity(newdev->irq, cpumask); |
| 176 | 176 | ||
| 177 | /* | 177 | /* |
| 178 | * When global broadcasting is active, check if the current | 178 | * When global broadcasting is active, check if the current |
| @@ -202,14 +202,14 @@ static int tick_check_new_device(struct clock_event_device *newdev) | |||
| 202 | spin_lock_irqsave(&tick_device_lock, flags); | 202 | spin_lock_irqsave(&tick_device_lock, flags); |
| 203 | 203 | ||
| 204 | cpu = smp_processor_id(); | 204 | cpu = smp_processor_id(); |
| 205 | if (!cpu_isset(cpu, newdev->cpumask)) | 205 | if (!cpumask_test_cpu(cpu, newdev->cpumask)) |
| 206 | goto out_bc; | 206 | goto out_bc; |
| 207 | 207 | ||
| 208 | td = &per_cpu(tick_cpu_device, cpu); | 208 | td = &per_cpu(tick_cpu_device, cpu); |
| 209 | curdev = td->evtdev; | 209 | curdev = td->evtdev; |
| 210 | 210 | ||
| 211 | /* cpu local device ? */ | 211 | /* cpu local device ? */ |
| 212 | if (!cpus_equal(newdev->cpumask, cpumask_of_cpu(cpu))) { | 212 | if (!cpumask_equal(newdev->cpumask, cpumask_of(cpu))) { |
| 213 | 213 | ||
| 214 | /* | 214 | /* |
| 215 | * If the cpu affinity of the device interrupt can not | 215 | * If the cpu affinity of the device interrupt can not |
| @@ -222,7 +222,7 @@ static int tick_check_new_device(struct clock_event_device *newdev) | |||
| 222 | * If we have a cpu local device already, do not replace it | 222 | * If we have a cpu local device already, do not replace it |
| 223 | * by a non cpu local device | 223 | * by a non cpu local device |
| 224 | */ | 224 | */ |
| 225 | if (curdev && cpus_equal(curdev->cpumask, cpumask_of_cpu(cpu))) | 225 | if (curdev && cpumask_equal(curdev->cpumask, cpumask_of(cpu))) |
| 226 | goto out_bc; | 226 | goto out_bc; |
| 227 | } | 227 | } |
| 228 | 228 | ||
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 8ebe0070c47a..6adf660fc816 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
| @@ -2646,7 +2646,7 @@ tracing_cpumask_read(struct file *filp, char __user *ubuf, | |||
| 2646 | 2646 | ||
| 2647 | mutex_lock(&tracing_cpumask_update_lock); | 2647 | mutex_lock(&tracing_cpumask_update_lock); |
| 2648 | 2648 | ||
| 2649 | len = cpumask_scnprintf(mask_str, count, tracing_cpumask); | 2649 | len = cpumask_scnprintf(mask_str, count, &tracing_cpumask); |
| 2650 | if (count - len < 2) { | 2650 | if (count - len < 2) { |
| 2651 | count = -EINVAL; | 2651 | count = -EINVAL; |
| 2652 | goto out_err; | 2652 | goto out_err; |
| @@ -2667,7 +2667,7 @@ tracing_cpumask_write(struct file *filp, const char __user *ubuf, | |||
| 2667 | int err, cpu; | 2667 | int err, cpu; |
| 2668 | 2668 | ||
| 2669 | mutex_lock(&tracing_cpumask_update_lock); | 2669 | mutex_lock(&tracing_cpumask_update_lock); |
| 2670 | err = cpumask_parse_user(ubuf, count, tracing_cpumask_new); | 2670 | err = cpumask_parse_user(ubuf, count, &tracing_cpumask_new); |
| 2671 | if (err) | 2671 | if (err) |
| 2672 | goto err_unlock; | 2672 | goto err_unlock; |
| 2673 | 2673 | ||
