mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 02:06:49 +07:00
netvsc: check error return when restoring channels and mtu
If setting new values fails, and the attempt to restore original settings fails. Then log an error and leave device down. This should never happen, but if it does don't go down in flames. Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
16ba326600
commit
68d715f685
@ -845,7 +845,13 @@ static int netvsc_set_channels(struct net_device *net,
|
||||
} else {
|
||||
ret = PTR_ERR(nvdev);
|
||||
device_info.num_chn = orig;
|
||||
rndis_filter_device_add(dev, &device_info);
|
||||
nvdev = rndis_filter_device_add(dev, &device_info);
|
||||
|
||||
if (IS_ERR(nvdev)) {
|
||||
netdev_err(net, "restoring channel setting failed: %ld\n",
|
||||
PTR_ERR(nvdev));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (was_opened)
|
||||
@ -953,10 +959,16 @@ static int netvsc_change_mtu(struct net_device *ndev, int mtu)
|
||||
|
||||
/* Attempt rollback to original MTU */
|
||||
ndev->mtu = orig_mtu;
|
||||
rndis_filter_device_add(hdev, &device_info);
|
||||
nvdev = rndis_filter_device_add(hdev, &device_info);
|
||||
|
||||
if (vf_netdev)
|
||||
dev_set_mtu(vf_netdev, orig_mtu);
|
||||
|
||||
if (IS_ERR(nvdev)) {
|
||||
netdev_err(ndev, "restoring mtu failed: %ld\n",
|
||||
PTR_ERR(nvdev));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (was_opened)
|
||||
|
Loading…
Reference in New Issue
Block a user