x86/apic: Move cpumask and to core code
All implementations of apic->cpu_mask_to_apicid_and() and the two incoming cpumasks to search for the target. Move that operation to the call site and rename it to cpu_mask_to_apicid() Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Jens Axboe <axboe@kernel.dk> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Keith Busch <keith.busch@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Christoph Hellwig <hch@lst.de> Link: http://lkml.kernel.org/r/20170619235446.641575516@linutronix.de
This commit is contained in:
@@ -104,22 +104,20 @@ static void x2apic_send_IPI_all(int vector)
|
||||
}
|
||||
|
||||
static int
|
||||
x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask,
|
||||
const struct cpumask *andmask,
|
||||
unsigned int *apicid)
|
||||
x2apic_cpu_mask_to_apicid(const struct cpumask *mask, unsigned int *apicid)
|
||||
{
|
||||
unsigned int cpu;
|
||||
u32 dest = 0;
|
||||
u16 cluster;
|
||||
|
||||
cpu = cpumask_first_and(cpumask, andmask);
|
||||
cpu = cpumask_first(mask);
|
||||
if (cpu >= nr_cpu_ids)
|
||||
return -EINVAL;
|
||||
|
||||
dest = per_cpu(x86_cpu_to_logical_apicid, cpu);
|
||||
cluster = x2apic_cluster(cpu);
|
||||
|
||||
for_each_cpu_and(cpu, cpumask, andmask) {
|
||||
for_each_cpu(cpu, mask) {
|
||||
if (cluster != x2apic_cluster(cpu))
|
||||
continue;
|
||||
dest |= per_cpu(x86_cpu_to_logical_apicid, cpu);
|
||||
@@ -249,7 +247,7 @@ static struct apic apic_x2apic_cluster __ro_after_init = {
|
||||
.get_apic_id = x2apic_get_apic_id,
|
||||
.set_apic_id = x2apic_set_apic_id,
|
||||
|
||||
.cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and,
|
||||
.cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid,
|
||||
|
||||
.send_IPI = x2apic_send_IPI,
|
||||
.send_IPI_mask = x2apic_send_IPI_mask,
|
||||
|
Reference in New Issue
Block a user