From 57b8910cc5dac3da49028f4527565fca5ab6c908 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Mon, 30 Jul 2007 17:04:52 -0700 Subject: [PATCH] --- yaml --- r: 63406 b: refs/heads/master c: b217d616a15fcfb3caf2a72c1a071c6d3f182f8d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/devinet.c | 5 ++--- trunk/net/ipv6/addrconf.c | 8 +++++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index d215e081bc09..a31f94ccf53f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fcc5a03ac42564e9e255c1134dda47442289e466 +refs/heads/master: b217d616a15fcfb3caf2a72c1a071c6d3f182f8d diff --git a/trunk/net/ipv4/devinet.c b/trunk/net/ipv4/devinet.c index abf6352f990f..5b77bdaa57dd 100644 --- a/trunk/net/ipv4/devinet.c +++ b/trunk/net/ipv4/devinet.c @@ -1056,10 +1056,9 @@ 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) + return notifier_from_errno(-ENOMEM); if (dev == &loopback_dev) { - if (!in_dev) - panic("devinet: " - "Failed to create loopback\n"); IN_DEV_CONF_SET(in_dev, NOXFRM, 1); IN_DEV_CONF_SET(in_dev, NOPOLICY, 1); } diff --git a/trunk/net/ipv6/addrconf.c b/trunk/net/ipv6/addrconf.c index 06012920912a..91ef3be5abad 100644 --- a/trunk/net/ipv6/addrconf.c +++ b/trunk/net/ipv6/addrconf.c @@ -2256,14 +2256,14 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, struct net_device *dev = (struct net_device *) data; struct inet6_dev *idev = __in6_dev_get(dev); int run_pending = 0; + int err; switch(event) { case NETDEV_REGISTER: if (!idev && dev->mtu >= IPV6_MIN_MTU) { idev = ipv6_add_dev(dev); if (!idev) - printk(KERN_WARNING "IPv6: add_dev failed for %s\n", - dev->name); + return notifier_from_errno(-ENOMEM); } break; case NETDEV_UP: @@ -2373,7 +2373,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, NULL); addrconf_sysctl_register(idev, &idev->cnf); #endif - snmp6_register_dev(idev); + err = snmp6_register_dev(idev); + if (err) + return notifier_from_errno(err); } break; }