FreeSkb(skb); 
dev_kfree_skb(skb); 
l2_st7_got_super(struct FsmInst *fi, int event, void *arg){	struct PStack *st = fi->userdata;	struct sk_buff *skb = arg;	int PollFlag, rsp, typ = RR;	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);		typ = RNR;	} else		clear_peer_busy(l2);	if (IsREJ(skb->data, st))		typ = REJ;	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 (PollFlag) {		if (rsp)			st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'A');		else			enquiry_response(st);	}	if (legalnr(st, nr)) {		if (typ == REJ) {			setva(st, nr);			invoke_retransmission(st, nr);			stop_t200(st, 10);			if (FsmAddTimer(&st->l2.t203, st->l2.T203,					EV_L2_T203, NULL, 6))				l2m_debug(&st->l2.l2m, "Restart T203 ST7 REJ");		} else if ((nr == l2->vs) && (typ == RR)) {			setva(st, nr);			stop_t200(st, 11);			FsmRestartTimer(&st->l2.t203, st->l2.T203,					EV_L2_T203, NULL, 7);		} else if ((l2->va != nr) || (typ == RNR)) {			setva(st, nr);			if(typ != RR) FsmDelTimer(&st->l2.t203, 9);			restart_t200(st, 12);		}		if (skb_queue_len(&st->l2.i_queue) && (typ == RR))			st->l2.l2l1(st, PH_PULL | REQUEST, NULL);	} else		nrerrorrecovery(fi);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/672c3fd9069e5a138f9d4afc9aeb5aa34aacce32/isdnl2.c/buggy/drivers/isdn/hisax/isdnl2.c