bitmap_and(req_wanted, req_wanted, req_mask, NETDEV_FEATURE_COUNT);
        bitmap_andnot(new_wanted, old_wanted, req_mask, NETDEV_FEATURE_COUNT);
        bitmap_or(req_wanted, new_wanted, req_wanted, NETDEV_FEATURE_COUNT);
-       if (bitmap_equal(req_wanted, old_wanted, NETDEV_FEATURE_COUNT)) {
-               ret = 0;
-               goto out_rtnl;
+       if (!bitmap_equal(req_wanted, old_wanted, NETDEV_FEATURE_COUNT)) {
+               dev->wanted_features &= ~dev->hw_features;
+               dev->wanted_features |= ethnl_bitmap_to_features(req_wanted) & dev->hw_features;
+               __netdev_update_features(dev);
        }
-
-       dev->wanted_features &= ~dev->hw_features;
-       dev->wanted_features |= ethnl_bitmap_to_features(req_wanted) & dev->hw_features;
-       __netdev_update_features(dev);
        ethnl_features_to_bitmap(new_active, dev->features);
        mod = !bitmap_equal(old_active, new_active, NETDEV_FEATURE_COUNT);