[IPV4]: Only panic if inetdev_init fails for loopback
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 5 Jun 2007 06:34:08 +0000 (23:34 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 7 Jun 2007 20:39:03 +0000 (13:39 -0700)
When I made the inetdev_init call work on all devices I incorrectly
left in the panic call as well.  It is obviously undesirable to
panic on an allocation failure for a normal network device.  This
patch moves the panic call under the loopback if clause.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/devinet.c

index 7f95e6e..88a22d2 100644 (file)
@@ -1057,9 +1057,10 @@ static int inetdev_event(struct notifier_block *this, unsigned long event,
        if (!in_dev) {
                if (event == NETDEV_REGISTER) {
                        in_dev = inetdev_init(dev);
-                       if (!in_dev)
-                               panic("devinet: Failed to create loopback\n");
                        if (dev == &loopback_dev) {
+                               if (!in_dev)
+                                       panic("devinet: "
+                                             "Failed to create loopback\n");
                                in_dev->cnf.no_xfrm = 1;
                                in_dev->cnf.no_policy = 1;
                        }