diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86/kernel/uintr_core.c | 7 | ||||
| -rw-r--r-- | arch/x86/kernel/uintr_fd.c | 2 |
2 files changed, 7 insertions, 2 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; |
