Subject: Re: [PATCH][NET-2.6.24] Remove double dev->flags checking when calling dev_close()

From: Jeff Garzik <[email-masked]>
Date: Tue, 09 Oct 2007 07:33:14 -0400

Pavel Emelyanov wrote:
> The unregister_netdevice() and dev_change_net_namespace() 
> both check for dev->flags to be IFF_UP before calling the 
> dev_close(), but the dev_close() checks for IFF_UP itself, 
> so remove those unneeded checks.
> 
> Signed-off-by: Pavel Emelyanov <[email-masked]>
> 
> ---
> 
> diff --git a/net/core/dev.c b/net/core/dev.c
> index e7e728a..1e169a5 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -3893,8 +3893,7 @@ void unregister_netdevice(struct net_dev
>  	BUG_ON(dev->reg_state != NETREG_REGISTERED);
>  
>  	/* If device is running, close it first. */
> -	if (dev->flags & IFF_UP)
> -		dev_close(dev);
> +	dev_close(dev);
>  
>  	/* And unlink it from device chain. */
>  	unlist_netdevice(dev);
> @@ -4018,8 +4017,7 @@ int dev_change_net_namespace(struct net_
>  	 */
>  
>  	/* If device is running close it first. */
> -	if (dev->flags & IFF_UP)
> -		dev_close(dev);
> +	dev_close(dev);
>  
>  	/* And unlink it from device chain */
>  	err = -ENODEV;

One side effect of this patch:  might_sleep() is now called unconditionally.

If that is irrelevant... ACK.