提交 ea3807ea 编写于 作者: A Alexander Gordeev 提交者: Ingo Molnar

x86/apic: Fix ugly casting and branching in cpu_mask_to_apicid_and()

Signed-off-by: NAlexander Gordeev <agordeev@redhat.com>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/r/20120614074954.GF3383@dhcp-26-207.brq.redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
上级 a5a39156
...@@ -2127,19 +2127,19 @@ int default_cpu_mask_to_apicid_and(const struct cpumask *cpumask, ...@@ -2127,19 +2127,19 @@ int default_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
const struct cpumask *andmask, const struct cpumask *andmask,
unsigned int *apicid) unsigned int *apicid)
{ {
int cpu; unsigned int cpu;
for_each_cpu_and(cpu, cpumask, andmask) { for_each_cpu_and(cpu, cpumask, andmask) {
if (cpumask_test_cpu(cpu, cpu_online_mask)) if (cpumask_test_cpu(cpu, cpu_online_mask))
break; break;
} }
if (likely((unsigned int)cpu < nr_cpu_ids)) { if (likely(cpu < nr_cpu_ids)) {
*apicid = per_cpu(x86_cpu_to_apicid, cpu); *apicid = per_cpu(x86_cpu_to_apicid, cpu);
return 0; return 0;
} else {
return -EINVAL;
} }
return -EINVAL;
} }
/* /*
......
...@@ -529,7 +529,7 @@ static inline int ...@@ -529,7 +529,7 @@ static inline int
es7000_cpu_mask_to_apicid(const struct cpumask *cpumask, unsigned int *dest_id) es7000_cpu_mask_to_apicid(const struct cpumask *cpumask, unsigned int *dest_id)
{ {
unsigned int round = 0; unsigned int round = 0;
int cpu, uninitialized_var(apicid); unsigned int cpu, uninitialized_var(apicid);
/* /*
* The cpus in the mask must all be on the apic cluster. * The cpus in the mask must all be on the apic cluster.
......
...@@ -267,7 +267,7 @@ static inline int ...@@ -267,7 +267,7 @@ static inline int
summit_cpu_mask_to_apicid(const struct cpumask *cpumask, unsigned int *dest_id) summit_cpu_mask_to_apicid(const struct cpumask *cpumask, unsigned int *dest_id)
{ {
unsigned int round = 0; unsigned int round = 0;
int cpu, apicid = 0; unsigned int cpu, apicid = 0;
/* /*
* The cpus in the mask must all be on the apic cluster. * The cpus in the mask must all be on the apic cluster.
......
...@@ -274,7 +274,7 @@ uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask, ...@@ -274,7 +274,7 @@ uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
const struct cpumask *andmask, const struct cpumask *andmask,
unsigned int *apicid) unsigned int *apicid)
{ {
int cpu; int unsigned cpu;
/* /*
* We're using fixed IRQ delivery, can only return one phys APIC ID. * We're using fixed IRQ delivery, can only return one phys APIC ID.
...@@ -285,12 +285,12 @@ uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask, ...@@ -285,12 +285,12 @@ uv_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
break; break;
} }
if (likely((unsigned int)cpu < nr_cpu_ids)) { if (likely(cpu < nr_cpu_ids)) {
*apicid = per_cpu(x86_cpu_to_apicid, cpu) | uv_apicid_hibits; *apicid = per_cpu(x86_cpu_to_apicid, cpu) | uv_apicid_hibits;
return 0; return 0;
} else {
return -EINVAL;
} }
return -EINVAL;
} }
static unsigned int x2apic_get_apic_id(unsigned long x) static unsigned int x2apic_get_apic_id(unsigned long x)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册