Subject: Re: [PATCH net-next 1/6] net: airoha: Introduce airoha_gdm_dev struct

From: Alexander Lobakin <[email-masked]>
Date: Fri, 29 May 2026 17:04:37 +0200

From: Lorenzo Bianconi <[email-masked]>
Date: Thu, 28 May 2026 18:09:02 +0200

> On May 28, Alexander Lobakin wrote:
>> From: Lorenzo Bianconi <[email-masked]>
>> Date: Wed, 27 May 2026 12:21:15 +0200
>>
>>> EN7581 and AN7583 SoCs support connecting multiple external SerDes to GDM3
>>> or GDM4 ports via a hw arbiter that manages the traffic in a TDM manner.
>>> As a result multiple net_devices can connect to the same GDM{3,4} port
>>> and there is a theoretical "1:n" relation between GDM port and
>>> net_devices.
>>> Introduce airoha_gdm_dev struct to collect net_device related info (e.g.
>>> net_device and external phy pointer). Please note this is just a
>>> preliminary patch and we are still supporting a single net_device for
>>> each GDM port. Subsequent patches will add support for multiple net_devices
>>> connected to the same GDM port.
>>>
>>> Tested-by: Xuegang Lu <[email-masked]>
>>> Signed-off-by: Lorenzo Bianconi <[email-masked]>
>>
>> [...]
>>
>>> diff --git a/drivers/net/ethernet/airoha/airoha_eth.h b/drivers/net/ethernet/airoha/airoha_eth.h
>>> index d3781103abb5..c78cabbec753 100644
>>> --- a/drivers/net/ethernet/airoha/airoha_eth.h
>>> +++ b/drivers/net/ethernet/airoha/airoha_eth.h
>>> @@ -535,10 +535,15 @@ struct airoha_qdma {
>>>  	struct airoha_queue q_rx[AIROHA_NUM_RX_RING];
>>>  };
>>>  
>>> +struct airoha_gdm_dev {
>>> +	struct airoha_gdm_port *port;
>>> +	struct net_device *dev;
>>
>> Nit: we now have priv_to_netdev() (I hope I remember its name
>> correctly), so that we no longer need to store a netdev backpointer in
>> netdev_priv structures.
>> Just an option, up to you.
> 
> I think you mean netdev_from_priv(), right?

Yep, priv_to_netdev() is something I used in the past locally, it went
to the kernel as netdev_from_priv() from a different author.

> I guess I can fix if I need to repost, otherwise I will fix with with a
> dedicated patch. Agree?

Sure, up to you anyway whether to use it. Most drivers still use
backpointers to netdev in their private structures.
>From the optimization PoV, netdev_from_priv() should generate a bit
better code as it's then clear that it's just a fixed offset from the
private structure, not a separate piece of memory.

> Regards,
> Lorenzo

Thanks,
Olek