On 05/06, Stanislav Fomichev wrote:
> On 05/06, Cosmin Ratiu wrote:
> > __netdev_update_features() expects the netdevice to be ops-locked, but
> > it gets called recursively on the lower level netdevices to sync their
> > features, and nothing locks those.
> > 
> > This commit fixes that, with the assumption that it shouldn't be possible
> > for both higher-level and lover-level netdevices to require the instance
> > lock, because that would lead to lock dependency warnings.
> > 
> > Without this, playing with higher level (e.g. vxlan) netdevices on top
> > of netdevices with instance locking enabled can run into issues:
> 
> Mentioning vxlan is a bit confusing here; it shouldn't let you flip lro (I
> think). Which upper are you testing against?
> 
> Trying to understand if we can cover this case in the selftests.
> netdevsim also doesn't expose F_LRO feature... (yet?)

Ok, yeah, I can see it with the teaming on top of netdevsim and the following
patch applied. Might try to send a testcase to cover this and the promisc part
that I missed.

Acked-by: Stanislav Fomichev <[email protected]>

diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
index 2aa999345fe1..af545d42961c 100644
--- a/drivers/net/netdevsim/netdev.c
+++ b/drivers/net/netdevsim/netdev.c
@@ -881,11 +881,13 @@ static void nsim_setup(struct net_device *dev)
                         NETIF_F_SG |
                         NETIF_F_FRAGLIST |
                         NETIF_F_HW_CSUM |
+                        NETIF_F_LRO |
                         NETIF_F_TSO;
        dev->hw_features |= NETIF_F_HW_TC |
                            NETIF_F_SG |
                            NETIF_F_FRAGLIST |
                            NETIF_F_HW_CSUM |
+                           NETIF_F_LRO |
                            NETIF_F_TSO;
        dev->max_mtu = ETH_MAX_MTU;
        dev->xdp_features = NETDEV_XDP_ACT_HW_OFFLOAD;

Reply via email to