CTCM_DBF_TEXT(TRACE, CTC_DBF_DEBUG, __func__);
 
        while ((skb = skb_dequeue(q))) {
-               atomic_dec(&skb->users);
+               refcount_dec(&skb->users);
                dev_kfree_skb_any(skb);
        }
 }
                        priv->stats.tx_bytes += 2;
                        first = 0;
                }
-               atomic_dec(&skb->users);
+               refcount_dec(&skb->users);
                dev_kfree_skb_irq(skb);
        }
        spin_lock(&ch->collect_lock);
                                skb_put(ch->trans_skb, skb->len), skb->len);
                        priv->stats.tx_packets++;
                        priv->stats.tx_bytes += skb->len - LL_HEADER_LENGTH;
-                       atomic_dec(&skb->users);
+                       refcount_dec(&skb->users);
                        dev_kfree_skb_irq(skb);
                        i++;
                }
                        priv->stats.tx_bytes += 2;
                        first = 0;
                }
-               atomic_dec(&skb->users);
+               refcount_dec(&skb->users);
                dev_kfree_skb_irq(skb);
        }
        spin_lock(&ch->collect_lock);
                data_space -= skb->len;
                priv->stats.tx_packets++;
                priv->stats.tx_bytes += skb->len;
-               atomic_dec(&skb->users);
+               refcount_dec(&skb->users);
                dev_kfree_skb_any(skb);
                peekskb = skb_peek(&ch->collect_queue);
                if (peekskb->len > data_space)
                fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
                                goto done;
        } else {
-               atomic_inc(&skb->users);
+               refcount_inc(&skb->users);
                skb_queue_tail(&wch->io_queue, skb);
        }