#undef GENERAL_DEBUG
 #undef EXTRA_DEBUG
 
-#undef NS_USE_DESTRUCTORS      /* For now keep this undefined unless you know
-                                  you're going to use only raw ATM */
-
 /* Do not touch these */
 
 #ifdef TX_DEBUG
 static void drain_scq(ns_dev * card, scq_info * scq, int pos);
 static void process_rsq(ns_dev * card);
 static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe);
-#ifdef NS_USE_DESTRUCTORS
-static void ns_sb_destructor(struct sk_buff *sb);
-static void ns_lb_destructor(struct sk_buff *lb);
-static void ns_hb_destructor(struct sk_buff *hb);
-#endif /* NS_USE_DESTRUCTORS */
 static void recycle_rx_buf(ns_dev * card, struct sk_buff *skb);
 static void recycle_iovec_rx_bufs(ns_dev * card, struct iovec *iov, int count);
 static void recycle_iov_buf(ns_dev * card, struct sk_buff *iovb);
                        } else {
                                skb_put(skb, len);
                                dequeue_sm_buf(card, skb);
-#ifdef NS_USE_DESTRUCTORS
-                               skb->destructor = ns_sb_destructor;
-#endif /* NS_USE_DESTRUCTORS */
                                ATM_SKB(skb)->vcc = vcc;
                                __net_timestamp(skb);
                                vcc->push(vcc, skb);
                                } else {
                                        skb_put(sb, len);
                                        dequeue_sm_buf(card, sb);
-#ifdef NS_USE_DESTRUCTORS
-                                       sb->destructor = ns_sb_destructor;
-#endif /* NS_USE_DESTRUCTORS */
                                        ATM_SKB(sb)->vcc = vcc;
                                        __net_timestamp(sb);
                                        vcc->push(vcc, sb);
                                        atomic_inc(&vcc->stats->rx_drop);
                                } else {
                                        dequeue_lg_buf(card, skb);
-#ifdef NS_USE_DESTRUCTORS
-                                       skb->destructor = ns_lb_destructor;
-#endif /* NS_USE_DESTRUCTORS */
                                        skb_push(skb, NS_SMBUFSIZE);
                                        skb_copy_from_linear_data(sb, skb->data,
                                                                  NS_SMBUFSIZE);
                                             card->index);
 #endif /* EXTRA_DEBUG */
                                ATM_SKB(hb)->vcc = vcc;
-#ifdef NS_USE_DESTRUCTORS
-                               hb->destructor = ns_hb_destructor;
-#endif /* NS_USE_DESTRUCTORS */
                                __net_timestamp(hb);
                                vcc->push(vcc, hb);
                                atomic_inc(&vcc->stats->rx);
 
 }
 
-#ifdef NS_USE_DESTRUCTORS
-
-static void ns_sb_destructor(struct sk_buff *sb)
-{
-       ns_dev *card;
-       u32 stat;
-
-       card = (ns_dev *) ATM_SKB(sb)->vcc->dev->dev_data;
-       stat = readl(card->membase + STAT);
-       card->sbfqc = ns_stat_sfbqc_get(stat);
-       card->lbfqc = ns_stat_lfbqc_get(stat);
-
-       do {
-               sb = __dev_alloc_skb(NS_SMSKBSIZE, GFP_KERNEL);
-               if (sb == NULL)
-                       break;
-               NS_PRV_BUFTYPE(sb) = BUF_SM;
-               skb_queue_tail(&card->sbpool.queue, sb);
-               skb_reserve(sb, NS_AAL0_HEADER);
-               push_rxbufs(card, sb);
-       } while (card->sbfqc < card->sbnr.min);
-}
-
-static void ns_lb_destructor(struct sk_buff *lb)
-{
-       ns_dev *card;
-       u32 stat;
-
-       card = (ns_dev *) ATM_SKB(lb)->vcc->dev->dev_data;
-       stat = readl(card->membase + STAT);
-       card->sbfqc = ns_stat_sfbqc_get(stat);
-       card->lbfqc = ns_stat_lfbqc_get(stat);
-
-       do {
-               lb = __dev_alloc_skb(NS_LGSKBSIZE, GFP_KERNEL);
-               if (lb == NULL)
-                       break;
-               NS_PRV_BUFTYPE(lb) = BUF_LG;
-               skb_queue_tail(&card->lbpool.queue, lb);
-               skb_reserve(lb, NS_SMBUFSIZE);
-               push_rxbufs(card, lb);
-       } while (card->lbfqc < card->lbnr.min);
-}
-
-static void ns_hb_destructor(struct sk_buff *hb)
-{
-       ns_dev *card;
-
-       card = (ns_dev *) ATM_SKB(hb)->vcc->dev->dev_data;
-
-       while (card->hbpool.count < card->hbnr.init) {
-               hb = __dev_alloc_skb(NS_HBUFSIZE, GFP_KERNEL);
-               if (hb == NULL)
-                       break;
-               NS_PRV_BUFTYPE(hb) = BUF_NONE;
-               skb_queue_tail(&card->hbpool.queue, hb);
-               card->hbpool.count++;
-       }
-}
-
-#endif /* NS_USE_DESTRUCTORS */
-
 static void recycle_rx_buf(ns_dev * card, struct sk_buff *skb)
 {
        if (unlikely(NS_PRV_BUFTYPE(skb) == BUF_NONE)) {
 static void dequeue_sm_buf(ns_dev * card, struct sk_buff *sb)
 {
        skb_unlink(sb, &card->sbpool.queue);
-#ifdef NS_USE_DESTRUCTORS
-       if (card->sbfqc < card->sbnr.min)
-#else
        if (card->sbfqc < card->sbnr.init) {
                struct sk_buff *new_sb;
                if ((new_sb = dev_alloc_skb(NS_SMSKBSIZE)) != NULL) {
                }
        }
        if (card->sbfqc < card->sbnr.init)
-#endif /* NS_USE_DESTRUCTORS */
        {
                struct sk_buff *new_sb;
                if ((new_sb = dev_alloc_skb(NS_SMSKBSIZE)) != NULL) {
 static void dequeue_lg_buf(ns_dev * card, struct sk_buff *lb)
 {
        skb_unlink(lb, &card->lbpool.queue);
-#ifdef NS_USE_DESTRUCTORS
-       if (card->lbfqc < card->lbnr.min)
-#else
        if (card->lbfqc < card->lbnr.init) {
                struct sk_buff *new_lb;
                if ((new_lb = dev_alloc_skb(NS_LGSKBSIZE)) != NULL) {
                }
        }
        if (card->lbfqc < card->lbnr.init)
-#endif /* NS_USE_DESTRUCTORS */
        {
                struct sk_buff *new_lb;
                if ((new_lb = dev_alloc_skb(NS_LGSKBSIZE)) != NULL) {