From nobody Sun Dec 01 04:57:19 2024 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 4Y1F5W2wSTz5gD6G; Sun, 01 Dec 2024 04:57:19 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Y1F5W1NTCz49gS; Sun, 1 Dec 2024 04:57:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1733029039; 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=lCKMEuk5wR9qBc0KCuhzlURHexhFJzcCHpGBZ0aYfYE=; b=QlsO0vfejw7wGsdMK1NUefnJKM7amVh4zzrjNWnfoFooWKy1jJ78Fq7C5b2TTKW23g96/y ihYukDG0BsqIDoPAmd7jhGeF5c+HUaYpbOeadHz15DBgy34khQyABW8FcPiD10qLqBpzvv MENH91OjF1ujoYRLXwog2rptQkHJ9r+3r6bQ9UEkGi/mEv0T55ZVtblo0aRDvHjbRYKHv5 lEggiRPS7kXYbyu37c9eG/5b0u5bpqNz3YwH4/r9aroRvWy/7logBEjRImM8n52ZFkiMOK 77GWf6I158Ywaua9DUiUGKm1flN65MNHIDMTpzQ/i+59n+u03iVcMGmAk7JTow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1733029039; 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=lCKMEuk5wR9qBc0KCuhzlURHexhFJzcCHpGBZ0aYfYE=; b=bsFWbiwYeCqat+8tVV4Ja4SAVXG9QBdblhORyyLkZmumm/OqJkW0Lyxo+CjCdezpn8FiKY g8UwgQlcwMIcZapvYFFJfpPb3hAsdbNdr3sJexRdbu3G7joIu44yEwzLRSOgkOF8yJYKjD xzeqpMa5G4pTjfH02l9UneqZCX/oOEhnsVGNlUKS6biZ/UU6Uk8W0k3DPh+XJ/NvvXPF3b n0z3hzxcNvf+G7H7oJGPlU7jmv3lSca2W9vBYhpquw7q91N7Ruy37mfMRg4xt8FNYh1tMx v7Ys43SesiClvTsHsgjxRY+Wxj1eD0w1/CsJetmLCoRVGoCi+mg1AvAqp+s02g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1733029039; a=rsa-sha256; cv=none; b=l966we5XTJkvpGHYN5Lp90LH/U+0Eiwr0AnsRN9Y1eChSEN4Y79Lq2300zEKc24dF7+j/q 0PheuSDT5KTOwNvizFOOeNzrSEsF4Z/CET8nj1PrDlLVkdRCeMHjGuw6IqmRnT3VoFaZ4h 9VBB+yvrSw/IXAlS6LAUCWbl0IUmRSZoYnrZRI2vLymSuFQ5NTkxlv9PcDXZ2Oi7mstDFv l0fG7JNkFj3fa0t5mn942OO2QJCufPmeD+mNnWtf5DxAKCJsxUZ0qdHWYsrugSU0Ry7y5B qZPrkaSFg/BW+C8dO8AP2GFy4B2xo6PAJuRimMFZoSoaKD4PbIvGmHSDwHp+OQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Y1F5W107bzfJ6; Sun, 1 Dec 2024 04:57:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4B14vJiU095620; Sun, 1 Dec 2024 04:57:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4B14vJ0w095617; Sun, 1 Dec 2024 04:57:19 GMT (envelope-from git) Date: Sun, 1 Dec 2024 04:57:19 GMT Message-Id: <202412010457.4B14vJ0w095617@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 35c71ac2b6d5 - stable/14 - spibus: Use a bus_child_deleted method to free ivars for children 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 35c71ac2b6d5dc0d77755154cf8edddc1d4caab0 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=35c71ac2b6d5dc0d77755154cf8edddc1d4caab0 commit 35c71ac2b6d5dc0d77755154cf8edddc1d4caab0 Author: John Baldwin AuthorDate: 2024-11-01 14:10:19 +0000 Commit: John Baldwin CommitDate: 2024-12-01 02:46:07 +0000 spibus: Use a bus_child_deleted method to free ivars for children Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D47373 (cherry picked from commit 84553ccd0c8b1fa5b3f0b5b70a42a244f26cea75) --- sys/dev/spibus/acpi_spibus.c | 1 + sys/dev/spibus/ofw_spibus.c | 7 +++++++ sys/dev/spibus/spibus.c | 13 +++++++++++++ sys/dev/spibus/spibusvar.h | 1 + 4 files changed, 22 insertions(+) diff --git a/sys/dev/spibus/acpi_spibus.c b/sys/dev/spibus/acpi_spibus.c index 7241ad15bdab..9bce45b93dba 100644 --- a/sys/dev/spibus/acpi_spibus.c +++ b/sys/dev/spibus/acpi_spibus.c @@ -561,6 +561,7 @@ static device_method_t acpi_spibus_methods[] = { DEVMETHOD(bus_alloc_resource, acpi_spibus_alloc_resource), #endif DEVMETHOD(bus_add_child, acpi_spibus_add_child), + DEVMETHOD(bus_child_deleted, spibus_child_deleted), DEVMETHOD(bus_probe_nomatch, acpi_spibus_probe_nomatch), DEVMETHOD(bus_driver_added, acpi_spibus_driver_added), DEVMETHOD(bus_child_deleted, acpi_spibus_child_deleted), diff --git a/sys/dev/spibus/ofw_spibus.c b/sys/dev/spibus/ofw_spibus.c index f9323ab342ee..3342bf874553 100644 --- a/sys/dev/spibus/ofw_spibus.c +++ b/sys/dev/spibus/ofw_spibus.c @@ -191,6 +191,12 @@ ofw_spibus_add_child(device_t dev, u_int order, const char *name, int unit) return (child); } +static void +ofw_spibus_child_deleted(device_t dev, device_t child) +{ + free(device_get_ivars(child), M_DEVBUF); +} + static const struct ofw_bus_devinfo * ofw_spibus_get_devinfo(device_t bus, device_t dev) { @@ -217,6 +223,7 @@ static device_method_t ofw_spibus_methods[] = { /* Bus interface */ DEVMETHOD(bus_child_pnpinfo, ofw_bus_gen_child_pnpinfo), DEVMETHOD(bus_add_child, ofw_spibus_add_child), + DEVMETHOD(bus_child_deleted, ofw_spibus_child_deleted), DEVMETHOD(bus_get_resource_list, ofw_spibus_get_resource_list), /* ofw_bus interface */ diff --git a/sys/dev/spibus/spibus.c b/sys/dev/spibus/spibus.c index d72475a3fdba..95d3759002df 100644 --- a/sys/dev/spibus/spibus.c +++ b/sys/dev/spibus/spibus.c @@ -199,6 +199,18 @@ spibus_add_child_common(device_t dev, u_int order, const char *name, int unit, return (child); } +void +spibus_child_deleted(device_t dev, device_t child) +{ + struct spibus_ivar *devi; + + devi = device_get_ivars(child); + if (devi == NULL) + return; + resource_list_free(&devi->rl); + free(devi, M_DEVBUF); +} + static device_t spibus_add_child(device_t dev, u_int order, const char *name, int unit) { @@ -263,6 +275,7 @@ static device_method_t spibus_methods[] = { DEVMETHOD(bus_get_resource_list, spibus_get_resource_list), DEVMETHOD(bus_add_child, spibus_add_child), + DEVMETHOD(bus_child_deleted, spibus_child_deleted), DEVMETHOD(bus_print_child, spibus_print_child), DEVMETHOD(bus_probe_nomatch, spibus_probe_nomatch), DEVMETHOD(bus_read_ivar, spibus_read_ivar), diff --git a/sys/dev/spibus/spibusvar.h b/sys/dev/spibus/spibusvar.h index 338bacd82dcf..6a74f9b1053d 100644 --- a/sys/dev/spibus/spibusvar.h +++ b/sys/dev/spibus/spibusvar.h @@ -79,6 +79,7 @@ extern driver_t ofw_spibus_driver; int spibus_attach(device_t); int spibus_detach(device_t); device_t spibus_add_child_common(device_t, u_int, const char *, int, size_t); +void spibus_child_deleted(device_t, device_t); void spibus_probe_nomatch(device_t, device_t); int spibus_child_location(device_t, device_t, struct sbuf *); int spibus_read_ivar(device_t, device_t, int, uintptr_t *);