netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Alexander Duyck <alexander.h.duyck@intel.com>,
	netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com,
	Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 09/13] igb: Pull adapter out of main path in igb_xmit_frame_ring
Date: Thu,  4 Apr 2013 04:37:56 -0700	[thread overview]
Message-ID: <1365075480-20183-10-git-send-email-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <1365075480-20183-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Alexander Duyck <alexander.h.duyck@intel.com>

We only need the adapter pointer in the case of ptp.  As such we can pull the
adapter out of the main path and place it inside the if statement to avoid
the temptation of accessing the adapter pointer in the fast path.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 29facb5..6043245 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -4593,7 +4593,6 @@ static inline int igb_maybe_stop_tx(struct igb_ring *tx_ring, const u16 size)
 netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb,
 				struct igb_ring *tx_ring)
 {
-	struct igb_adapter *adapter = netdev_priv(tx_ring->netdev);
 	struct igb_tx_buffer *first;
 	int tso;
 	u32 tx_flags = 0;
@@ -4628,15 +4627,17 @@ netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb,
 
 	skb_tx_timestamp(skb);
 
-	if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
-		     !(adapter->ptp_tx_skb))) {
-		skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
-		tx_flags |= IGB_TX_FLAGS_TSTAMP;
+	if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) {
+		struct igb_adapter *adapter = netdev_priv(tx_ring->netdev);
+		if (!(adapter->ptp_tx_skb)) {
+			skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
+			tx_flags |= IGB_TX_FLAGS_TSTAMP;
 
-		adapter->ptp_tx_skb = skb_get(skb);
-		adapter->ptp_tx_start = jiffies;
-		if (adapter->hw.mac.type == e1000_82576)
-			schedule_work(&adapter->ptp_tx_work);
+			adapter->ptp_tx_skb = skb_get(skb);
+			adapter->ptp_tx_start = jiffies;
+			if (adapter->hw.mac.type == e1000_82576)
+				schedule_work(&adapter->ptp_tx_work);
+		}
 	}
 
 	if (vlan_tx_tag_present(skb)) {
-- 
1.7.11.7

  parent reply	other threads:[~2013-04-04 11:38 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-04 11:37 [net-next 00/13][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-04-04 11:37 ` [net-next 01/13] ixgbe: Mask off check of frag_off as we only want fragment offset Jeff Kirsher
2013-04-04 11:37 ` [net-next 02/13] ixgbe: don't do arithmetic operations on bitmasks Jeff Kirsher
2013-04-04 11:37 ` [net-next 03/13] ixgbe: Drop check for PAGE_SIZE from ixgbe_xmit_frame_ring Jeff Kirsher
2013-04-04 11:37 ` [net-next 04/13] igb: Support for 100base-fx SFP Jeff Kirsher
2013-04-04 11:37 ` [net-next 05/13] igb: Support to read and export SFF-8472/8079 data Jeff Kirsher
2013-04-04 19:07   ` Ben Hutchings
2013-04-04 22:17     ` Abodunrin, Akeem G
2013-04-04 11:37 ` [net-next 06/13] igb: Implement support to power sfp cage and turn on I2C Jeff Kirsher
2013-04-04 11:37 ` [net-next 07/13] igb: random code and comments fix Jeff Kirsher
2013-04-04 14:22   ` Sergei Shtylyov
2013-04-04 11:37 ` [net-next 08/13] igb: Mask off check of frag_off as we only want fragment offset Jeff Kirsher
2013-04-04 11:37 ` Jeff Kirsher [this message]
2013-04-04 14:15   ` [net-next 09/13] igb: Pull adapter out of main path in igb_xmit_frame_ring Sergei Shtylyov
2013-04-04 11:37 ` [net-next 10/13] igb: Use rx/tx_itr_setting when setting up initial value of itr Jeff Kirsher
2013-04-04 11:37 ` [net-next 11/13] igb: Fix sparse warnings on function pointers Jeff Kirsher
2013-04-04 11:37 ` [net-next 12/13] igb: Fix code comments and whitespace Jeff Kirsher
2013-04-04 11:38 ` [net-next 13/13] igb: Enable EEE LP advertisement Jeff Kirsher

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=1365075480-20183-10-git-send-email-jeffrey.t.kirsher@intel.com \
    --to=jeffrey.t.kirsher@intel.com \
    --cc=alexander.h.duyck@intel.com \
    --cc=davem@davemloft.net \
    --cc=gospo@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=sassmann@redhat.com \
    /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).