Damien Zammit, le dim. 22 févr. 2026 07:17:54 +0000, a ecrit:
> This was overlooked for APIC.  It fixes a bug where the handler
> addresses were being loaded as garbage values into the IDT,
> therefore, when BSP sends a CALL_PMAP_UPDATE_IPI to an AP,
> the AP jumps to a garbage address, eg 0x4000000036.

Thanks, that's why we need to keep both i386 and x86_64 similar, to make
sure we don't miss updating one or the other.

Samuel

> Reported by Brent Baccala
> ---
>  x86_64/locore.S | 43 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
> 
> diff --git a/x86_64/locore.S b/x86_64/locore.S
> index e44f0087..28e7d21c 100644
> --- a/x86_64/locore.S
> +++ b/x86_64/locore.S
> @@ -847,6 +847,49 @@ INTERRUPT(20)
>  INTERRUPT(21)
>  INTERRUPT(22)
>  INTERRUPT(23)
> +/* Possibly 8 more GSIs */
> +INTERRUPT(24)
> +INTERRUPT(25)
> +INTERRUPT(26)
> +INTERRUPT(27)
> +INTERRUPT(28)
> +INTERRUPT(29)
> +INTERRUPT(30)
> +INTERRUPT(31)
> +/* ... APIC IOAPIC #2 */
> +INTERRUPT(32)
> +INTERRUPT(33)
> +INTERRUPT(34)
> +INTERRUPT(35)
> +INTERRUPT(36)
> +INTERRUPT(37)
> +INTERRUPT(38)
> +INTERRUPT(39)
> +INTERRUPT(40)
> +INTERRUPT(41)
> +INTERRUPT(42)
> +INTERRUPT(43)
> +INTERRUPT(44)
> +INTERRUPT(45)
> +INTERRUPT(46)
> +INTERRUPT(47)
> +INTERRUPT(48)
> +INTERRUPT(49)
> +INTERRUPT(50)
> +INTERRUPT(51)
> +INTERRUPT(52)
> +INTERRUPT(53)
> +INTERRUPT(54)
> +INTERRUPT(55)
> +/* Possibly 8 more GSIs */
> +INTERRUPT(56)
> +INTERRUPT(57)
> +INTERRUPT(58)
> +INTERRUPT(59)
> +INTERRUPT(60)
> +INTERRUPT(61)
> +INTERRUPT(62)
> +INTERRUPT(63)
>  #endif
>  #if NCPUS > 1
>  INTERRUPT(CALL_AST_CHECK)
> -- 
> 2.51.0
> 
> 
> 

-- 
Samuel
 Battery 1: charging, 90%, charging at zero rate - will never fully charge.
 -+- acpi - et pourtant, ca monte -+-

Reply via email to