net: delete duplicate dev_set_rx_mode() call
Subsystems (2)
v2 cover net: delete duplicate dev_set_rx_mode() call
This patchset delete duplicate dev_set_rx_mode() call, and it also make some functions return void instead of int.
Weiping Pan (2):
net: delete duplicate dev_set_rx_mode() call
net: make some functions return void
net/core/dev.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-)
Signature · 1 line
1.9.0
PATCH v2 1/2 net: delete duplicate dev_set_rx_mode() call
In __dev_open(), it already calls dev_set_rx_mode().
and dev_set_rx_mode() has no effect for a net device which does not have IFF_UP flag set.
So the call of dev_set_rx_mode() is duplicate in __dev_change_flags().
--- net/core/dev.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
net/core/dev.c +1 -5
@@ -5432,13 +5432,9 @@ int __dev_change_flags(struct net_device *dev, unsigned int flags)*/ ret =0 ; -if ((old_flags ^ flags) &IFF_UP ) {/* Bit is different ? */ +if ((old_flags ^ flags) &IFF_UP ) ret = ((old_flags &IFF_UP ) ? __dev_close : __dev_open)(dev); -if (!ret) -dev_set_rx_mode (dev); - } -if ((flags ^ dev->gflags) &IFF_PROMISC ) {int inc = (flags &IFF_PROMISC ) ?1 :-1 ;unsigned int old_flags = dev->flags;
Signature · 1 line
1.9.0
From: Weiping Pan <[email protected]>
Date: Mon, 16 Jun 2014 21:57:22 +0800
Quoted 7 lines
In
__dev_open(), it already callsdev_set_rx_mode().
anddev_set_rx_mode()has no effect for a net device which does not haveIFF_UPflag set.So the call of
dev_set_rx_mode()is duplicate in__dev_change_flags().Signed-off-by Weiping Pan <[email protected]>
Applied.
PATCH v2 2/2 net: make some functions return void
In reply to Weiping Pandev_close_many(), __dev_close_many() and __dev_close() do not need to return a int, so make them return void, and modify __dev_change_flags() accordingly.
--- net/core/dev.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-)
net/core/dev.c +8 -12
@@ -1305,7 +1305,7 @@ int dev_open(struct net_device *dev) }EXPORT_SYMBOL (dev_open); -static int __dev_close_many (struct list_head *head) +static void __dev_close_many (struct list_head *head) {struct net_device *dev;
@@ -1348,23 +1348,18 @@ static int __dev_close_many(struct list_head *head)net_dmaengine_put ();netpoll_poll_enable (dev); } - -return 0 ; } -static int __dev_close (struct net_device *dev) +static void __dev_close (struct net_device *dev) { -int retval;LIST_HEAD (single);list_add (&dev->close_list, &single); - retval =__dev_close_many (&single); +__dev_close_many (&single);list_del (&single); - -return retval; } -static int dev_close_many (struct list_head *head) +static void dev_close_many (struct list_head *head) {struct net_device *dev, *tmp;
@@ -1380,8 +1375,6 @@ static int dev_close_many(struct list_head *head)call_netdevice_notifiers (NETDEV_DOWN , dev);list_del_init (&dev->close_list); } - -return 0 ; }/**
@@ -5433,7 +5426,10 @@ int __dev_change_flags(struct net_device *dev, unsigned int flags) ret =0 ;if ((old_flags ^ flags) &IFF_UP ) - ret = ((old_flags &IFF_UP ) ? __dev_close : __dev_open)(dev); +if (old_flags &IFF_UP ) +__dev_close (dev); +else + ret =__dev_open (dev);if ((flags ^ dev->gflags) &IFF_PROMISC ) {int inc = (flags &IFF_PROMISC ) ?1 :-1 ;
Signature · 1 line
1.9.0
Re: [PATCH net 2/2] net: make some functions return void
Quoted 2 lines · Weiping Pan
dev_close_many(),__dev_close_many()and__dev_close()do not need to return a int, so make them return void, and modify__dev_change_flags()accordingly.
They may not need to return anything, but IMHO it is more logical to keep the returned type identical to dev_close().
Bjørn
David Miller
maintainerRe: [PATCH net 2/2] net: make some functions return void
In reply to Weiping PanFrom: Weiping Pan <[email protected]>
Date: Mon, 16 Jun 2014 21:57:23 +0800
Quoted 4 lines
dev_close_many(),__dev_close_many()and__dev_close()do not need to return a int, so make them return void, and modify__dev_change_flags()accordingly.Signed-off-by Weiping Pan <[email protected]>
I agree with other reviewers that this doesn't make much sense and it's better to have the close functions have consistent return types.
I'm not applying this, sorry.
Quoted 3 lines · Weiping Pan
This patchset delete duplicate
dev_set_rx_mode()call, and it also make some functions return void instead of int.
Why for -net not -net-next?
This probably doesn't fix any bug, at least the second one.