From nobody Tue Mar 10 11:43:34 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fVX875jmdz6VVxw for ; Tue, 10 Mar 2026 11:43:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fVX870WS8z49Z9 for ; Tue, 10 Mar 2026 11:43:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773143015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qmd2iDgM2lRCvQwYOhZN4RJ4x+sdBYsE2mvSVfsBOb0=; b=SXvysv6hWjfCLcnI0+kFWzgcEzM1UvxiJOU3YiwV3WfXnzjRBck2zLM27f83pDTzPEUWsT bTLjmBzHt6sEFNJI/W6rt/rIJhX0IgPQDMiKLKVPzww51W5aULwdhdHxjSrkZNRBwK8pDr U0+SqbBJekeREz52ThR+5CAVkJnQrfA3ZSWY4PM+jH0p0Lk5QFX1ZG3ElysnNvMvkMcOXA e+aODlf0dZYHXQ6Gb5q1/LPCU7o1hZCO5Tiwa0M2yQ6n7lPdXqSVNPDLC3jzmd6XkNLfq/ 4l0IqWoZkEafVY0RVs0Cn1dQ4rb5cEXUrfzjaPY+MMPqoYaMICnaOJrpOactwA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1773143015; a=rsa-sha256; cv=none; b=yxHZLqvGYEEbAb2J2wUqvinXXuLyK2vOw7jz9XDJbOd4vajY3+6VVNNqQJvjoEdt79u75Y 2Av41L6F76gXE6yryC4eAs362M2InCjhAjuWlY7yDCwNWToaIOfmzHK4YisSz8PGiLi6pN K9XUqriTJU3AR3AnVOqTDbdHBIDU3uXe6DmFwcbULTDmpghC2l4rjBsYh76V1tdbTWGwQU QFcjZ9PxwPUnFu5wCa4xNS6pQQoBe5AWAffP4posqlWfSYbyKQ1g6IPocVh/AGwsK2vyf9 8Y4vv8LgMR8RDna7Vm+wa0w97zFfxMFk/6dYErVnIvM2xCYXDb7ktkw2gtap6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773143015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qmd2iDgM2lRCvQwYOhZN4RJ4x+sdBYsE2mvSVfsBOb0=; b=FGO8rNo2iqU50WY3LTh37Hx9zCbDRbArIxRVTyy5xw7FFcuZGdO1erDGlq43eID+gHIy+i KIoMFC6urvHdTRIfismzrrnsDGD8HuubRuFOy0VVtHfpDWD3idzFk6E5pskDHPQLVfWVpE CSFvTdGEJXV1AaERK595L5l9f3bic7wLAoAKu0XZVRdE7JnQK0I2E8HaFht9OBFv1EVMZw M4Hh0sy8yq3cn6eGRjxZ/luRxrkHsbBEfblqkloHMwZ8jYM++6I1cS3RjnokMzofdekfms HGfe4PmGT6ZEowsRVz/cq+0K9sLt9fwxQ1RnkvSRR97YvxW80eEbfS2EkwCsIg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fVX8655yKz195N for ; Tue, 10 Mar 2026 11:43:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c272 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Mar 2026 11:43:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: b0ca929c27ea - stable/15 - x86: change signatures of ipi_{bitmap,swi}_handler() to take pointer List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b0ca929c27ea012b648be9a5b6373f851e4ccf40 Auto-Submitted: auto-generated Date: Tue, 10 Mar 2026 11:43:34 +0000 Message-Id: <69b003e6.1c272.209f7832@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b0ca929c27ea012b648be9a5b6373f851e4ccf40 commit b0ca929c27ea012b648be9a5b6373f851e4ccf40 Author: Konstantin Belousov AuthorDate: 2026-02-27 03:54:06 +0000 Commit: Konstantin Belousov CommitDate: 2026-03-10 11:41:31 +0000 x86: change signatures of ipi_{bitmap,swi}_handler() to take pointer (cherry picked from commit fdc1f34506346fd26db8bfb80ba69d1af844c53a) --- sys/amd64/amd64/apic_vector.S | 2 ++ sys/i386/i386/apic_vector.S | 4 ++-- sys/i386/i386/mp_machdep.c | 14 ++++++++++++++ sys/x86/include/x86_smp.h | 4 ++-- sys/x86/x86/mp_x86.c | 10 +++++----- sys/x86/xen/xen_apic.c | 4 ++-- 6 files changed, 27 insertions(+), 11 deletions(-) diff --git a/sys/amd64/amd64/apic_vector.S b/sys/amd64/amd64/apic_vector.S index e98bae9eb6c5..d3ff3c238b48 100644 --- a/sys/amd64/amd64/apic_vector.S +++ b/sys/amd64/amd64/apic_vector.S @@ -179,6 +179,7 @@ IDTVEC(spuriousint) INTR_HANDLER ipi_intr_bitmap_handler call as_lapic_eoi KMSAN_ENTER + movq %rsp,%rdi call ipi_bitmap_handler KMSAN_LEAVE jmp doreti @@ -209,6 +210,7 @@ IDTVEC(spuriousint) INTR_HANDLER ipi_swi call as_lapic_eoi KMSAN_ENTER + movq %rsp,%rdi call ipi_swi_handler KMSAN_LEAVE jmp doreti diff --git a/sys/i386/i386/apic_vector.S b/sys/i386/i386/apic_vector.S index 5d248409718d..0037f1c968fb 100644 --- a/sys/i386/i386/apic_vector.S +++ b/sys/i386/i386/apic_vector.S @@ -261,7 +261,7 @@ IDTVEC(ipi_intr_bitmap_handler) cld KENTER call as_lapic_eoi - movl $ipi_bitmap_handler, %eax + movl $ipi_bitmap_handler_i386, %eax call *%eax jmp doreti @@ -306,7 +306,7 @@ IDTVEC(ipi_swi) cld KENTER call as_lapic_eoi - movl $ipi_swi_handler, %eax + movl $ipi_swi_handler_i386, %eax call *%eax jmp doreti diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c index 18ec0d83fad3..0913a0f70d14 100644 --- a/sys/i386/i386/mp_machdep.c +++ b/sys/i386/i386/mp_machdep.c @@ -736,3 +736,17 @@ invlcache_handler(void) wbinvd(); PCPU_SET(smp_tlb_done, generation); } + +void ipi_bitmap_handler_i386(struct trapframe frame); +void +ipi_bitmap_handler_i386(struct trapframe frame) +{ + ipi_bitmap_handler(&frame); +} + +void ipi_swi_handler_i386(struct trapframe frame); +void +ipi_swi_handler_i386(struct trapframe frame) +{ + ipi_swi_handler(&frame); +} diff --git a/sys/x86/include/x86_smp.h b/sys/x86/include/x86_smp.h index 5cecfab9d183..84601a379e19 100644 --- a/sys/x86/include/x86_smp.h +++ b/sys/x86/include/x86_smp.h @@ -96,10 +96,10 @@ void init_secondary_tail(void); void init_secondary(void); void ipi_startup(int apic_id, int vector); void ipi_all_but_self(u_int ipi); -void ipi_bitmap_handler(struct trapframe frame); +void ipi_bitmap_handler(struct trapframe *frame); void ipi_cpu(int cpu, u_int ipi); int ipi_nmi_handler(void); -void ipi_swi_handler(struct trapframe frame); +void ipi_swi_handler(struct trapframe *frame); void ipi_selected(cpuset_t cpus, u_int ipi); void ipi_self_from_nmi(u_int vector); void set_interrupt_apic_ids(void); diff --git a/sys/x86/x86/mp_x86.c b/sys/x86/x86/mp_x86.c index 8345117f5b6f..a04b4aaa704e 100644 --- a/sys/x86/x86/mp_x86.c +++ b/sys/x86/x86/mp_x86.c @@ -1328,14 +1328,14 @@ ipi_send_cpu(int cpu, u_int ipi) } void -ipi_bitmap_handler(struct trapframe frame) +ipi_bitmap_handler(struct trapframe *frame) { struct trapframe *oldframe; struct thread *td; int cpu = PCPU_GET(cpuid); u_int ipi_bitmap; - kasan_mark(&frame, sizeof(frame), sizeof(frame), 0); + kasan_mark(frame, sizeof(*frame), sizeof(*frame), 0); td = curthread; ipi_bitmap = atomic_readandclear_int(&cpuid_to_pcpu[cpu]-> @@ -1353,7 +1353,7 @@ ipi_bitmap_handler(struct trapframe frame) td->td_intr_nesting_level++; oldframe = td->td_intr_frame; - td->td_intr_frame = &frame; + td->td_intr_frame = frame; #if defined(STACK) || defined(DDB) if (ipi_bitmap & (1 << IPI_TRACE)) stack_capture_intr(); @@ -1707,10 +1707,10 @@ cpususpend_handler(void) * Handle an IPI_SWI by waking delayed SWI thread. */ void -ipi_swi_handler(struct trapframe frame) +ipi_swi_handler(struct trapframe *frame) { - intr_event_handle(clk_intr_event, &frame); + intr_event_handle(clk_intr_event, frame); } /* diff --git a/sys/x86/xen/xen_apic.c b/sys/x86/xen/xen_apic.c index 43a253cc2860..c8760545c8e9 100644 --- a/sys/x86/xen/xen_apic.c +++ b/sys/x86/xen/xen_apic.c @@ -217,7 +217,7 @@ static int xen_ipi_bitmap_handler(void *arg) { - ipi_bitmap_handler(*curthread->td_intr_frame); + ipi_bitmap_handler(curthread->td_intr_frame); return (FILTER_HANDLED); } @@ -296,7 +296,7 @@ static int xen_ipi_swi_handler(void *arg) { - ipi_swi_handler(*curthread->td_intr_frame); + ipi_swi_handler(curthread->td_intr_frame); return (FILTER_HANDLED); }