Re: [PATCH net-next v9 3/3] net: airoha: defer GDM3/GDM4 WAN mode and GDM2 loopback to QoS offload

Lorenzo Bianconi <[email protected]>
Newsgroups org.infradead.lists.linux-mediatek,org.infradead.lists.linux-arm-kernel,org.kernel.vger.netdev
Message-ID <al87oKiC1y88_Ncr@lore-desk>
> On 7/20/2026 3:03 PM, Lorenzo Bianconi wrote:
> > GDM3 and GDM4 ports require GDM2 loopback to be enabled for hardware
> > QoS offload to function. Without it, HTB and ETS offload on these ports
> > do not work.
> > Previously, GDM3/GDM4 ports were automatically configured as WAN with
> > GDM2 loopback enabled during ndo_init(). Add the capability to configure
> > GDM3/GDM4 as WAN/LAN on demand when QoS offload is created or destroyed.
> > Hook airoha_enable_qos_for_gdm34() into TC_HTB_CREATE so that requesting
> > HTB offload on a GDM3/GDM4 LAN port switches it to WAN mode and enables
> > GDM2 loopback, with proper rollback on failure. Introduce the
> > AIROHA_DEV_F_QOS flag to track whether a device has an active HTB
> > qdisc; clear it on TC_HTB_DESTROY. The device keeps its WAN role after
> > qdisc teardown so that its configuration is preserved until another
> > device explicitly needs the WAN role for QoS offload.
> > If another GDM3/GDM4 device already holds the WAN role without an active
> > QoS qdisc, demote it to LAN before promoting the requesting device. Skip
> > the demotion when the requesting device is itself already the WAN device.
> > Since airoha_dev_set_qdma() can now be called on a running device to
> > migrate between QDMA blocks, make dev->qdma an RCU pointer so the TX
> > path can safely dereference it without holding RTNL.
> > Hold flow_offload_mutex in airoha_enable_qos_for_gdm34() and
> > airoha_disable_qos_for_gdm34() around the dev->flags update,
> > airoha_dev_set_qdma() and GDM2 loopback configuration, serializing
> > against concurrent airoha_ppe_hw_init() in the TC_SETUP_CLSFLOWER
> > offload path.
> > Introduce airoha_qdma_deref() helper that wraps rcu_dereference_protected()
> > with a lockdep condition accepting either rtnl_lock or flow_offload_mutex,
> > and use it across all control-path dereferences of the RCU-protected
> > dev->qdma pointer.
> > Add airoha_disable_gdm2_loopback() to disable GDM2 hw loopback.
> > 
> 
> A minor nit which may just be my personal preference/style:
> I had trouble following this commit message since it goes through a lot
> of detail about various problems with dereferencing and other changes
> related to allowing the defered configuration of WAN mode.
> 
> I do appreciate this detail as it helps understand the changes and
> motivations. However.. It might benefit from some additional line breaks
> for spacing to help readability.

Sure, I can rework the commit log if I need to repost.

Regards,
Lorenzo
signature.asc (application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE-----

iHUEABYKAB0WIQTquNwa3Txd3rGGn7Y6cBh0uS2trAUCal87oAAKCRA6cBh0uS2t
rEVKAPwIcLrCEAa3lrXGbk+Gos4q3HQHdOKbOzp+RRDjU1q54gEAyCE+g/lit//W
cCyYD5/Z/NsHLoCWZv4DilW7uBExHg4=
=WQtn
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.