if (wp && wp->mbox) { 
if (wp) { 
static void release_driver(struct sock *sk){	wanpipe_opt *wp;	struct sk_buff *skb=NULL;	struct sock *deadsk=NULL;	if (sk->sk_state == WANSOCK_LISTEN ||	    sk->sk_state == WANSOCK_BIND_LISTEN) {		while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) {			if ((deadsk = get_newsk_from_skb(skb))){				DBG_PRINTK (KERN_INFO "wansock: RELEASE: FOUND DEAD SOCK\n");				sock_set_flag(deadsk, SOCK_DEAD);				start_cleanup_timer(deadsk);			}			kfree_skb(skb);		}		if (sock_flag(sk, SOCK_ZAPPED))			wanpipe_unlink_card(sk);	}else{		if (sock_flag(sk, SOCK_ZAPPED))			wanpipe_unlink_driver(sk);	}	sk->sk_state	    = WANSOCK_DISCONNECTED;	sk->sk_bound_dev_if = 0;	sock_reset_flag(sk, SOCK_ZAPPED);	wp = wp_sk(sk);	if (wp && wp->mbox) {		kfree(wp->mbox);		wp->mbox = NULL;	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a51482bde22f99c63fbbb57d5d46cc666384e379/af_wanpipe.c/clean/net/wanrouter/af_wanpipe.c