ctcm_fsms: Convert skb->user accesses to refcount_t
Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@ -217,7 +217,7 @@ void ctcm_purge_skb_queue(struct sk_buff_head *q)
|
|||||||
CTCM_DBF_TEXT(TRACE, CTC_DBF_DEBUG, __func__);
|
CTCM_DBF_TEXT(TRACE, CTC_DBF_DEBUG, __func__);
|
||||||
|
|
||||||
while ((skb = skb_dequeue(q))) {
|
while ((skb = skb_dequeue(q))) {
|
||||||
atomic_dec(&skb->users);
|
refcount_dec(&skb->users);
|
||||||
dev_kfree_skb_any(skb);
|
dev_kfree_skb_any(skb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -271,7 +271,7 @@ static void chx_txdone(fsm_instance *fi, int event, void *arg)
|
|||||||
priv->stats.tx_bytes += 2;
|
priv->stats.tx_bytes += 2;
|
||||||
first = 0;
|
first = 0;
|
||||||
}
|
}
|
||||||
atomic_dec(&skb->users);
|
refcount_dec(&skb->users);
|
||||||
dev_kfree_skb_irq(skb);
|
dev_kfree_skb_irq(skb);
|
||||||
}
|
}
|
||||||
spin_lock(&ch->collect_lock);
|
spin_lock(&ch->collect_lock);
|
||||||
@ -297,7 +297,7 @@ static void chx_txdone(fsm_instance *fi, int event, void *arg)
|
|||||||
skb_put(ch->trans_skb, skb->len), skb->len);
|
skb_put(ch->trans_skb, skb->len), skb->len);
|
||||||
priv->stats.tx_packets++;
|
priv->stats.tx_packets++;
|
||||||
priv->stats.tx_bytes += skb->len - LL_HEADER_LENGTH;
|
priv->stats.tx_bytes += skb->len - LL_HEADER_LENGTH;
|
||||||
atomic_dec(&skb->users);
|
refcount_dec(&skb->users);
|
||||||
dev_kfree_skb_irq(skb);
|
dev_kfree_skb_irq(skb);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
@ -1248,7 +1248,7 @@ static void ctcmpc_chx_txdone(fsm_instance *fi, int event, void *arg)
|
|||||||
priv->stats.tx_bytes += 2;
|
priv->stats.tx_bytes += 2;
|
||||||
first = 0;
|
first = 0;
|
||||||
}
|
}
|
||||||
atomic_dec(&skb->users);
|
refcount_dec(&skb->users);
|
||||||
dev_kfree_skb_irq(skb);
|
dev_kfree_skb_irq(skb);
|
||||||
}
|
}
|
||||||
spin_lock(&ch->collect_lock);
|
spin_lock(&ch->collect_lock);
|
||||||
@ -1298,7 +1298,7 @@ static void ctcmpc_chx_txdone(fsm_instance *fi, int event, void *arg)
|
|||||||
data_space -= skb->len;
|
data_space -= skb->len;
|
||||||
priv->stats.tx_packets++;
|
priv->stats.tx_packets++;
|
||||||
priv->stats.tx_bytes += skb->len;
|
priv->stats.tx_bytes += skb->len;
|
||||||
atomic_dec(&skb->users);
|
refcount_dec(&skb->users);
|
||||||
dev_kfree_skb_any(skb);
|
dev_kfree_skb_any(skb);
|
||||||
peekskb = skb_peek(&ch->collect_queue);
|
peekskb = skb_peek(&ch->collect_queue);
|
||||||
if (peekskb->len > data_space)
|
if (peekskb->len > data_space)
|
||||||
@ -1795,7 +1795,7 @@ static void ctcmpc_chx_send_sweep(fsm_instance *fsm, int event, void *arg)
|
|||||||
fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
|
fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
|
||||||
goto done;
|
goto done;
|
||||||
} else {
|
} else {
|
||||||
atomic_inc(&skb->users);
|
refcount_inc(&skb->users);
|
||||||
skb_queue_tail(&wch->io_queue, skb);
|
skb_queue_tail(&wch->io_queue, skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user