diff --git a/net/core/dev.c b/net/core/dev.c
index bfa9a6a951ddb271b83bb1d75ecc08b0d878a8b0..75933932463d2448802fe5a3eedc8f7c71bf8cf6 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2859,7 +2859,7 @@ int dev_set_promiscuity(struct net_device *dev, int inc)
 	int err;
 
 	err = __dev_set_promiscuity(dev, inc);
-	if (!err)
+	if (err < 0)
 		return err;
 	if (dev->flags != old_flags)
 		dev_set_rx_mode(dev);