int cnt = 0, frg_cnt; 
int cnt = 0; 
static void free_tx_buffers(struct s2io_nic *nic){	struct net_device *dev = nic->dev;	struct sk_buff *skb;	TxD_t *txdp;	int i, j;	mac_info_t *mac_control;	struct config_param *config;	int cnt = 0, frg_cnt;	mac_control = &nic->mac_control;	config = &nic->config;	for (i = 0; i < config->tx_fifo_num; i++) {		for (j = 0; j < config->tx_cfg[i].fifo_len - 1; j++) {			txdp = (TxD_t *) mac_control->fifos[i].list_info[j].			    list_virt_addr;			skb =			    (struct sk_buff *) ((unsigned long) txdp->						Host_Control);			if (skb == NULL) {				memset(txdp, 0, sizeof(TxD_t) *				       config->max_txds);				continue;			}			frg_cnt = skb_shinfo(skb)->nr_frags;			pci_unmap_single(nic->pdev, (dma_addr_t)					 txdp->Buffer_Pointer,					 skb->len - skb->data_len,					 PCI_DMA_TODEVICE);			if (frg_cnt) {				TxD_t *temp;				temp = txdp;				txdp++;				for (j = 0; j < frg_cnt; j++, txdp++) {					skb_frag_t *frag =					    &skb_shinfo(skb)->frags[j];					pci_unmap_page(nic->pdev,						       (dma_addr_t)						       txdp->						       Buffer_Pointer,						       frag->size,						       PCI_DMA_TODEVICE);				}				txdp = temp;			}			dev_kfree_skb(skb);			memset(txdp, 0, sizeof(TxD_t) * config->max_txds);			cnt++;		}		DBG_PRINT(INTR_DBG,			  "%s:forcibly freeing %d skbs on FIFO%d\n",			  dev->name, cnt, i);		mac_control->fifos[i].tx_curr_get_info.offset = 0;		mac_control->fifos[i].tx_curr_put_info.offset = 0;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/fed5eccdcf542742786701b2514b5cb7ab282b93/s2io.c/clean/drivers/net/s2io.c