/* Unlink tx_skb from list */ tx_skb->next = tx_skb->prev = NULL; tx_skb->list = NULL; 
void irlap_resend_rejected_frames(struct irlap_cb *self, int command){	struct sk_buff *tx_skb;	struct sk_buff *skb;	int count;	IRDA_ASSERT(self != NULL, return;);	IRDA_ASSERT(self->magic == LAP_MAGIC, return;);	/* Initialize variables */	count = skb_queue_len(&self->wx_list);	/*  Resend unacknowledged frame(s) */	skb = skb_peek(&self->wx_list);	while (skb != NULL) {		irlap_wait_min_turn_around(self, &self->qos_tx);		/* We copy the skb to be retransmitted since we will have to		 * modify it. Cloning will confuse packet sniffers		 */		/* tx_skb = skb_clone( skb, GFP_ATOMIC); */		tx_skb = skb_copy(skb, GFP_ATOMIC);		if (!tx_skb) {			IRDA_DEBUG(0, "%s(), unable to copy\n", __FUNCTION__);			return;		}		/* Unlink tx_skb from list */		tx_skb->next = tx_skb->prev = NULL;		tx_skb->list = NULL;		/* Clear old Nr field + poll bit */		tx_skb->data[1] &= 0x0f;		/*		 *  Set poll bit on the last frame retransmitted		 */		if (count-- == 1)			tx_skb->data[1] |= PF_BIT; /* Set p/f bit */		else			tx_skb->data[1] &= ~PF_BIT; /* Clear p/f bit */		irlap_send_i_frame(self, tx_skb, command);		/*		 *  If our skb is the last buffer in the list, then		 *  we are finished, if not, move to the next sk-buffer		 */		if (skb == skb_peek_tail(&self->wx_list))			skb = NULL;		else			skb = skb->next;	}#if 0 /* Not yet */	/*	 *  We can now fill the window with additional data frames	 */	while (!skb_queue_empty(&self->txq)) {		IRDA_DEBUG(0, "%s(), sending additional frames!\n", __FUNCTION__);		if (self->window > 0) {			skb = skb_dequeue( &self->txq);			IRDA_ASSERT(skb != NULL, return;);			/*			 *  If send window > 1 then send frame with pf			 *  bit cleared			 */			if ((self->window > 1) &&			    !skb_queue_empty(&self->txq)) {				irlap_send_data_primary(self, skb);			} else {				irlap_send_data_primary_poll(self, skb);			}			kfree_skb(skb);		}	}#endif}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8728b834b226ffcf2c94a58530090e292af2a7bf/irlap_frame.c/clean/net/irda/irlap_frame.c