if (type == BUF_SM) 
if (cb->buf_type == BUF_SM) 
static void push_rxbufs(ns_dev *card, u32 type, u32 handle1, u32 addr1,                       u32 handle2, u32 addr2){   u32 stat;   unsigned long flags;   #ifdef GENERAL_DEBUG   if (!addr1)      printk("nicstar%d: push_rxbufs called with addr1 = 0.\n", card->index);#endif /* GENERAL_DEBUG */   stat = readl(card->membase + STAT);   card->sbfqc = ns_stat_sfbqc_get(stat);   card->lbfqc = ns_stat_lfbqc_get(stat);   if (type == BUF_SM)   {      if (!addr2)      {         if (card->sm_addr)	 {	    addr2 = card->sm_addr;	    handle2 = card->sm_handle;	    card->sm_addr = 0x00000000;	    card->sm_handle = 0x00000000;	 }	 else /* (!sm_addr) */	 {	    card->sm_addr = addr1;	    card->sm_handle = handle1;	 }      }         }   else /* type == BUF_LG */   {      if (!addr2)      {         if (card->lg_addr)	 {	    addr2 = card->lg_addr;	    handle2 = card->lg_handle;	    card->lg_addr = 0x00000000;	    card->lg_handle = 0x00000000;	 }	 else /* (!lg_addr) */	 {	    card->lg_addr = addr1;	    card->lg_handle = handle1;	 }      }         }   if (addr2)   {      if (type == BUF_SM)      {         if (card->sbfqc >= card->sbnr.max)         {            skb_unlink((struct sk_buff *) handle1);            dev_kfree_skb_any((struct sk_buff *) handle1);            skb_unlink((struct sk_buff *) handle2);            dev_kfree_skb_any((struct sk_buff *) handle2);            return;         }	 else            card->sbfqc += 2;      }      else /* (type == BUF_LG) */      {         if (card->lbfqc >= card->lbnr.max)         {            skb_unlink((struct sk_buff *) handle1);            dev_kfree_skb_any((struct sk_buff *) handle1);            skb_unlink((struct sk_buff *) handle2);            dev_kfree_skb_any((struct sk_buff *) handle2);            return;         }         else            card->lbfqc += 2;      }      ns_grab_res_lock(card, flags);      while (CMD_BUSY(card));      writel(addr2, card->membase + DR3);      writel(handle2, card->membase + DR2);      writel(addr1, card->membase + DR1);      writel(handle1, card->membase + DR0);      writel(NS_CMD_WRITE_FREEBUFQ | (u32) type, card->membase + CMD);       spin_unlock_irqrestore(&card->res_lock, flags);      XPRINTK("nicstar%d: Pushing %s buffers at 0x%x and 0x%x.\n", card->index,              (type == BUF_SM ? "small" : "large"), addr1, addr2);   }   if (!card->efbie && card->sbfqc >= card->sbnr.min &&       card->lbfqc >= card->lbnr.min)   {      card->efbie = 1;      writel((readl(card->membase + CFG) | NS_CFG_EFBIE), card->membase + CFG);   }   return;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8728b834b226ffcf2c94a58530090e292af2a7bf/nicstar.c/buggy/drivers/atm/nicstar.c