diff options
Diffstat (limited to 'net/core/dev.c')
| -rw-r--r-- | net/core/dev.c | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index b8f74cfb1bf..fe10551d367 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -942,14 +942,15 @@ rollback:  	ret = notifier_to_errno(ret);  	if (ret) { -		if (err) { -			printk(KERN_ERR -			       "%s: name change rollback failed: %d.\n", -			       dev->name, ret); -		} else { +		/* err >= 0 after dev_alloc_name() or stores the first errno */ +		if (err >= 0) {  			err = ret;  			memcpy(dev->name, oldname, IFNAMSIZ);  			goto rollback; +		} else { +			printk(KERN_ERR +			       "%s: name change rollback failed: %d.\n", +			       dev->name, ret);  		}  	}  |