From d6ca407ed23159d161309740c5bf342d13edcc43 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 13 Aug 2023 00:57:14 +0200 Subject: IPI: Rework irq names and fix x86_64 build --- x86_64/interrupt.S | 11 ++++++++--- x86_64/locore.S | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'x86_64') diff --git a/x86_64/interrupt.S b/x86_64/interrupt.S index 8e96a41e..74a25c49 100644 --- a/x86_64/interrupt.S +++ b/x86_64/interrupt.S @@ -45,10 +45,10 @@ ENTRY(interrupt) ret /* if so, just return */ 1: #endif - cmpl $CALL_SINGLE_FUNCTION_BASE,%eax /* was this a SMP call single function request? */ + cmpl $CALL_PMAP_UPDATE,%eax /* was this a SMP pmap_update request? */ je _call_single - cmpl $CALL_LOCAL_AST_BASE,%eax /* was this a SMP remote -> local ast request? */ + cmpl $CALL_AST_CHECK,%eax /* was this a SMP remote -> local ast request? */ je _call_local_ast subq $16,%rsp /* Two local variables */ @@ -128,6 +128,11 @@ _no_eoi: _call_single: cli /* no nested interrupts */ call EXT(lapic_eoi) /* lapic EOI before the handler to allow extra update */ - call EXT(pmap_update_interrupt) /* TODO: Allow other functions */ + call EXT(pmap_update_interrupt) + ret + +_call_local_ast: + call EXT(ast_check) /* AST check on this cpu */ + call EXT(lapic_eoi) /* lapic EOI */ ret END(interrupt) diff --git a/x86_64/locore.S b/x86_64/locore.S index 1ac7575e..def73d89 100644 --- a/x86_64/locore.S +++ b/x86_64/locore.S @@ -769,8 +769,8 @@ INTERRUPT(21) INTERRUPT(22) INTERRUPT(23) #endif -/* Invalidate TLB IPI to call pmap_update_interrupt() on a specific cpu */ -INTERRUPT(CALL_SINGLE_FUNCTION_BASE) +INTERRUPT(CALL_AST_CHECK) +INTERRUPT(CALL_PMAP_UPDATE) #ifdef APIC /* Spurious interrupt, set irq number to vect number */ INTERRUPT(255) -- cgit v1.2.3