diff options
| -rw-r--r-- | drivers/net/wan/dlci.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wan/dlci.c b/drivers/net/wan/dlci.c index 1f6e0538c716..6a8a382c5f4c 100644 --- a/drivers/net/wan/dlci.c +++ b/drivers/net/wan/dlci.c | |||
| @@ -384,6 +384,7 @@ static int dlci_del(struct dlci_add *dlci) | |||
| 384 | struct frad_local *flp; | 384 | struct frad_local *flp; |
| 385 | struct net_device *master, *slave; | 385 | struct net_device *master, *slave; |
| 386 | int err; | 386 | int err; |
| 387 | bool found = false; | ||
| 387 | 388 | ||
| 388 | rtnl_lock(); | 389 | rtnl_lock(); |
| 389 | 390 | ||
| @@ -394,6 +395,17 @@ static int dlci_del(struct dlci_add *dlci) | |||
| 394 | goto out; | 395 | goto out; |
| 395 | } | 396 | } |
| 396 | 397 | ||
| 398 | list_for_each_entry(dlp, &dlci_devs, list) { | ||
| 399 | if (dlp->master == master) { | ||
| 400 | found = true; | ||
| 401 | break; | ||
| 402 | } | ||
| 403 | } | ||
| 404 | if (!found) { | ||
| 405 | err = -ENODEV; | ||
| 406 | goto out; | ||
| 407 | } | ||
| 408 | |||
| 397 | if (netif_running(master)) { | 409 | if (netif_running(master)) { |
| 398 | err = -EBUSY; | 410 | err = -EBUSY; |
| 399 | goto out; | 411 | goto out; |
