diff options
author | Matvejchikov Ilya <matvejchikov@gmail.com> | 2011-07-12 21:47:38 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-13 02:31:39 -0700 |
commit | 390fd0b388e4f85549e5d60bdeb21364b344d9b9 (patch) | |
tree | 0e8aba9868d018592e6911294b60223f8fa3e91b /drivers | |
parent | 9173a88f46bf53e2fa85337563b39e13c43c7f2e (diff) |
slip: remove dead code within the slip initialization
This following code contains a dead "if (dev).." block:
...
for (i = 0; i < slip_maxdev; i++) {
dev = slip_devs[i];
if (dev == NULL)
break;
}
/* Sorry, too many, all slots in use */
if (i >= slip_maxdev)
return NULL;
if (dev) {
sl = netdev_priv(dev);
if (test_bit(SLF_INUSE, &sl->flags)) {
unregister_netdevice(dev);
dev = NULL;
slip_devs[i] = NULL;
}
}
...
The reason is that the code starting with "if (dev).." is never called as
when we found an empty slot (dev == NULL) we break the loop and "if (dev).."
not works eiter the loop ends and we get out with "i >= slip_maxdev".
Signed-off-by: Matvejchikov Ilya <matvejchikov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/slip.c | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/drivers/net/slip.c b/drivers/net/slip.c index 6f97c5983c5..11c9ab3b1e1 100644 --- a/drivers/net/slip.c +++ b/drivers/net/slip.c @@ -723,6 +723,7 @@ static void sl_sync(void) static struct slip *sl_alloc(dev_t line) { int i; + char name[IFNAMSIZ]; struct net_device *dev = NULL; struct slip *sl; @@ -735,25 +736,12 @@ static struct slip *sl_alloc(dev_t line) if (i >= slip_maxdev) return NULL; - if (dev) { - sl = netdev_priv(dev); - if (test_bit(SLF_INUSE, &sl->flags)) { - unregister_netdevice(dev); - dev = NULL; - slip_devs[i] = NULL; - } - } - - if (!dev) { - char name[IFNAMSIZ]; - sprintf(name, "sl%d", i); - - dev = alloc_netdev(sizeof(*sl), name, sl_setup); - if (!dev) - return NULL; - dev->base_addr = i; - } + sprintf(name, "sl%d", i); + dev = alloc_netdev(sizeof(*sl), name, sl_setup); + if (!dev) + return NULL; + dev->base_addr = i; sl = netdev_priv(dev); /* Initialize channel control data */ |