FreeSkb(skb); 
dev_kfree_skb(skb); 
l2_st8_got_super(struct FsmInst *fi, int event, void *arg){	struct PStack *st = fi->userdata;	struct sk_buff *skb = arg;	int PollFlag, rsp, rnr = 0;	unsigned int nr;	struct Layer2 *l2 = &st->l2;	rsp = *skb->data & 0x2;	if (test_bit(FLG_ORIG, &l2->flag))		rsp = !rsp;	skb_pull(skb, l2addrsize(l2));	if (IsRNR(skb->data, st)) {		set_peer_busy(l2);		rnr = 1;	} else		clear_peer_busy(l2);	if (test_bit(FLG_MOD128, &l2->flag)) {		PollFlag = (skb->data[1] & 0x1) == 0x1;		nr = skb->data[1] >> 1;	} else {		PollFlag = (skb->data[0] & 0x10);		nr = (skb->data[0] >> 5) & 0x7;	}	FreeSkb(skb);	if (rsp && PollFlag) {		if (legalnr(st, nr)) {			if (rnr) {				restart_t200(st, 15);			} else {				stop_t200(st, 16);				FsmAddTimer(&l2->t203, l2->T203,					    EV_L2_T203, NULL, 5);				setva(st, nr);			}			invoke_retransmission(st, nr);			FsmChangeState(fi, ST_L2_7);			if (skb_queue_len(&l2->i_queue) && cansend(st))				st->l2.l2l1(st, PH_PULL | REQUEST, NULL);		} else			nrerrorrecovery(fi);	} else {		if (!rsp && PollFlag)			enquiry_response(st);		if (legalnr(st, nr)) {			setva(st, nr);		} else			nrerrorrecovery(fi);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/672c3fd9069e5a138f9d4afc9aeb5aa34aacce32/isdnl2.c/buggy/drivers/isdn/hisax/isdnl2.c