diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c
index d4034025c87c144c3da423cc4e9ea5ef05f884bd..d0d31cb991803daa2a18099605d35f1fbb406eb2 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: