2020-05-06 14:02:48

by Antoine Tenart

[permalink] [raw]
Subject: [PATCH net] net: macsec: fix rtnl locking issue

netdev_update_features() must be called with the rtnl lock taken. Not
doing so triggers a warning, as ASSERT_RTNL() is used in
__netdev_update_features(), the first function called by
netdev_update_features(). Fix this.

Fixes: c850240b6c41 ("net: macsec: report real_dev features when HW offloading is enabled")
Signed-off-by: Antoine Tenart <[email protected]>
---
drivers/net/macsec.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c
index d4034025c87c..d0d31cb99180 100644
--- a/drivers/net/macsec.c
+++ b/drivers/net/macsec.c
@@ -2641,11 +2641,12 @@ static int macsec_upd_offload(struct sk_buff *skb, struct genl_info *info)
if (ret)
goto rollback;

- rtnl_unlock();
/* Force features update, since they are different for SW MACSec and
* HW offloading cases.
*/
netdev_update_features(dev);
+
+ rtnl_unlock();
return 0;

rollback:
--
2.26.2


2020-05-06 23:59:38

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net] net: macsec: fix rtnl locking issue

From: Antoine Tenart <[email protected]>
Date: Wed, 6 May 2020 15:58:30 +0200

> netdev_update_features() must be called with the rtnl lock taken. Not
> doing so triggers a warning, as ASSERT_RTNL() is used in
> __netdev_update_features(), the first function called by
> netdev_update_features(). Fix this.
>
> Fixes: c850240b6c41 ("net: macsec: report real_dev features when HW offloading is enabled")
> Signed-off-by: Antoine Tenart <[email protected]>

Applied, thank you.