From: "Kok, Auke" <auke-jan.h.kok@intel.com>
To: "Garzik, Jeff" <jgarzik@pobox.com>
Cc: netdev@vger.kernel.org, "Brandeburg,
Jesse" <jesse.brandeburg@intel.com>,
"Kok, Auke <auke-jan.h.kok"@intel.com, "Kok,
Auke" <auke@foo-projects.org>
Subject: [PATCH 4/9] ixgb: add NETIF_F_LLTX analogous to e1000
Date: Tue, 23 May 2006 11:04:11 -0700 [thread overview]
Message-ID: <20060523180411.17428.23285.stgit@gitlost.site> (raw)
In-Reply-To: <20060523180302.17428.89125.stgit@gitlost.site>
add NETIF_F_LLTX code like e1000 has
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: John Ronciak <john.ronciak@intel.com>
---
drivers/net/ixgb/ixgb_main.c | 31 +++++++++++++++++++++++++++++--
1 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index 13181c4..466cbe2 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -449,6 +449,9 @@ ixgb_probe(struct pci_dev *pdev,
#ifdef NETIF_F_TSO
netdev->features |= NETIF_F_TSO;
#endif
+#ifdef NETIF_F_LLTX
+ netdev->features |= NETIF_F_LLTX;
+#endif
if(pci_using_dac)
netdev->features |= NETIF_F_HIGHDMA;
@@ -1408,13 +1411,26 @@ ixgb_xmit_frame(struct sk_buff *skb, str
return 0;
}
+#ifdef NETIF_F_LLTX
+ local_irq_save(flags);
+ if (!spin_trylock(&adapter->tx_lock)) {
+ /* Collision - tell upper layer to requeue */
+ local_irq_restore(flags);
+ return NETDEV_TX_LOCKED;
+ }
+#else
spin_lock_irqsave(&adapter->tx_lock, flags);
+#endif
+
if(unlikely(IXGB_DESC_UNUSED(&adapter->tx_ring) < DESC_NEEDED)) {
netif_stop_queue(netdev);
spin_unlock_irqrestore(&adapter->tx_lock, flags);
- return 1;
+ return NETDEV_TX_BUSY;
}
+
+#ifndef NETIF_F_LLTX
spin_unlock_irqrestore(&adapter->tx_lock, flags);
+#endif
if(adapter->vlgrp && vlan_tx_tag_present(skb)) {
tx_flags |= IXGB_TX_FLAGS_VLAN;
@@ -1426,6 +1442,9 @@ ixgb_xmit_frame(struct sk_buff *skb, str
tso = ixgb_tso(adapter, skb);
if (tso < 0) {
dev_kfree_skb_any(skb);
+#ifdef NETIF_F_LLTX
+ spin_unlock_irqrestore(&adapter->tx_lock, flags);
+#endif
return NETDEV_TX_OK;
}
@@ -1439,7 +1458,15 @@ ixgb_xmit_frame(struct sk_buff *skb, str
netdev->trans_start = jiffies;
- return 0;
+#ifdef NETIF_F_LLTX
+ /* Make sure there is space in the ring for the next send. */
+ if(unlikely(IXGB_DESC_UNUSED(&adapter->tx_ring) < DESC_NEEDED))
+ netif_stop_queue(netdev);
+
+ spin_unlock_irqrestore(&adapter->tx_lock, flags);
+
+#endif
+ return NETDEV_TX_OK;
}
/**
--
Auke Kok <auke-jan.h.kok@intel.com>
next prev parent reply other threads:[~2006-05-23 17:59 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-23 18:03 [PATCH 0/9] ixgb: driver update to 1.0.104-k2 Kok, Auke
2006-05-23 18:04 ` [PATCH 1/9] ixgb: fix rare early tso completion Kok, Auke
2006-05-23 18:04 ` [PATCH 2/9] ixgb: remove duplicate code setting duplex and speed Kok, Auke
2006-05-23 18:04 ` [PATCH 3/9] ixgb: fix flow control Kok, Auke
2006-05-23 18:04 ` Kok, Auke [this message]
2006-05-23 18:04 ` [PATCH 5/9] ixgb: add copper 10gig driver id Kok, Auke
2006-05-23 18:04 ` [PATCH 6/9] ixgb: remove hardcoded number Kok, Auke
2006-05-23 18:04 ` [PATCH 7/9] ixgb: use DPRINTK and msglvl, and ethtool to control it Kok, Auke
2006-05-23 18:04 ` [PATCH 8/9] ixgb: add tx timeout counter Kok, Auke
2006-05-23 18:04 ` [PATCH 9/9] ixgb: increment version to 1.0.104-k2 Kok, Auke
2006-05-23 18:42 ` [PATCH 0/9] ixgb: driver update " Jeff Garzik
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=20060523180411.17428.23285.stgit@gitlost.site \
--to=auke-jan.h.kok@intel.com \
--cc="Kok, Auke <auke-jan.h.kok"@intel.com \
--cc=auke@foo-projects.org \
--cc=jesse.brandeburg@intel.com \
--cc=jgarzik@pobox.com \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).