Commit cdc86c9d authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

x86/apic: Move IPI inlines into ipi.c

parent cc8bf191
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
@@ -71,27 +71,8 @@ extern void default_send_IPI_mask_sequence_phys(const struct cpumask *mask,
extern void default_send_IPI_mask_allbutself_phys(const struct cpumask *mask,
							 int vector);

/* Avoid include hell */
#define NMI_VECTOR 0x02

extern int no_broadcast;

static inline void __default_local_send_IPI_allbutself(int vector)
{
	if (no_broadcast || vector == NMI_VECTOR)
		apic->send_IPI_mask_allbutself(cpu_online_mask, vector);
	else
		__default_send_IPI_shortcut(APIC_DEST_ALLBUT, vector, apic->dest_logical);
}

static inline void __default_local_send_IPI_all(int vector)
{
	if (no_broadcast || vector == NMI_VECTOR)
		apic->send_IPI_mask(cpu_online_mask, vector);
	else
		__default_send_IPI_shortcut(APIC_DEST_ALLINC, vector, apic->dest_logical);
}

#ifdef CONFIG_X86_32
extern void default_send_IPI_mask_sequence_logical(const struct cpumask *mask,
							 int vector);
+13 −3
Original line number Diff line number Diff line
@@ -198,15 +198,25 @@ void default_send_IPI_allbutself(int vector)
	 * if there are no other CPUs in the system then we get an APIC send
	 * error if we try to broadcast, thus avoid sending IPIs in this case.
	 */
	if (!(num_online_cpus() > 1))
	if (num_online_cpus() < 2)
		return;

	__default_local_send_IPI_allbutself(vector);
	if (no_broadcast || vector == NMI_VECTOR) {
		apic->send_IPI_mask_allbutself(cpu_online_mask, vector);
	} else {
		__default_send_IPI_shortcut(APIC_DEST_ALLBUT, vector,
					    apic->dest_logical);
	}
}

void default_send_IPI_all(int vector)
{
	__default_local_send_IPI_all(vector);
	if (no_broadcast || vector == NMI_VECTOR) {
		apic->send_IPI_mask(cpu_online_mask, vector);
	} else {
		__default_send_IPI_shortcut(APIC_DEST_ALLINC, vector,
					    apic->dest_logical);
	}
}

void default_send_IPI_self(int vector)