summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/uintr_core.c7
-rw-r--r--arch/x86/kernel/uintr_fd.c2
-rw-r--r--tools/testing/selftests/uintr/Makefile2
3 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/kernel/uintr_core.c b/arch/x86/kernel/uintr_core.c
index 4e5545e6d903..dca8819ac3fd 100644
--- a/arch/x86/kernel/uintr_core.c
+++ b/arch/x86/kernel/uintr_core.c
@@ -673,11 +673,13 @@ int do_uintr_register_handler(u64 handler)
xsave = &fpu->state.xsave;
xsave->header.xfeatures |= XFEATURE_MASK_UINTR;
p = get_xsave_addr(&fpu->state.xsave, XFEATURE_UINTR);
+ printk("----uintr xsave addr is %px\n",p);
if (p) {
p->handler = handler;
p->upid_addr = (u64)ui_recv->upid_ctx->upid;
p->stack_adjust = 128;
p->uinv = UINTR_NOTIFICATION_VECTOR;
+ printk("the xsave addr is %p\n handler: 0x%llx | upid_addr: 0x%llx | uif: %d\n", p, handler,p->upid_addr,p->uif_pad3); // 改
}
}
@@ -806,8 +808,11 @@ void switch_uintr_return(void)
* carefully manage the race with the hardware if the UPID gets
* updated after the read.
*/
- if (READ_ONCE(upid->puir))
+
+ if (READ_ONCE(upid->puir)){
+ printk("sending self ipi\n");
apic->send_IPI_self(UINTR_NOTIFICATION_VECTOR);
+ }
}
}
diff --git a/arch/x86/kernel/uintr_fd.c b/arch/x86/kernel/uintr_fd.c
index 06d7f4f84119..891c4568d60b 100644
--- a/arch/x86/kernel/uintr_fd.c
+++ b/arch/x86/kernel/uintr_fd.c
@@ -12,7 +12,7 @@
#include <linux/syscalls.h>
#include <asm/uintr.h>
-static bool Debug = true;
+static bool Debug = false;
struct uintrfd_ctx {
struct uintr_receiver_info *r_info;
diff --git a/tools/testing/selftests/uintr/Makefile b/tools/testing/selftests/uintr/Makefile
index f8bcb1476f1c..490f2612f417 100644
--- a/tools/testing/selftests/uintr/Makefile
+++ b/tools/testing/selftests/uintr/Makefile
@@ -3,7 +3,7 @@
CAN_BUILD_UINTR := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_64bit_program.c -muintr)
ifeq ($(CAN_BUILD_UINTR),1)
-CFLAGS += -g -muintr -mgeneral-regs-only
+CFLAGS += -g -muintr -mgeneral-regs-only -static
LDLIBS += -lpthread
TEST_GEN_PROGS = ipc_base \