Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b64ee02 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

x86, apic, 32-bit: add self-IPI methods



Impact: fix rare crash on 32-bit

The 32-bit APIC drivers had their send_IPI_self vectors set to NULL,
but ioapic_retrigger_irq() depends on it being always set. Fix it.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 26f7ef14
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -252,7 +252,7 @@ struct genapic apic_bigsmp = {
	.send_IPI_mask_allbutself	= NULL,
	.send_IPI_mask_allbutself	= NULL,
	.send_IPI_allbutself		= bigsmp_send_IPI_allbutself,
	.send_IPI_allbutself		= bigsmp_send_IPI_allbutself,
	.send_IPI_all			= bigsmp_send_IPI_all,
	.send_IPI_all			= bigsmp_send_IPI_all,
	.send_IPI_self			= NULL,
	.send_IPI_self			= default_send_IPI_self,


	.wakeup_cpu			= NULL,
	.wakeup_cpu			= NULL,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
+1 −1
Original line number Original line Diff line number Diff line
@@ -786,7 +786,7 @@ struct genapic apic_es7000 = {
	.send_IPI_mask_allbutself	= NULL,
	.send_IPI_mask_allbutself	= NULL,
	.send_IPI_allbutself		= es7000_send_IPI_allbutself,
	.send_IPI_allbutself		= es7000_send_IPI_allbutself,
	.send_IPI_all			= es7000_send_IPI_all,
	.send_IPI_all			= es7000_send_IPI_all,
	.send_IPI_self			= NULL,
	.send_IPI_self			= default_send_IPI_self,


	.wakeup_cpu			= NULL,
	.wakeup_cpu			= NULL,


+1 −1
Original line number Original line Diff line number Diff line
@@ -554,7 +554,7 @@ struct genapic apic_numaq = {
	.send_IPI_mask_allbutself	= NULL,
	.send_IPI_mask_allbutself	= NULL,
	.send_IPI_allbutself		= numaq_send_IPI_allbutself,
	.send_IPI_allbutself		= numaq_send_IPI_allbutself,
	.send_IPI_all			= numaq_send_IPI_all,
	.send_IPI_all			= numaq_send_IPI_all,
	.send_IPI_self			= NULL,
	.send_IPI_self			= default_send_IPI_self,


	.wakeup_cpu			= NULL,
	.wakeup_cpu			= NULL,
	.trampoline_phys_low		= NUMAQ_TRAMPOLINE_PHYS_LOW,
	.trampoline_phys_low		= NUMAQ_TRAMPOLINE_PHYS_LOW,
+1 −1
Original line number Original line Diff line number Diff line
@@ -116,7 +116,7 @@ struct genapic apic_default = {
	.send_IPI_mask_allbutself	= default_send_IPI_mask_allbutself_logical,
	.send_IPI_mask_allbutself	= default_send_IPI_mask_allbutself_logical,
	.send_IPI_allbutself		= default_send_IPI_allbutself,
	.send_IPI_allbutself		= default_send_IPI_allbutself,
	.send_IPI_all			= default_send_IPI_all,
	.send_IPI_all			= default_send_IPI_all,
	.send_IPI_self			= NULL,
	.send_IPI_self			= default_send_IPI_self,


	.wakeup_cpu			= NULL,
	.wakeup_cpu			= NULL,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
+1 −1
Original line number Original line Diff line number Diff line
@@ -588,7 +588,7 @@ struct genapic apic_summit = {
	.send_IPI_mask_allbutself	= NULL,
	.send_IPI_mask_allbutself	= NULL,
	.send_IPI_allbutself		= summit_send_IPI_allbutself,
	.send_IPI_allbutself		= summit_send_IPI_allbutself,
	.send_IPI_all			= summit_send_IPI_all,
	.send_IPI_all			= summit_send_IPI_all,
	.send_IPI_self			= NULL,
	.send_IPI_self			= default_send_IPI_self,


	.wakeup_cpu			= NULL,
	.wakeup_cpu			= NULL,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,