From: Jeff Kirsher <hidden> Date: 2012-05-17 11:27:54
This series of patches contains updates for e1000, e1000e and igb.
The following are changes since commit dc6b9b78234fecdc6d2ca5e1629185718202bcf5:
net: include/net/sock.h cleanup
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Bruce Allan (1):
e1000e: fix typo in definition of E1000_CTRL_EXT_FORCE_SMBUS
Matthew Vick (1):
igb: Disable the BMC-to-OS Watchdog Enable bit for DMAC.
Sebastian Andrzej Siewior (2):
e1000: remove workaround for Errata 23 from jumbo alloc
e1000: look in the page and not in skb->data for the last byte
drivers/net/ethernet/intel/e1000/e1000_main.c | 30 ++++--------------------
drivers/net/ethernet/intel/e1000e/defines.h | 2 +-
drivers/net/ethernet/intel/igb/e1000_defines.h | 2 +
drivers/net/ethernet/intel/igb/igb_main.c | 3 ++
4 files changed, 11 insertions(+), 26 deletions(-)
--
1.7.7.6
From: Jeff Kirsher <hidden> Date: 2012-05-17 11:27:54
From: Bruce Allan <redacted>
This define is needed by i217.
Reported-by: Bjorn Mork <bjorn@mork.no>
Signed-off-by: Bruce Allan <redacted>
Tested-by: Aaron Brown <redacted>
Signed-off-by: Jeff Kirsher <redacted>
---
drivers/net/ethernet/intel/e1000e/defines.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
From: Jeff Kirsher <hidden> Date: 2012-05-17 11:27:54
From: Matthew Vick <redacted>
Under certain scenarios, it's possible that bursty manageability traffic
over the BMC-to-OS path may overrun the internal manageability receive
buffer causing dropped manageability packets. Clearing this bit prevents
this situation by interrupting coalescing to allow manageability traffic
through.
Signed-off-by: Matthew Vick <redacted>
Tested-by: Aaron Brown <redacted>
Signed-off-by: Jeff Kirsher <redacted>
---
drivers/net/ethernet/intel/igb/e1000_defines.h | 2 ++
drivers/net/ethernet/intel/igb/igb_main.c | 3 +++
2 files changed, 5 insertions(+), 0 deletions(-)
From: Jeff Kirsher <hidden> Date: 2012-05-17 11:27:54
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
The code seems to want to look at the last byte where the HW puts some
information. Since the skb->data area is never seen by the HW I guess it
does not work as expected. We pass the page address to the HW so I
*think* in order to get to the last byte where the information might be
one should use the page buffer and take a look.
This is of course not more than just compile tested.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Tested-by: Aaron Brown <redacted>
Signed-off-by: Jeff Kirsher <redacted>
---
drivers/net/ethernet/intel/e1000/e1000_main.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
From: Jeff Kirsher <hidden> Date: 2012-05-17 11:27:54
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
According to the comment, errata 23 says that the memory we allocate
can't cross a 64KiB boundary. In case of jumbo frames we allocate
complete pages which can never cross the 64KiB boundary because
PAGE_SIZE should be a multiple of 64KiB so we stop either before the
boundary or start after it but never cross it. Furthermore the check
seems bogus because it looks at skb->data which is not seen by the HW
at all because we only pass the DMA address of the page we allocated. So
I *think* the workaround is not required here.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Tested-by: Aaron Brown <redacted>
Signed-off-by: Jeff Kirsher <redacted>
---
drivers/net/ethernet/intel/e1000/e1000_main.c | 24 ------------------------
1 files changed, 0 insertions(+), 24 deletions(-)
@@ -4391,30 +4391,6 @@ e1000_alloc_jumbo_rx_buffers(struct e1000_adapter *adapter,break;}-/* Fix for errata 23, can't cross 64kB boundary */-if(!e1000_check_64k_bound(adapter,skb->data,bufsz)){-structsk_buff*oldskb=skb;-e_err(rx_err,"skb align check failed: %u bytes at "-"%p\n",bufsz,skb->data);-/* Try again, without freeing the previous */-skb=netdev_alloc_skb_ip_align(netdev,bufsz);-/* Failed allocation, critical failure */-if(!skb){-dev_kfree_skb(oldskb);-adapter->alloc_rx_buff_failed++;-break;-}--if(!e1000_check_64k_bound(adapter,skb->data,bufsz)){-/* give up */-dev_kfree_skb(skb);-dev_kfree_skb(oldskb);-break;/* while (cleaned_count--) */-}--/* Use new allocation */-dev_kfree_skb(oldskb);-}buffer_info->skb=skb;buffer_info->length=adapter->rx_buffer_len;check_page:
Your correct, I apologize. This was my fault, I applied your v1 of the
patch and then realized there was a v2.
I will re-send the series with the correct patch.
From: Jeff Kirsher <hidden> Date: 2012-05-17 11:51:20
On Thu, 2012-05-17 at 04:27 -0700, Jeff Kirsher wrote:
This series of patches contains updates for e1000, e1000e and igb.
The following are changes since commit dc6b9b78234fecdc6d2ca5e1629185718202bcf5:
net: include/net/sock.h cleanup
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Bruce Allan (1):
e1000e: fix typo in definition of E1000_CTRL_EXT_FORCE_SMBUS
Matthew Vick (1):
igb: Disable the BMC-to-OS Watchdog Enable bit for DMAC.
Sebastian Andrzej Siewior (2):
e1000: remove workaround for Errata 23 from jumbo alloc
e1000: look in the page and not in skb->data for the last byte
drivers/net/ethernet/intel/e1000/e1000_main.c | 30 ++++--------------------
drivers/net/ethernet/intel/e1000e/defines.h | 2 +-
drivers/net/ethernet/intel/igb/e1000_defines.h | 2 +
drivers/net/ethernet/intel/igb/igb_main.c | 3 ++
4 files changed, 11 insertions(+), 26 deletions(-)
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: 2012-05-17 11:56:55
On 05/17/2012 01:50 PM, Jeff Kirsher wrote:
Your correct, I apologize. This was my fault, I applied your v1 of the
patch and then realized there was a v2.
I will re-send the series with the correct patch.
From: Jeff Kirsher <hidden> Date: 2012-05-17 12:02:34
On Thu, 2012-05-17 at 13:56 +0200, Sebastian Andrzej Siewior wrote:
On 05/17/2012 01:50 PM, Jeff Kirsher wrote:
quoted
Your correct, I apologize. This was my fault, I applied your v1 of the
patch and then realized there was a v2.
I will re-send the series with the correct patch.
No, not yet. Aaron is still validating that patch since it was actually
the last one you sent me. I expect to be pushing it in the next day or
so with some ixgbe patches, once it finishes validation.
From: Ben Hutchings <hidden> Date: 2012-05-17 14:40:37
On Thu, 2012-05-17 at 04:27 -0700, Jeff Kirsher wrote:
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
According to the comment, errata 23 says that the memory we allocate
can't cross a 64KiB boundary. In case of jumbo frames we allocate
complete pages which can never cross the 64KiB boundary because
PAGE_SIZE should be a multiple of 64KiB so we stop either before the
@@ -4391,30 +4391,6 @@ e1000_alloc_jumbo_rx_buffers(struct e1000_adapter *adapter,break;}-/* Fix for errata 23, can't cross 64kB boundary */-if(!e1000_check_64k_bound(adapter,skb->data,bufsz)){-structsk_buff*oldskb=skb;-e_err(rx_err,"skb align check failed: %u bytes at "-"%p\n",bufsz,skb->data);-/* Try again, without freeing the previous */-skb=netdev_alloc_skb_ip_align(netdev,bufsz);-/* Failed allocation, critical failure */-if(!skb){-dev_kfree_skb(oldskb);-adapter->alloc_rx_buff_failed++;-break;-}--if(!e1000_check_64k_bound(adapter,skb->data,bufsz)){-/* give up */-dev_kfree_skb(skb);-dev_kfree_skb(oldskb);-break;/* while (cleaned_count--) */-}--/* Use new allocation */-dev_kfree_skb(oldskb);-}
[...]
I don't believe PAGE_SIZE is >64K on any architecture, but perhaps you
should replace the run-time check with:
BUILD_BUG_ON(PAGE_SIZE > 0x10000);
in case that changes in future.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
From: David Miller <davem@davemloft.net> Date: 2012-05-17 19:12:20
From: Jeff Kirsher <redacted>
Date: Thu, 17 May 2012 04:27:46 -0700
This series of patches contains updates for e1000, e1000e and igb.
The following are changes since commit dc6b9b78234fecdc6d2ca5e1629185718202bcf5:
net: include/net/sock.h cleanup
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master