Re: [PATCH 1/4] pch_gbe: Fix transmit queue management
From: David Miller <davem@davemloft.net>
Date: 2013-11-29 21:42:33
Also in:
lkml
From: David Miller <davem@davemloft.net>
Date: 2013-11-29 21:42:33
Also in:
lkml
From: Ondrej Puzman <redacted> Date: Thu, 28 Nov 2013 10:44:39 +0100
According to Documentation/networking/driver.txt the ndo_start_xmit method should not return NETDEV_TX_BUSY under normal circumstances. Stop the transmit queue when tx_ring is full.
Please format your commit message text to 80 columns.
Signed-off-by: Ondrej Puzman <redacted>
You should be instead preventing the transmit method from being invoked when it might be possible that a request cannot be satisfied. This means that at the end of a transmit request, you must stop the queue if a packet with the maximum number of possible descriptors cannot be satisfied. Then it is impossible for the transmit function to be invoked in a situation where it would need to fail for lack of available transmit descriptors. This is why drivers decided whether to stop their TX queues based upon calculations involving MAX_SKB_FRAGS.