* Re: [Bugme-new] [Bug 7708] New: unregister_netdev() should return unregister_netdevice() return code
[not found] <200612182256.kBIMuVio025766@fire-2.osdl.org>
@ 2006-12-18 23:21 ` Andrew Morton
2006-12-18 23:50 ` Stephen Hemminger
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2006-12-18 23:21 UTC (permalink / raw)
To: benjamin.li; +Cc: bugme-daemon@kernel-bugs.osdl.org, netdev
On Mon, 18 Dec 2006 14:56:31 -0800
bugme-daemon@bugzilla.kernel.org wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=7708
>
> Summary: unregister_netdev() should return unregister_netdevice()
> return code
> Kernel Version: 2.6.19.1
> Status: NEW
> Severity: low
> Owner: acme@conectiva.com.br
> Submitter: benjamin.li@qlogic.com
>
>
> net/core/dev.c:unregister_netdev() function is a wrapper around
> net/core/dev.c:unregister_netdevice(). The unregister_netdevice() function
> returns a return code while unregister_netdev() currently does not. For
> completeness, we should pass the return code from unregister_netdevice() all the
> way to the caller. unregister_netdev() should not swallow the return code.
>
Certainly there's some truth in that ;)
Is there some reason why you want to test the unregister_netdev() return
value?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 7708] New: unregister_netdev() should return unregister_netdevice() return code
2006-12-18 23:21 ` [Bugme-new] [Bug 7708] New: unregister_netdev() should return unregister_netdevice() return code Andrew Morton
@ 2006-12-18 23:50 ` Stephen Hemminger
2006-12-19 1:37 ` David Miller
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Hemminger @ 2006-12-18 23:50 UTC (permalink / raw)
To: Andrew Morton; +Cc: benjamin.li, bugme-daemon@kernel-bugs.osdl.org, netdev
On Mon, 18 Dec 2006 15:21:11 -0800
Andrew Morton <akpm@osdl.org> wrote:
> On Mon, 18 Dec 2006 14:56:31 -0800
> bugme-daemon@bugzilla.kernel.org wrote:
>
> > http://bugzilla.kernel.org/show_bug.cgi?id=7708
> >
> > Summary: unregister_netdev() should return unregister_netdevice()
> > return code
> > Kernel Version: 2.6.19.1
> > Status: NEW
> > Severity: low
> > Owner: acme@conectiva.com.br
> > Submitter: benjamin.li@qlogic.com
> >
> >
> > net/core/dev.c:unregister_netdev() function is a wrapper around
> > net/core/dev.c:unregister_netdevice(). The unregister_netdevice() function
> > returns a return code while unregister_netdev() currently does not. For
> > completeness, we should pass the return code from unregister_netdevice() all the
> > way to the caller. unregister_netdev() should not swallow the return code.
> >
>
> Certainly there's some truth in that ;)
>
> Is there some reason why you want to test the unregister_netdev() return
> value?
The only return value is -ENODEV, so I would vote for both just being void
--
Stephen Hemminger <shemminger@osdl.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 7708] New: unregister_netdev() should return unregister_netdevice() return code
2006-12-18 23:50 ` Stephen Hemminger
@ 2006-12-19 1:37 ` David Miller
2006-12-19 5:05 ` [PATCH] net: unregister_netdevice as void Stephen Hemminger
0 siblings, 1 reply; 5+ messages in thread
From: David Miller @ 2006-12-19 1:37 UTC (permalink / raw)
To: shemminger; +Cc: akpm, benjamin.li, bugme-daemon, netdev
From: Stephen Hemminger <shemminger@osdl.org>
Date: Mon, 18 Dec 2006 15:50:57 -0800
> On Mon, 18 Dec 2006 15:21:11 -0800
> Andrew Morton <akpm@osdl.org> wrote:
>
> > > net/core/dev.c:unregister_netdev() function is a wrapper around
> > > net/core/dev.c:unregister_netdevice(). The unregister_netdevice() function
> > > returns a return code while unregister_netdev() currently does not. For
> > > completeness, we should pass the return code from unregister_netdevice() all the
> > > way to the caller. unregister_netdev() should not swallow the return code.
> > >
> >
> > Certainly there's some truth in that ;)
> >
> > Is there some reason why you want to test the unregister_netdev() return
> > value?
> The only return value is -ENODEV, so I would vote for both just being void
Me too.
FWIW, I think bug reports like this are a lot of back-and-forth waste
of time. If it's important enough to someone, let them write a
god-damn patch for something so amazingly trivial. With the bugzill
entry, you have to respond to it, change it's diapers, etc.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] net: unregister_netdevice as void
2006-12-19 1:37 ` David Miller
@ 2006-12-19 5:05 ` Stephen Hemminger
2007-02-07 8:10 ` David Miller
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Hemminger @ 2006-12-19 5:05 UTC (permalink / raw)
To: David Miller; +Cc: akpm, benjamin.li, bugme-daemon, netdev
There was no real useful information from the unregister_netdevice() return
code, the only error occurred in a situation that was a driver bug. So
change it to a void function.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
---
include/linux/netdevice.h | 2 +-
net/core/dev.c | 15 ++++++---------
net/ipv4/ip_gre.c | 3 ++-
net/ipv4/ipip.c | 3 ++-
net/ipv6/ip6_tunnel.c | 3 ++-
net/ipv6/sit.c | 3 ++-
6 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 6be767c..e16d66e 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -588,7 +588,7 @@ extern int dev_open(struct net_device *
extern int dev_close(struct net_device *dev);
extern int dev_queue_xmit(struct sk_buff *skb);
extern int register_netdevice(struct net_device *dev);
-extern int unregister_netdevice(struct net_device *dev);
+extern void unregister_netdevice(struct net_device *dev);
extern void free_netdev(struct net_device *dev);
extern void synchronize_net(void);
extern int register_netdevice_notifier(struct notifier_block *nb);
diff --git a/net/core/dev.c b/net/core/dev.c
index e660cb5..4a8a7fd 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3247,7 +3247,7 @@ void synchronize_net(void)
* unregister_netdev() instead of this.
*/
-int unregister_netdevice(struct net_device *dev)
+void unregister_netdevice(struct net_device *dev)
{
struct net_device *d, **dp;
@@ -3258,8 +3258,10 @@ int unregister_netdevice(struct net_devi
if (dev->reg_state == NETREG_UNINITIALIZED) {
printk(KERN_DEBUG "unregister_netdevice: device %s/%p never "
"was registered\n", dev->name, dev);
- return -ENODEV;
- }
+
+ WARN_ON(1);
+ return;
+ }
BUG_ON(dev->reg_state != NETREG_REGISTERED);
@@ -3280,11 +3282,7 @@ int unregister_netdevice(struct net_devi
break;
}
}
- if (!d) {
- printk(KERN_ERR "unregister net_device: '%s' not found\n",
- dev->name);
- return -ENODEV;
- }
+ BUG_ON(!d);
dev->reg_state = NETREG_UNREGISTERING;
@@ -3316,7 +3314,6 @@ int unregister_netdevice(struct net_devi
synchronize_net();
dev_put(dev);
- return 0;
}
/**
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 476cb60..51c8350 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1008,7 +1008,8 @@ ipgre_tunnel_ioctl (struct net_device *d
goto done;
dev = t->dev;
}
- err = unregister_netdevice(dev);
+ unregister_netdevice(dev);
+ err = 0;
break;
default:
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 9d719d6..da8bbd2 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -754,7 +754,8 @@ ipip_tunnel_ioctl (struct net_device *de
goto done;
dev = t->dev;
}
- err = unregister_netdevice(dev);
+ unregister_netdevice(dev);
+ err = 0;
break;
default:
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
index 8d91834..2b9e3bb 100644
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -999,7 +999,8 @@ ip6ip6_tnl_ioctl(struct net_device *dev,
break;
dev = t->dev;
}
- err = unregister_netdevice(dev);
+ err = 0;
+ unregister_netdevice(dev);
break;
default:
err = -EINVAL;
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 77b7b09..47cfead 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -686,7 +686,8 @@ ipip6_tunnel_ioctl (struct net_device *d
goto done;
dev = t->dev;
}
- err = unregister_netdevice(dev);
+ unregister_netdevice(dev);
+ err = 0;
break;
default:
--
1.4.2.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] net: unregister_netdevice as void
2006-12-19 5:05 ` [PATCH] net: unregister_netdevice as void Stephen Hemminger
@ 2007-02-07 8:10 ` David Miller
0 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2007-02-07 8:10 UTC (permalink / raw)
To: shemminger; +Cc: akpm, benjamin.li, bugme-daemon, netdev
From: Stephen Hemminger <shemminger@osdl.org>
Date: Mon, 18 Dec 2006 21:05:11 -0800
> There was no real useful information from the unregister_netdevice() return
> code, the only error occurred in a situation that was a driver bug. So
> change it to a void function.
>
> Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Applied to net-2.6.21, thanks Stephen.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-02-07 8:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200612182256.kBIMuVio025766@fire-2.osdl.org>
2006-12-18 23:21 ` [Bugme-new] [Bug 7708] New: unregister_netdev() should return unregister_netdevice() return code Andrew Morton
2006-12-18 23:50 ` Stephen Hemminger
2006-12-19 1:37 ` David Miller
2006-12-19 5:05 ` [PATCH] net: unregister_netdevice as void Stephen Hemminger
2007-02-07 8:10 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).