On 8/1/25 21:00, Zhenlei Huang wrote:


On Aug 2, 2025, at 4:09 AM, John Baldwin <j...@freebsd.org> wrote:

The branch main has been updated by jhb:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=96a550e9dd892f24a479da00ead93fbfaafb7733

commit 96a550e9dd892f24a479da00ead93fbfaafb7733
Author:     John Baldwin <j...@freebsd.org>
AuthorDate: 2025-08-01 20:07:30 +0000
Commit:     John Baldwin <j...@freebsd.org>
CommitDate: 2025-08-01 20:07:30 +0000

    genet: Add a detach routine

    PR:             288309
    Co-authored by: Mike Belanger <mibelan...@qnx.com>
    MFC after:      2 weeks
---
sys/arm64/broadcom/genet/if_genet.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

diff --git a/sys/arm64/broadcom/genet/if_genet.c 
b/sys/arm64/broadcom/genet/if_genet.c
index 182b5582fb7c..013573f1551b 100644
--- a/sys/arm64/broadcom/genet/if_genet.c
+++ b/sys/arm64/broadcom/genet/if_genet.c
@@ -201,6 +201,7 @@ struct gen_softc {

static void gen_init(void *softc);
static void gen_start(if_t ifp);
+static void gen_stop(struct gen_softc *sc);
static void gen_destroy(struct gen_softc *sc);
static int gen_encap(struct gen_softc *sc, struct mbuf **mp);
static int gen_parse_tx(struct mbuf *m, int csum_flags);
@@ -379,6 +380,39 @@ gen_destroy(struct gen_softc *sc)
        }
}

+static int
+gen_detach(device_t dev)
+{
+       struct gen_softc *sc;
+       int error;
+
+       sc = device_get_softc(dev);
+

~~~~~~
+       GEN_LOCK(sc);
+       gen_stop(sc);
+       GEN_UNLOCK(sc);
+       callout_drain(&sc->stat_ch);
+       ether_ifdetach(sc->ifp);
~~~~~~

I guess the above logic want be wrapped by condition `device_is_attached(dev)` .

That is always true for a detach routine, so there is no need to test it.

--
John Baldwin


Reply via email to