]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net: ethernet: oa_tc6: fix infinite loop error when tx credits becomes 0
authorParthiban Veerasooran <parthiban.veerasooran@microchip.com>
Fri, 13 Dec 2024 12:31:58 +0000 (18:01 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Dec 2024 13:02:04 +0000 (14:02 +0100)
commitb15b0df3967e5de43e1638bb152c575ae60062d1
tree8c265c092347ede6949dd9b522e650dcc51f7307
parent9f88db1b771b7ca2cee77e807fe9598dfab0da2a
net: ethernet: oa_tc6: fix infinite loop error when tx credits becomes 0

[ Upstream commit 7d2f320e12744e5906a4fab40381060a81d22c12 ]

SPI thread wakes up to perform SPI transfer whenever there is an TX skb
from n/w stack or interrupt from MAC-PHY. Ethernet frame from TX skb is
transferred based on the availability tx credits in the MAC-PHY which is
reported from the previous SPI transfer. Sometimes there is a possibility
that TX skb is available to transmit but there is no tx credits from
MAC-PHY. In this case, there will not be any SPI transfer but the thread
will be running in an endless loop until tx credits available again.

So checking the availability of tx credits along with TX skb will prevent
the above infinite loop. When the tx credits available again that will be
notified through interrupt which will trigger the SPI transfer to get the
available tx credits.

Fixes: 53fbde8ab21e ("net: ethernet: oa_tc6: implement transmit path to transfer tx ethernet frames")
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/oa_tc6.c