From nobody Mon Jun 22 21:42:38 2026 X-Original-To: dev-commits-src-main@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 4gkhWM0G7Mz6j5yB for ; Mon, 22 Jun 2026 21:42:39 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gkhWL5PsSz3M3Q for ; Mon, 22 Jun 2026 21:42:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782164558; 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=7LRlXefOMUItZrLP5wv2w2jL+SzpAWM3toMv0yFFWIE=; b=no48dJoCHbxypBhx7BuBozmLzFqbz5yyvMCqwXmnTJ3dwx+V3kyty4PeFwnb/vPn9hvbJd moGSaNMU7zem98NijO9qXfkHPO9xILBY82PgRiQFwhgvtv/B6d0MCmwiuNFZgZbBMMRkOy 6y8wbOLGrXmvN3MGzzqJ4arEzbLAte9T/05pDUPW5TNH1EQKonW0VsERECZ1Oo7VZsAkun p6LpeuQRo0NA6QKeY3yZzmWxIiqLwI1npmZNA9qo7LXIIG9IL9JYkrUPlV1el2uUQIfJ5a 83v6al9Q/ABDtevPrrzRPXPw9Z+Qw0juydp7VaARYo8DjzTtTfcKEnf6hdsdNA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1782164558; a=rsa-sha256; cv=none; b=KRH6WhnFWvHLJqxdGqtelcD+XCl1gnGJjiWY0C4GOs0KxvEdE3J/C58rDrSYiK6Fwi0QQ/ qRkIhM5LRfzx1YOyuUv60l/rNhg+Rj89U+w1sjfbUPKRUS7nnv6TwCNq2/K9VGgwkllrQ7 r1aSZvXSN9e0eLmdHJ6gkodK5tKjTNvsqewH13mAI3yx0vxkKW39ARyUsMtsA6SR+4HM1/ N+Dlt99zjlgG1fT6ZDeQQatwFSyeGbyJUkmjegvXuOHLoFrUpaM8oba3AS7jvo0OlYLi0R Tq1V+qT6D+aocKyNh8SdgWhi9FH+FQVjezyfnriVp4huRxEjKaHuUvMS06oZew== 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=1782164558; 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=7LRlXefOMUItZrLP5wv2w2jL+SzpAWM3toMv0yFFWIE=; b=qyAQpQsdD7XapDmImEzMofMlGSZK3l/0182g0lVLQ8hwQIyuXgs7ENyJZWC+CUUMScvugT n5lvDgNNezOdw8AKypVNxJGFiGMk4PRMXdjZ2kcozn/zF/L/OCU3lxho0LfQtjl5JC1SEn BJQvv1GRCtqRHYPDTeDSPBJ2jPgOtHI6bPBI319QR2Fu90JoxPEU8/hBA6coIgO+Prtv0L 9adAGVu0k8/ee8Sn3aX0lLvwmboo6uZqkLY9FYauupHrZTPmCk0S/KAIQHB9LCcZndblFN oEpJWBbIkezjxfEoRz2duQgHrQlvLWYzlA3ndtm+s0Vwz2NeabzVICWB3q22rg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gkhWL4Lncz14pV for ; Mon, 22 Jun 2026 21:42:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ef38 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 22 Jun 2026 21:42:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 660a491c41a2 - main - acpi: Button sleep/wake callbacks: Expose true argument types List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 660a491c41a2b90c35fe121c0b6a046b9af3cc00 Auto-Submitted: auto-generated Date: Mon, 22 Jun 2026 21:42:38 +0000 Message-Id: <6a39ac4e.1ef38.d8023da@gitrepo.freebsd.org> The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=660a491c41a2b90c35fe121c0b6a046b9af3cc00 commit 660a491c41a2b90c35fe121c0b6a046b9af3cc00 Author: Olivier Certner AuthorDate: 2026-06-04 09:48:33 +0000 Commit: Olivier Certner CommitDate: 2026-06-22 21:40:13 +0000 acpi: Button sleep/wake callbacks: Expose true argument types This makes the interface composed of the acpi_event_{power,sleep}_button_{sleep,wake}() functions more accurate and clears the risk of calling them with a wrong object (such as a wrong softc). Reviewed by: obiwac Event: Halifax Hackathon 202606 Sponsored by: The FreeBSD Foundation Pull Request: https://github.com/OlCe2/freebsd-src/pull/8 --- sys/dev/acpica/acpi.c | 48 +++++++++++++++++++----------------------------- sys/dev/acpica/acpivar.h | 8 ++++---- 2 files changed, 23 insertions(+), 33 deletions(-) diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index d599094718f7..91913c1daa60 100644 --- a/sys/dev/acpica/acpi.c +++ b/sys/dev/acpica/acpi.c @@ -2701,14 +2701,14 @@ acpi_enable_fixed_events(struct acpi_softc *sc) if ((AcpiGbl_FADT.Flags & ACPI_FADT_POWER_BUTTON) == 0) { AcpiClearEvent(ACPI_EVENT_POWER_BUTTON); AcpiInstallFixedEventHandler(ACPI_EVENT_POWER_BUTTON, - acpi_event_power_button_sleep, sc); + (ACPI_EVENT_HANDLER)acpi_event_power_button_sleep, sc); if (first_time) device_printf(sc->acpi_dev, "Power Button (fixed)\n"); } if ((AcpiGbl_FADT.Flags & ACPI_FADT_SLEEP_BUTTON) == 0) { AcpiClearEvent(ACPI_EVENT_SLEEP_BUTTON); AcpiInstallFixedEventHandler(ACPI_EVENT_SLEEP_BUTTON, - acpi_event_sleep_button_sleep, sc); + (ACPI_EVENT_HANDLER)acpi_event_sleep_button_sleep, sc); if (first_time) device_printf(sc->acpi_dev, "Sleep Button (fixed)\n"); } @@ -4141,37 +4141,30 @@ acpi_system_eventhandler_wakeup(void *arg, enum power_stype stype) return_VOID; } -/* +/* * ACPICA Event Handlers (FixedEvent, also called from button notify handler) */ static void -acpi_invoke_sleep_eventhandler(void *context) +acpi_invoke_sleep_eventhandler(const enum power_stype *const stype) { - - EVENTHANDLER_INVOKE(acpi_sleep_event, *(enum power_stype *)context); + EVENTHANDLER_INVOKE(acpi_sleep_event, *stype); } static void -acpi_invoke_wake_eventhandler(void *context) +acpi_invoke_wake_eventhandler(const enum power_stype *const stype) { - - EVENTHANDLER_INVOKE(acpi_wakeup_event, *(enum power_stype *)context); + EVENTHANDLER_INVOKE(acpi_wakeup_event, *stype); } UINT32 -acpi_event_power_button_sleep(void *context) +acpi_event_power_button_sleep(struct acpi_softc *sc) { -#if defined(__amd64__) || defined(__i386__) - struct acpi_softc *sc = (struct acpi_softc *)context; -#else - (void)context; -#endif - ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); #if defined(__amd64__) || defined(__i386__) if (ACPI_FAILURE(AcpiOsExecute(OSL_NOTIFY_HANDLER, - acpi_invoke_sleep_eventhandler, &sc->acpi_power_button_stype))) + (ACPI_OSD_EXEC_CALLBACK)acpi_invoke_sleep_eventhandler, + &sc->acpi_power_button_stype))) return_VALUE (ACPI_INTERRUPT_NOT_HANDLED); #else shutdown_nice(RB_POWEROFF); @@ -4181,40 +4174,37 @@ acpi_event_power_button_sleep(void *context) } UINT32 -acpi_event_power_button_wake(void *context) +acpi_event_power_button_wake(struct acpi_softc *sc) { - struct acpi_softc *sc = (struct acpi_softc *)context; - ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); if (ACPI_FAILURE(AcpiOsExecute(OSL_NOTIFY_HANDLER, - acpi_invoke_wake_eventhandler, &sc->acpi_power_button_stype))) + (ACPI_OSD_EXEC_CALLBACK)acpi_invoke_wake_eventhandler, + &sc->acpi_power_button_stype))) return_VALUE (ACPI_INTERRUPT_NOT_HANDLED); return_VALUE (ACPI_INTERRUPT_HANDLED); } UINT32 -acpi_event_sleep_button_sleep(void *context) +acpi_event_sleep_button_sleep(struct acpi_softc *sc) { - struct acpi_softc *sc = (struct acpi_softc *)context; - ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); if (ACPI_FAILURE(AcpiOsExecute(OSL_NOTIFY_HANDLER, - acpi_invoke_sleep_eventhandler, &sc->acpi_sleep_button_stype))) + (ACPI_OSD_EXEC_CALLBACK)acpi_invoke_sleep_eventhandler, + &sc->acpi_sleep_button_stype))) return_VALUE (ACPI_INTERRUPT_NOT_HANDLED); return_VALUE (ACPI_INTERRUPT_HANDLED); } UINT32 -acpi_event_sleep_button_wake(void *context) +acpi_event_sleep_button_wake(struct acpi_softc *sc) { - struct acpi_softc *sc = (struct acpi_softc *)context; - ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); if (ACPI_FAILURE(AcpiOsExecute(OSL_NOTIFY_HANDLER, - acpi_invoke_wake_eventhandler, &sc->acpi_sleep_button_stype))) + (ACPI_OSD_EXEC_CALLBACK)acpi_invoke_wake_eventhandler, + &sc->acpi_sleep_button_stype))) return_VALUE (ACPI_INTERRUPT_NOT_HANDLED); return_VALUE (ACPI_INTERRUPT_HANDLED); } diff --git a/sys/dev/acpica/acpivar.h b/sys/dev/acpica/acpivar.h index 5d1415a8f543..aa30e5fef26e 100644 --- a/sys/dev/acpica/acpivar.h +++ b/sys/dev/acpica/acpivar.h @@ -457,10 +457,10 @@ ACPI_STATUS acpi_parse_resources(device_t dev, ACPI_HANDLE handle, struct acpi_parse_resource_set *set, void *arg); /* ACPI event handling */ -UINT32 acpi_event_power_button_sleep(void *context); -UINT32 acpi_event_power_button_wake(void *context); -UINT32 acpi_event_sleep_button_sleep(void *context); -UINT32 acpi_event_sleep_button_wake(void *context); +UINT32 acpi_event_power_button_sleep(struct acpi_softc *sc); +UINT32 acpi_event_power_button_wake(struct acpi_softc *sc); +UINT32 acpi_event_sleep_button_sleep(struct acpi_softc *sc); +UINT32 acpi_event_sleep_button_wake(struct acpi_softc *sc); #define ACPI_EVENT_PRI_FIRST 0 #define ACPI_EVENT_PRI_DEFAULT 10000