|
@@ -384,6 +384,7 @@ static int dlci_del(struct dlci_add *dlci)
|
|
struct frad_local *flp;
|
|
struct frad_local *flp;
|
|
struct net_device *master, *slave;
|
|
struct net_device *master, *slave;
|
|
int err;
|
|
int err;
|
|
|
|
+ bool found = false;
|
|
|
|
|
|
rtnl_lock();
|
|
rtnl_lock();
|
|
|
|
|
|
@@ -394,6 +395,17 @@ static int dlci_del(struct dlci_add *dlci)
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ list_for_each_entry(dlp, &dlci_devs, list) {
|
|
|
|
+ if (dlp->master == master) {
|
|
|
|
+ found = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!found) {
|
|
|
|
+ err = -ENODEV;
|
|
|
|
+ goto out;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (netif_running(master)) {
|
|
if (netif_running(master)) {
|
|
err = -EBUSY;
|
|
err = -EBUSY;
|
|
goto out;
|
|
goto out;
|