Re: git: 96a550e9dd89 - main - genet: Add a detach routine

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Mon, 04 Aug 2025 13:44:12 UTC
On 8/1/25 21:00, Zhenlei Huang wrote:
> 
> 
>> On Aug 2, 2025, at 4:09 AM, John Baldwin <jhb@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 <jhb@FreeBSD.org>
>> AuthorDate: 2025-08-01 20:07:30 +0000
>> Commit:     John Baldwin <jhb@FreeBSD.org>
>> CommitDate: 2025-08-01 20:07:30 +0000
>>
>>     genet: Add a detach routine
>>
>>     PR:             288309
>>     Co-authored by: Mike Belanger <mibelanger@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