Crypto: chelsio - Fixes a deadlock between rtnl_lock and uld_mutex
The locks are taken in this order during driver registration
(uld_mutex), at: cxgb4_register_uld.part.14+0x49/0xd60 [cxgb4]
(rtnl_mutex), at: rtnetlink_rcv_msg+0x2db/0x400
(uld_mutex), at: cxgb_up+0x3a/0x7b0 [cxgb4]
(rtnl_mutex), at: chcr_add_xfrmops+0x83/0xa0 [chcr](stucked here)
To avoid this now the netdev features are updated after the
cxgb4_register_uld function is completed.
Fixes: 6dad4e8ab3
("chcr: Add support for Inline IPSec").
Signed-off-by: Ayush Sawal <ayush.sawal@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
ad59ddd02d
commit
876aa9f527
@@ -99,9 +99,7 @@ void chcr_add_xfrmops(const struct cxgb4_lld_info *lld)
|
||||
netdev->xfrmdev_ops = &chcr_xfrmdev_ops;
|
||||
netdev->hw_enc_features |= NETIF_F_HW_ESP;
|
||||
netdev->features |= NETIF_F_HW_ESP;
|
||||
rtnl_lock();
|
||||
netdev_change_features(netdev);
|
||||
rtnl_unlock();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user