]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/macvtap.c
driver: macvtap: Unregister netdev rx_handler if macvtap_newlink fails
[karo-tx-linux.git] / drivers / net / macvtap.c
index 070e3290aa6efea6fcb505cdf0860a4dce676b74..bceca28757717cae65cc5004a829f8462404dad0 100644 (file)
@@ -491,7 +491,13 @@ static int macvtap_newlink(struct net *src_net,
        /* Don't put anything that may fail after macvlan_common_newlink
         * because we can't undo what it does.
         */
-       return macvlan_common_newlink(src_net, dev, tb, data);
+       err = macvlan_common_newlink(src_net, dev, tb, data);
+       if (err) {
+               netdev_rx_handler_unregister(dev);
+               return err;
+       }
+
+       return 0;
 }
 
 static void macvtap_dellink(struct net_device *dev,