Netdev List
 help / color / mirror / Atom feed
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, gospo@redhat.com,
	Jesse Brandeburg <jesse.brandeburg@intel.com>,
	Don Skidmore <donald.c.skidmore@intel.com>,
	Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-2.6 PATCH 07/13] e1000: two workarounds were incomplete, fix them
Date: Fri, 25 Sep 2009 15:18:41 -0700	[thread overview]
Message-ID: <20090925221841.26715.68566.stgit@localhost.localdomain> (raw)
In-Reply-To: <20090925221613.26715.66796.stgit@localhost.localdomain>

From: Jesse Brandeburg <jesse.brandeburg@intel.com>

1) 82544 does not need last_tx_tso workaround, it interferes with the 82544
workaround too
2) 82544 hang workaround was using the address of the page struct instead of
the physical address as its "workaround decider" not sure how that ever worked

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---

 drivers/net/e1000/e1000_main.c |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 8c64363..cdbf4fb 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -2416,6 +2416,11 @@ enum latency_range {
 
 /**
  * e1000_update_itr - update the dynamic ITR value based on statistics
+ * @adapter: pointer to adapter
+ * @itr_setting: current adapter->itr
+ * @packets: the number of packets during this measurement interval
+ * @bytes: the number of bytes during this measurement interval
+ *
  *      Stores a new ITR value based on packets and byte
  *      counts during the last interrupt.  The advantage of per interrupt
  *      computation is faster updates and more accurate ITR for the current
@@ -2425,10 +2430,6 @@ enum latency_range {
  *      while increasing bulk throughput.
  *      this functionality is controlled by the InterruptThrottleRate module
  *      parameter (see e1000_param.c)
- * @adapter: pointer to adapter
- * @itr_setting: current adapter->itr
- * @packets: the number of packets during this measurement interval
- * @bytes: the number of bytes during this measurement interval
  **/
 static unsigned int e1000_update_itr(struct e1000_adapter *adapter,
 				     u16 itr_setting, int packets, int bytes)
@@ -2770,8 +2771,9 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
 			 * Avoid terminating buffers within evenly-aligned
 			 * dwords. */
 			if (unlikely(adapter->pcix_82544 &&
-			   !((unsigned long)(frag->page+offset+size-1) & 4) &&
-			   size > 4))
+			    !((unsigned long)(page_to_phys(frag->page) + offset
+			                      + size - 1) & 4) &&
+			    size > 4))
 				size -= 4;
 
 			buffer_info->length = size;
@@ -3042,7 +3044,8 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,
 	}
 
 	if (likely(tso)) {
-		tx_ring->last_tx_tso = 1;
+		if (likely(hw->mac_type != e1000_82544))
+			tx_ring->last_tx_tso = 1;
 		tx_flags |= E1000_TX_FLAGS_TSO;
 	} else if (likely(e1000_tx_csum(adapter, tx_ring, skb)))
 		tx_flags |= E1000_TX_FLAGS_CSUM;


  parent reply	other threads:[~2009-09-25 22:18 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-25 22:16 [net-2.6 PATCH 01/13] e1000: drop dead pcie code from e1000 Jeff Kirsher
2009-09-25 22:16 ` [net-2.6 PATCH 02/13] e1000: remove unused functions Jeff Kirsher
2009-09-25 22:17 ` [net-2.6 PATCH 03/13] e1000: use netif_tx_disable Jeff Kirsher
2009-09-25 22:17 ` [net-2.6 PATCH 04/13] e1000: stop timers at appropriate times Jeff Kirsher
2009-09-25 22:17 ` [net-2.6 PATCH 05/13] e1000: test link state conclusively Jeff Kirsher
2009-09-25 22:18 ` [net-2.6 PATCH 06/13] e1000: fix tx waking queue after queue stopped during shutdown Jeff Kirsher
2009-09-25 22:18 ` Jeff Kirsher [this message]
2009-09-25 22:19 ` [net-2.6 PATCH 08/13] e1000: remove races when changing mtu Jeff Kirsher
2009-09-25 22:19 ` [net-2.6 PATCH 09/13] e1000: drop redunant line of code, cleanup Jeff Kirsher
2009-09-25 22:20 ` [net-2.6 PATCH 11/13] e1000: drop unused functionality for eeprom write/read Jeff Kirsher
2009-09-25 22:20 ` [net-2.6 PATCH 12/13] e1000: fix namespacecheck warnings Jeff Kirsher
2009-09-25 22:20 ` [net-2.6 PATCH 13/13] e1000: cleanup unused prototype Jeff Kirsher
2009-09-27  3:18 ` [net-2.6 PATCH 01/13] e1000: drop dead pcie code from e1000 David Miller

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=20090925221841.26715.68566.stgit@localhost.localdomain \
    --to=jeffrey.t.kirsher@intel.com \
    --cc=davem@davemloft.net \
    --cc=donald.c.skidmore@intel.com \
    --cc=gospo@redhat.com \
    --cc=jesse.brandeburg@intel.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