diff options
author | Florian Westphal <fw@strlen.de> | 2016-04-24 15:38:12 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-04-26 15:53:05 -0400 |
commit | 926f27300100f4233c7665649f68fcf615f58d68 (patch) | |
tree | 58af43e4fc60545d7d6514e23e4061108561b89d | |
parent | 4acff371f2e3f386422253c7fce0092a793ec1a4 (diff) |
drivers: net: use NETDEV_TX_OK instead of NETDEV_TX_LOCKED
These drivers already call netif_stop_queue() so we should not be called
unless tx space is available. Just free the skb and return TX_OK.
Followup patch will remove NETDEV_TX_LOCKED from the kernel.
Cc: linux-parisc@vger.kernel.org
Cc: linux-hams@vger.kernel.org
Cc: Thomas Sailer <t.sailer@alumni.ethz.ch>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/amd/7990.c | 8 | ||||
-rw-r--r-- | drivers/net/ethernet/amd/a2065.c | 7 | ||||
-rw-r--r-- | drivers/net/ethernet/dec/tulip/de4x5.c | 7 | ||||
-rw-r--r-- | drivers/net/hamradio/baycom_epp.c | 6 | ||||
-rw-r--r-- | drivers/net/hamradio/hdlcdrv.c | 6 |
5 files changed, 21 insertions, 13 deletions
diff --git a/drivers/net/ethernet/amd/7990.c b/drivers/net/ethernet/amd/7990.c index 66d0b73c39c0..8e7575571531 100644 --- a/drivers/net/ethernet/amd/7990.c +++ b/drivers/net/ethernet/amd/7990.c | |||
@@ -543,11 +543,13 @@ int lance_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
543 | static int outs; | 543 | static int outs; |
544 | unsigned long flags; | 544 | unsigned long flags; |
545 | 545 | ||
546 | if (!TX_BUFFS_AVAIL) | ||
547 | return NETDEV_TX_LOCKED; | ||
548 | |||
549 | netif_stop_queue(dev); | 546 | netif_stop_queue(dev); |
550 | 547 | ||
548 | if (!TX_BUFFS_AVAIL) { | ||
549 | dev_consume_skb_any(skb); | ||
550 | return NETDEV_TX_OK; | ||
551 | } | ||
552 | |||
551 | skblen = skb->len; | 553 | skblen = skb->len; |
552 | 554 | ||
553 | #ifdef DEBUG_DRIVER | 555 | #ifdef DEBUG_DRIVER |
diff --git a/drivers/net/ethernet/amd/a2065.c b/drivers/net/ethernet/amd/a2065.c index 56139184b801..2a18d34d2610 100644 --- a/drivers/net/ethernet/amd/a2065.c +++ b/drivers/net/ethernet/amd/a2065.c | |||
@@ -547,10 +547,8 @@ static netdev_tx_t lance_start_xmit(struct sk_buff *skb, | |||
547 | 547 | ||
548 | local_irq_save(flags); | 548 | local_irq_save(flags); |
549 | 549 | ||
550 | if (!lance_tx_buffs_avail(lp)) { | 550 | if (!lance_tx_buffs_avail(lp)) |
551 | local_irq_restore(flags); | 551 | goto out_free; |
552 | return NETDEV_TX_LOCKED; | ||
553 | } | ||
554 | 552 | ||
555 | #ifdef DEBUG | 553 | #ifdef DEBUG |
556 | /* dump the packet */ | 554 | /* dump the packet */ |
@@ -573,6 +571,7 @@ static netdev_tx_t lance_start_xmit(struct sk_buff *skb, | |||
573 | 571 | ||
574 | /* Kick the lance: transmit now */ | 572 | /* Kick the lance: transmit now */ |
575 | ll->rdp = LE_C0_INEA | LE_C0_TDMD; | 573 | ll->rdp = LE_C0_INEA | LE_C0_TDMD; |
574 | out_free: | ||
576 | dev_kfree_skb(skb); | 575 | dev_kfree_skb(skb); |
577 | 576 | ||
578 | local_irq_restore(flags); | 577 | local_irq_restore(flags); |
diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c index 3acde3b9b767..d88fbab378aa 100644 --- a/drivers/net/ethernet/dec/tulip/de4x5.c +++ b/drivers/net/ethernet/dec/tulip/de4x5.c | |||
@@ -1465,7 +1465,7 @@ de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev) | |||
1465 | 1465 | ||
1466 | netif_stop_queue(dev); | 1466 | netif_stop_queue(dev); |
1467 | if (!lp->tx_enable) /* Cannot send for now */ | 1467 | if (!lp->tx_enable) /* Cannot send for now */ |
1468 | return NETDEV_TX_LOCKED; | 1468 | goto tx_err; |
1469 | 1469 | ||
1470 | /* | 1470 | /* |
1471 | ** Clean out the TX ring asynchronously to interrupts - sometimes the | 1471 | ** Clean out the TX ring asynchronously to interrupts - sometimes the |
@@ -1478,7 +1478,7 @@ de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev) | |||
1478 | 1478 | ||
1479 | /* Test if cache is already locked - requeue skb if so */ | 1479 | /* Test if cache is already locked - requeue skb if so */ |
1480 | if (test_and_set_bit(0, (void *)&lp->cache.lock) && !lp->interrupt) | 1480 | if (test_and_set_bit(0, (void *)&lp->cache.lock) && !lp->interrupt) |
1481 | return NETDEV_TX_LOCKED; | 1481 | goto tx_err; |
1482 | 1482 | ||
1483 | /* Transmit descriptor ring full or stale skb */ | 1483 | /* Transmit descriptor ring full or stale skb */ |
1484 | if (netif_queue_stopped(dev) || (u_long) lp->tx_skb[lp->tx_new] > 1) { | 1484 | if (netif_queue_stopped(dev) || (u_long) lp->tx_skb[lp->tx_new] > 1) { |
@@ -1519,6 +1519,9 @@ de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev) | |||
1519 | lp->cache.lock = 0; | 1519 | lp->cache.lock = 0; |
1520 | 1520 | ||
1521 | return NETDEV_TX_OK; | 1521 | return NETDEV_TX_OK; |
1522 | tx_err: | ||
1523 | dev_kfree_skb_any(skb); | ||
1524 | return NETDEV_TX_OK; | ||
1522 | } | 1525 | } |
1523 | 1526 | ||
1524 | /* | 1527 | /* |
diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c index 72c9f1f352b4..eb6663866c9f 100644 --- a/drivers/net/hamradio/baycom_epp.c +++ b/drivers/net/hamradio/baycom_epp.c | |||
@@ -780,8 +780,10 @@ static int baycom_send_packet(struct sk_buff *skb, struct net_device *dev) | |||
780 | dev_kfree_skb(skb); | 780 | dev_kfree_skb(skb); |
781 | return NETDEV_TX_OK; | 781 | return NETDEV_TX_OK; |
782 | } | 782 | } |
783 | if (bc->skb) | 783 | if (bc->skb) { |
784 | return NETDEV_TX_LOCKED; | 784 | dev_kfree_skb(skb); |
785 | return NETDEV_TX_OK; | ||
786 | } | ||
785 | /* strip KISS byte */ | 787 | /* strip KISS byte */ |
786 | if (skb->len >= HDLCDRV_MAXFLEN+1 || skb->len < 3) { | 788 | if (skb->len >= HDLCDRV_MAXFLEN+1 || skb->len < 3) { |
787 | dev_kfree_skb(skb); | 789 | dev_kfree_skb(skb); |
diff --git a/drivers/net/hamradio/hdlcdrv.c b/drivers/net/hamradio/hdlcdrv.c index 49fe59b180a8..4bad0b894e9c 100644 --- a/drivers/net/hamradio/hdlcdrv.c +++ b/drivers/net/hamradio/hdlcdrv.c | |||
@@ -412,8 +412,10 @@ static netdev_tx_t hdlcdrv_send_packet(struct sk_buff *skb, | |||
412 | dev_kfree_skb(skb); | 412 | dev_kfree_skb(skb); |
413 | return NETDEV_TX_OK; | 413 | return NETDEV_TX_OK; |
414 | } | 414 | } |
415 | if (sm->skb) | 415 | if (sm->skb) { |
416 | return NETDEV_TX_LOCKED; | 416 | dev_kfree_skb(skb); |
417 | return NETDEV_TX_OK; | ||
418 | } | ||
417 | netif_stop_queue(dev); | 419 | netif_stop_queue(dev); |
418 | sm->skb = skb; | 420 | sm->skb = skb; |
419 | return NETDEV_TX_OK; | 421 | return NETDEV_TX_OK; |