From: John Crispin <john@phrozen.org> To: "David S. Miller" <davem@davemloft.net> Cc: Felix Fietkau <nbd@nbd.name>, Sean Wang <keyhaede@gmail.com>, netdev@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, John Crispin <john@phrozen.org> Subject: [PATCH V2 09/11] net: mediatek: fix off by one in the TX ring allocation Date: Fri, 10 Jun 2016 13:28:06 +0200 [thread overview] Message-ID: <1465558088-15265-10-git-send-email-john@phrozen.org> (raw) In-Reply-To: <1465558088-15265-1-git-send-email-john@phrozen.org> The TX ring setup has an off by one error causing it to not utilise all descriptors. This has the side effect that we need to reset the next pointer at runtime to make it work. Fix the off by one and remove the code fixing the ring at runtime. Signed-off-by: John Crispin <john@phrozen.org> --- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index 24714ab..6daf48b 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -903,7 +903,6 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again) } mtk_tx_unmap(eth->dev, tx_buf); - ring->last_free->txd2 = next_cpu; ring->last_free = desc; atomic_inc(&ring->free_count); @@ -1011,7 +1010,7 @@ static int mtk_tx_alloc(struct mtk_eth *eth) atomic_set(&ring->free_count, MTK_DMA_SIZE - 2); ring->next_free = &ring->dma[0]; - ring->last_free = &ring->dma[MTK_DMA_SIZE - 2]; + ring->last_free = &ring->dma[MTK_DMA_SIZE - 1]; ring->thresh = MAX_SKB_FRAGS; /* make sure that all changes to the dma ring are flushed before we -- 1.7.10.4
WARNING: multiple messages have this Message-ID (diff)
From: John Crispin <john-Pj+rj9U5foFAfugRpC6u6w@public.gmane.org> To: "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org> Cc: Sean Wang <keyhaede-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, John Crispin <john-Pj+rj9U5foFAfugRpC6u6w@public.gmane.org>, Felix Fietkau <nbd-Vt+b4OUoWG0@public.gmane.org> Subject: [PATCH V2 09/11] net: mediatek: fix off by one in the TX ring allocation Date: Fri, 10 Jun 2016 13:28:06 +0200 [thread overview] Message-ID: <1465558088-15265-10-git-send-email-john@phrozen.org> (raw) In-Reply-To: <1465558088-15265-1-git-send-email-john-Pj+rj9U5foFAfugRpC6u6w@public.gmane.org> The TX ring setup has an off by one error causing it to not utilise all descriptors. This has the side effect that we need to reset the next pointer at runtime to make it work. Fix the off by one and remove the code fixing the ring at runtime. Signed-off-by: John Crispin <john-Pj+rj9U5foFAfugRpC6u6w@public.gmane.org> --- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index 24714ab..6daf48b 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -903,7 +903,6 @@ static int mtk_poll_tx(struct mtk_eth *eth, int budget, bool *tx_again) } mtk_tx_unmap(eth->dev, tx_buf); - ring->last_free->txd2 = next_cpu; ring->last_free = desc; atomic_inc(&ring->free_count); @@ -1011,7 +1010,7 @@ static int mtk_tx_alloc(struct mtk_eth *eth) atomic_set(&ring->free_count, MTK_DMA_SIZE - 2); ring->next_free = &ring->dma[0]; - ring->last_free = &ring->dma[MTK_DMA_SIZE - 2]; + ring->last_free = &ring->dma[MTK_DMA_SIZE - 1]; ring->thresh = MAX_SKB_FRAGS; /* make sure that all changes to the dma ring are flushed before we -- 1.7.10.4
next prev parent reply other threads:[~2016-06-10 11:29 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-06-10 11:27 [PATCH V2 00/11] net: mediatek: various small fixes John Crispin 2016-06-10 11:27 ` John Crispin 2016-06-10 11:27 ` [PATCH V2 01/11] net: mediatek: add missing return code check John Crispin 2016-06-10 11:27 ` John Crispin 2016-06-10 11:27 ` [PATCH V2 02/11] net: mediatek: fix missing free of scratch memory John Crispin 2016-06-10 11:27 ` John Crispin 2016-06-10 11:28 ` [PATCH V2 03/11] net: mediatek: invalid buffer lookup in mtk_tx_map() John Crispin 2016-06-10 11:28 ` John Crispin 2016-06-10 11:28 ` [PATCH V2 04/11] net: mediatek: dropped rx packets are not being counted properly John Crispin 2016-06-10 11:28 ` John Crispin 2016-06-10 11:28 ` [PATCH V2 05/11] net: mediatek: add next data pointer coherency protection John Crispin 2016-06-10 11:28 ` John Crispin 2016-06-10 11:28 ` [PATCH V2 06/11] net: mediatek: disable all interrupts during probe John Crispin 2016-06-10 11:28 ` John Crispin 2016-06-10 11:28 ` [PATCH V2 07/11] net: mediatek: fix threshold value John Crispin 2016-06-10 11:28 ` [PATCH V2 08/11] net: mediatek: increase watchdog_timeo John Crispin 2016-06-10 11:28 ` John Crispin [this message] 2016-06-10 11:28 ` [PATCH V2 09/11] net: mediatek: fix off by one in the TX ring allocation John Crispin 2016-06-10 11:28 ` [PATCH V2 10/11] net: mediatek: only wake the queue if it is stopped John Crispin 2016-06-10 11:28 ` [PATCH V2 11/11] net: mediatek: remove superfluous queue wake up call John Crispin 2016-06-10 11:30 ` [PATCH V2 00/11] net: mediatek: various small fixes John Crispin 2016-06-10 17:46 ` David Miller 2016-06-10 17:50 ` John Crispin 2016-06-11 6:30 ` David Miller
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1465558088-15265-10-git-send-email-john@phrozen.org \ --to=john@phrozen.org \ --cc=davem@davemloft.net \ --cc=keyhaede@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=nbd@nbd.name \ --cc=netdev@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.