diff options
Diffstat (limited to 'net/atm/common.c')
| -rw-r--r-- | net/atm/common.c | 20 | 
1 files changed, 10 insertions, 10 deletions
diff --git a/net/atm/common.c b/net/atm/common.c index 0ce530af534d..8575f5d52087 100644 --- a/net/atm/common.c +++ b/net/atm/common.c @@ -177,18 +177,18 @@ static void vcc_destroy_socket(struct sock *sk)  	set_bit(ATM_VF_CLOSE, &vcc->flags);  	clear_bit(ATM_VF_READY, &vcc->flags); -	if (vcc->dev) { -		if (vcc->dev->ops->close) -			vcc->dev->ops->close(vcc); -		if (vcc->push) -			vcc->push(vcc, NULL); /* atmarpd has no push */ -		module_put(vcc->owner); +	if (vcc->dev && vcc->dev->ops->close) +		vcc->dev->ops->close(vcc); +	if (vcc->push) +		vcc->push(vcc, NULL); /* atmarpd has no push */ +	module_put(vcc->owner); -		while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) { -			atm_return(vcc, skb->truesize); -			kfree_skb(skb); -		} +	while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) { +		atm_return(vcc, skb->truesize); +		kfree_skb(skb); +	} +	if (vcc->dev && vcc->dev->ops->owner) {  		module_put(vcc->dev->ops->owner);  		atm_dev_put(vcc->dev);  	}  | 
