summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDaniel Mack2013-03-12 07:31:19 +0100
committerDavid S. Miller2013-03-13 09:47:18 +0100
commitd35162f89b8f00537d7b240b76d2d0e8b8d29aa0 (patch)
tree115ab859c528b0a5bf51296528f5006de009e99f /drivers
parentnet/core: move vlan_depth out of while loop in skb_network_protocol() (diff)
downloadkernel-qcow2-linux-d35162f89b8f00537d7b240b76d2d0e8b8d29aa0.tar.gz
kernel-qcow2-linux-d35162f89b8f00537d7b240b76d2d0e8b8d29aa0.tar.xz
kernel-qcow2-linux-d35162f89b8f00537d7b240b76d2d0e8b8d29aa0.zip
net: ethernet: cpsw: fix usage of cpdma_check_free_tx_desc()
Commit fae50823d0 ("net: ethernet: davinci_cpdma: Add boundary for rx and tx descriptors") introduced a function to check the current allocation state of tx packets. The return value is taken into account to stop the netqork queue on the adapter in case there are no free slots. However, cpdma_check_free_tx_desc() returns 'true' if there is room in the bitmap, not 'false', so the usage of the function is wrong. Signed-off-by: Daniel Mack <zonque@gmail.com> Cc: Mugunthan V N <mugunthanvnm@ti.com> Reported-by: Sven Neumann <s.neumann@raumfeld.com> Reported-by: Andreas Fenkart <andreas.fenkart@streamunlimited.com> Tested-by: Mugunthan V N <mugunthanvnm@ti.com> Acked-by: Mugunthan V N <mugunthanvnm@ti.com> Tested-by: Andreas Fenkart <andreas.fenkart@streamunlimited.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/ti/cpsw.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 01ffbc486982..75c48558e6fd 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -905,7 +905,7 @@ static netdev_tx_t cpsw_ndo_start_xmit(struct sk_buff *skb,
/* If there is no more tx desc left free then we need to
* tell the kernel to stop sending us tx frames.
*/
- if (unlikely(cpdma_check_free_tx_desc(priv->txch)))
+ if (unlikely(!cpdma_check_free_tx_desc(priv->txch)))
netif_stop_queue(ndev);
return NETDEV_TX_OK;