[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20221208083355.7ca2a99a@kernel.org>
Date: Thu, 8 Dec 2022 08:33:55 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: Yang Yingliang <yangyingliang@...wei.com>
Cc: Leon Romanovsky <leon@...nel.org>, <netdev@...r.kernel.org>,
<davem@...emloft.net>, <edumazet@...gle.com>, <pabeni@...hat.com>
Subject: Re: [PATCH net v2 1/2] net: apple: mace: don't call dev_kfree_skb()
under spin_lock_irqsave()
On Thu, 8 Dec 2022 16:39:03 +0800 Yang Yingliang wrote:
> >> @@ -846,7 +846,7 @@ static void mace_tx_timeout(struct timer_list *t)
> >> if (mp->tx_bad_runt) {
> >> mp->tx_bad_runt = 0;
> >> } else if (i != mp->tx_fill) {
> >> - dev_kfree_skb(mp->tx_bufs[i]);
> >> + dev_consume_skb_irq(mp->tx_bufs[i]);
> > Same question, why did you chose dev_consume_skb_irq and not dev_kfree_skb_irq?
> I chose dev_consume_skb_irq(), because dev_kfree_skb() is consume_skb().
kfree_skb() should be used on error paths, when packet is dropped.
consume_skb() on normal paths, when packet left the system successfully.
dev_kfree* helpers probably default to consume_skb() to avoid spamming
drop monitor, but switching to dev_consume explicitly is not right.
Powered by blists - more mailing lists