<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/e1000, branch v2.6.31</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>e1000: return PCI_ERS_RESULT_DISCONNECT on permanent error</title>
<updated>2009-07-01T02:47:00+00:00</updated>
<author>
<name>Andre Detsch</name>
<email>adetsch@br.ibm.com</email>
</author>
<published>2009-06-30T12:46:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=eab633021c26025b34f36f79f0311d3d99f40ceb'/>
<id>eab633021c26025b34f36f79f0311d3d99f40ceb</id>
<content type='text'>
PCI drivers that implement the io_error_detected callback
should return PCI_ERS_RESULT_DISCONNECT if the state
passed in is pci_channel_io_perm_failure.  This state is
not checked in many of the network drivers.

The patch fixes the omission in the e1000 driver.

Based on Mike Mason's similar patch for e1000e.

Signed-off-by: Andre Detsch &lt;adetsch@br.ibm.com&gt;
CC: Mike Mason &lt;mmlnx@us.ibm.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PCI drivers that implement the io_error_detected callback
should return PCI_ERS_RESULT_DISCONNECT if the state
passed in is pci_channel_io_perm_failure.  This state is
not checked in many of the network drivers.

The patch fixes the omission in the e1000 driver.

Based on Mike Mason's similar patch for e1000e.

Signed-off-by: Andre Detsch &lt;adetsch@br.ibm.com&gt;
CC: Mike Mason &lt;mmlnx@us.ibm.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>e1000: fix unmap bug</title>
<updated>2009-07-01T02:46:58+00:00</updated>
<author>
<name>Jesse Brandeburg</name>
<email>jesse.brandeburg@intel.com</email>
</author>
<published>2009-06-30T12:45:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=679be3ba0c493eb66d22c206273729ce50925e85'/>
<id>679be3ba0c493eb66d22c206273729ce50925e85</id>
<content type='text'>
as reported by kerneloops.org

[  121.781161] ------------[ cut here ]------------
[  121.781171] WARNING: at lib/dma-debug.c:793 check_unmap+0x14e/0x577()
[  121.781173] Hardware name: S5520HC
[  121.781177] e1000 0000:0a:00.0: DMA-API: device driver tries to free DMA
memory it has not allocated [device address=0x00000001d688b0fa] [size=1522
bytes]
[  121.781180] Modules linked in: e1000 mdio  dca [last unloaded: ixgbe]
[  121.781187] Pid: 4793, comm: bash Tainted: P 2.6.30-master-06161113 #3
[  121.781190] Call Trace:
[  121.781195]  [&lt;ffffffff8123056f&gt;] ? check_unmap+0x14e/0x577
[  121.781201]  [&lt;ffffffff81057a19&gt;] warn_slowpath_common+0x77/0x8f
[  121.781205]  [&lt;ffffffff81057ae1&gt;] warn_slowpath_fmt+0x9f/0xa1
[  121.781212]  [&lt;ffffffff81477ce2&gt;] ? _spin_lock_irqsave+0x3f/0x49
[  121.781216]  [&lt;ffffffff8122fa97&gt;] ? get_hash_bucket+0x28/0x33
[  121.781220]  [&lt;ffffffff8123056f&gt;] check_unmap+0x14e/0x577
[  121.781225]  [&lt;ffffffff810e4f48&gt;] ? check_bytes_and_report+0x38/0xcb
[  121.781230]  [&lt;ffffffff81230bbf&gt;] debug_dma_unmap_page+0x80/0x92
[  121.781234]  [&lt;ffffffff8122e549&gt;] ? unmap_single+0x1a/0x4e
[  121.781239]  [&lt;ffffffff813901e1&gt;] ? __kfree_skb+0x74/0x78
[  121.781250]  [&lt;ffffffffa00662ef&gt;] pci_unmap_single+0x64/0x6d [e1000]
[  121.781259]  [&lt;ffffffffa0066344&gt;] e1000_clean_rx_ring+0x4c/0xbf [e1000]
[  121.781268]  [&lt;ffffffffa00663df&gt;] e1000_clean_all_rx_rings+0x28/0x36 [e1000]
[  121.781277]  [&lt;ffffffffa0067464&gt;] e1000_down+0x138/0x141 [e1000]
[  121.781286]  [&lt;ffffffffa00681c2&gt;] __e1000_shutdown+0x6b/0x198 [e1000]
[  121.781296]  [&lt;ffffffffa0068405&gt;] e1000_suspend+0x17/0x50 [e1000]
[  121.781301]  [&lt;ffffffff81237665&gt;] pci_legacy_suspend+0x3b/0xbe
[  121.781305]  [&lt;ffffffff81237bc6&gt;] pci_pm_suspend+0x3e/0xf1
[  121.781310]  [&lt;ffffffff812eaf1c&gt;] pm_op+0x57/0xde
[  121.781314]  [&lt;ffffffff812eb444&gt;] dpm_suspend_start+0x31e/0x470
[  121.781319]  [&lt;ffffffff810877da&gt;] suspend_devices_and_enter+0x3e/0x1a2
[  121.781323]  [&lt;ffffffff81087a0f&gt;] enter_state+0xd1/0x127
[  121.781327]  [&lt;ffffffff8108717a&gt;] state_store+0xa7/0xc9
[  121.781332]  [&lt;ffffffff81221843&gt;] kobj_attr_store+0x17/0x19
[  121.781336]  [&lt;ffffffff8113c01e&gt;] sysfs_write_file+0xe5/0x121
[  121.781341]  [&lt;ffffffff810ed165&gt;] vfs_write+0xab/0x105
[  121.781344]  [&lt;ffffffff810ed279&gt;] sys_write+0x47/0x6d
[  121.781349]  [&lt;ffffffff81027aab&gt;] system_call_fastpath+0x16/0x1b
[  121.781352] ---[ end trace 97bacaaac2ed7786 ]---

Fix is to correctly zero out internal -&gt;dma value when unmapping
and make sure never to unmap unless there specifically was a mapping done.

Signed-off-by: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
as reported by kerneloops.org

[  121.781161] ------------[ cut here ]------------
[  121.781171] WARNING: at lib/dma-debug.c:793 check_unmap+0x14e/0x577()
[  121.781173] Hardware name: S5520HC
[  121.781177] e1000 0000:0a:00.0: DMA-API: device driver tries to free DMA
memory it has not allocated [device address=0x00000001d688b0fa] [size=1522
bytes]
[  121.781180] Modules linked in: e1000 mdio  dca [last unloaded: ixgbe]
[  121.781187] Pid: 4793, comm: bash Tainted: P 2.6.30-master-06161113 #3
[  121.781190] Call Trace:
[  121.781195]  [&lt;ffffffff8123056f&gt;] ? check_unmap+0x14e/0x577
[  121.781201]  [&lt;ffffffff81057a19&gt;] warn_slowpath_common+0x77/0x8f
[  121.781205]  [&lt;ffffffff81057ae1&gt;] warn_slowpath_fmt+0x9f/0xa1
[  121.781212]  [&lt;ffffffff81477ce2&gt;] ? _spin_lock_irqsave+0x3f/0x49
[  121.781216]  [&lt;ffffffff8122fa97&gt;] ? get_hash_bucket+0x28/0x33
[  121.781220]  [&lt;ffffffff8123056f&gt;] check_unmap+0x14e/0x577
[  121.781225]  [&lt;ffffffff810e4f48&gt;] ? check_bytes_and_report+0x38/0xcb
[  121.781230]  [&lt;ffffffff81230bbf&gt;] debug_dma_unmap_page+0x80/0x92
[  121.781234]  [&lt;ffffffff8122e549&gt;] ? unmap_single+0x1a/0x4e
[  121.781239]  [&lt;ffffffff813901e1&gt;] ? __kfree_skb+0x74/0x78
[  121.781250]  [&lt;ffffffffa00662ef&gt;] pci_unmap_single+0x64/0x6d [e1000]
[  121.781259]  [&lt;ffffffffa0066344&gt;] e1000_clean_rx_ring+0x4c/0xbf [e1000]
[  121.781268]  [&lt;ffffffffa00663df&gt;] e1000_clean_all_rx_rings+0x28/0x36 [e1000]
[  121.781277]  [&lt;ffffffffa0067464&gt;] e1000_down+0x138/0x141 [e1000]
[  121.781286]  [&lt;ffffffffa00681c2&gt;] __e1000_shutdown+0x6b/0x198 [e1000]
[  121.781296]  [&lt;ffffffffa0068405&gt;] e1000_suspend+0x17/0x50 [e1000]
[  121.781301]  [&lt;ffffffff81237665&gt;] pci_legacy_suspend+0x3b/0xbe
[  121.781305]  [&lt;ffffffff81237bc6&gt;] pci_pm_suspend+0x3e/0xf1
[  121.781310]  [&lt;ffffffff812eaf1c&gt;] pm_op+0x57/0xde
[  121.781314]  [&lt;ffffffff812eb444&gt;] dpm_suspend_start+0x31e/0x470
[  121.781319]  [&lt;ffffffff810877da&gt;] suspend_devices_and_enter+0x3e/0x1a2
[  121.781323]  [&lt;ffffffff81087a0f&gt;] enter_state+0xd1/0x127
[  121.781327]  [&lt;ffffffff8108717a&gt;] state_store+0xa7/0xc9
[  121.781332]  [&lt;ffffffff81221843&gt;] kobj_attr_store+0x17/0x19
[  121.781336]  [&lt;ffffffff8113c01e&gt;] sysfs_write_file+0xe5/0x121
[  121.781341]  [&lt;ffffffff810ed165&gt;] vfs_write+0xab/0x105
[  121.781344]  [&lt;ffffffff810ed279&gt;] sys_write+0x47/0x6d
[  121.781349]  [&lt;ffffffff81027aab&gt;] system_call_fastpath+0x16/0x1b
[  121.781352] ---[ end trace 97bacaaac2ed7786 ]---

Fix is to correctly zero out internal -&gt;dma value when unmapping
and make sure never to unmap unless there specifically was a mapping done.

Signed-off-by: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: group address list and its count</title>
<updated>2009-06-18T07:29:08+00:00</updated>
<author>
<name>Jiri Pirko</name>
<email>jpirko@redhat.com</email>
</author>
<published>2009-06-17T01:12:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=31278e71471399beaff9280737e52b47db4dc345'/>
<id>31278e71471399beaff9280737e52b47db4dc345</id>
<content type='text'>
This patch is inspired by patch recently posted by Johannes Berg. Basically what
my patch does is to group list and a count of addresses into newly introduced
structure netdev_hw_addr_list. This brings us two benefits:
1) struct net_device becames a bit nicer.
2) in the future there will be a possibility to operate with lists independently
   on netdevices (with exporting right functions).
I wanted to introduce this patch before I'll post a multicast lists conversion.

Signed-off-by: Jiri Pirko &lt;jpirko@redhat.com&gt;

 drivers/net/bnx2.c              |    4 +-
 drivers/net/e1000/e1000_main.c  |    4 +-
 drivers/net/ixgbe/ixgbe_main.c  |    6 +-
 drivers/net/mv643xx_eth.c       |    2 +-
 drivers/net/niu.c               |    4 +-
 drivers/net/virtio_net.c        |   10 ++--
 drivers/s390/net/qeth_l2_main.c |    2 +-
 include/linux/netdevice.h       |   17 +++--
 net/core/dev.c                  |  130 ++++++++++++++++++--------------------
 9 files changed, 89 insertions(+), 90 deletions(-)
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch is inspired by patch recently posted by Johannes Berg. Basically what
my patch does is to group list and a count of addresses into newly introduced
structure netdev_hw_addr_list. This brings us two benefits:
1) struct net_device becames a bit nicer.
2) in the future there will be a possibility to operate with lists independently
   on netdevices (with exporting right functions).
I wanted to introduce this patch before I'll post a multicast lists conversion.

Signed-off-by: Jiri Pirko &lt;jpirko@redhat.com&gt;

 drivers/net/bnx2.c              |    4 +-
 drivers/net/e1000/e1000_main.c  |    4 +-
 drivers/net/ixgbe/ixgbe_main.c  |    6 +-
 drivers/net/mv643xx_eth.c       |    2 +-
 drivers/net/niu.c               |    4 +-
 drivers/net/virtio_net.c        |   10 ++--
 drivers/s390/net/qeth_l2_main.c |    2 +-
 include/linux/netdevice.h       |   17 +++--
 net/core/dev.c                  |  130 ++++++++++++++++++--------------------
 9 files changed, 89 insertions(+), 90 deletions(-)
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: skb_shared_info optimization</title>
<updated>2009-06-08T07:21:48+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-06-05T04:04:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=042a53a9e437feaf2230dd2cadcecfae9c7bfe05'/>
<id>042a53a9e437feaf2230dd2cadcecfae9c7bfe05</id>
<content type='text'>
skb_dma_unmap() is quite expensive for small packets,
because we use two different cache lines from skb_shared_info.

One to access nr_frags, one to access dma_maps[0]

Instead of dma_maps being an array of MAX_SKB_FRAGS + 1 elements,
let dma_head alone in a new dma_head field, close to nr_frags,
to reduce cache lines misses.

Tested on my dev machine (bnx2 &amp; tg3 adapters), nice speedup !

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
skb_dma_unmap() is quite expensive for small packets,
because we use two different cache lines from skb_shared_info.

One to access nr_frags, one to access dma_maps[0]

Instead of dma_maps being an array of MAX_SKB_FRAGS + 1 elements,
let dma_head alone in a new dma_head field, close to nr_frags,
to reduce cache lines misses.

Tested on my dev machine (bnx2 &amp; tg3 adapters), nice speedup !

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2009-06-03T09:43:41+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-06-03T09:43:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b2f8f7525c8aa1fdd8ad8c72c832dfb571d5f768'/>
<id>b2f8f7525c8aa1fdd8ad8c72c832dfb571d5f768</id>
<content type='text'>
Conflicts:
	drivers/net/forcedeth.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/forcedeth.c
</pre>
</div>
</content>
</entry>
<entry>
<title>e1000: add missing length check to e1000 receive routine</title>
<updated>2009-06-02T08:29:58+00:00</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@tuxdriver.com</email>
</author>
<published>2009-06-02T08:29:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ea30e11970a96cfe5e32c03a29332554573b4a10'/>
<id>ea30e11970a96cfe5e32c03a29332554573b4a10</id>
<content type='text'>
	Patch to fix bad length checking in e1000.  E1000 by default does two
things:

1) Spans rx descriptors for packets that don't fit into 1 skb on recieve
2) Strips the crc from a frame by subtracting 4 bytes from the length prior to
doing an skb_put

Since the e1000 driver isn't written to support receiving packets that span
multiple rx buffers, it checks the End of Packet bit of every frame, and
discards it if its not set.  This places us in a situation where, if we have a
spanning packet, the first part is discarded, but the second part is not (since
it is the end of packet, and it passes the EOP bit test).  If the second part of
the frame is small (4 bytes or less), we subtract 4 from it to remove its crc,
underflow the length, and wind up in skb_over_panic, when we try to skb_put a
huge number of bytes into the skb.  This amounts to a remote DOS attack through
careful selection of frame size in relation to interface MTU.  The fix for this
is already in the e1000e driver, as well as the e1000 sourceforge driver, but no
one ever pushed it to e1000.  This is lifted straight from e1000e, and prevents
small frames from causing the underflow described above

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Tested-by: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Patch to fix bad length checking in e1000.  E1000 by default does two
things:

1) Spans rx descriptors for packets that don't fit into 1 skb on recieve
2) Strips the crc from a frame by subtracting 4 bytes from the length prior to
doing an skb_put

Since the e1000 driver isn't written to support receiving packets that span
multiple rx buffers, it checks the End of Packet bit of every frame, and
discards it if its not set.  This places us in a situation where, if we have a
spanning packet, the first part is discarded, but the second part is not (since
it is the end of packet, and it passes the EOP bit test).  If the second part of
the frame is small (4 bytes or less), we subtract 4 from it to remove its crc,
underflow the length, and wind up in skb_over_panic, when we try to skb_put a
huge number of bytes into the skb.  This amounts to a remote DOS attack through
careful selection of frame size in relation to interface MTU.  The fix for this
is already in the e1000e driver, as well as the e1000 sourceforge driver, but no
one ever pushed it to e1000.  This is lifted straight from e1000e, and prevents
small frames from causing the underflow described above

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Tested-by: Andy Gospodarek &lt;andy@greyhouse.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: convert unicast addr list</title>
<updated>2009-05-30T05:12:32+00:00</updated>
<author>
<name>Jiri Pirko</name>
<email>jpirko@redhat.com</email>
</author>
<published>2009-05-22T23:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ccffad25b5136958d4769ed6de5e87992dd9c65c'/>
<id>ccffad25b5136958d4769ed6de5e87992dd9c65c</id>
<content type='text'>
This patch converts unicast address list to standard list_head using
previously introduced struct netdev_hw_addr. It also relaxes the
locking. Original spinlock (still used for multicast addresses) is not
needed and is no longer used for a protection of this list. All
reading and writing takes place under rtnl (with no changes).

I also removed a possibility to specify the length of the address
while adding or deleting unicast address. It's always dev-&gt;addr_len.

The convertion touched especially e1000 and ixgbe codes when the
change is not so trivial.

Signed-off-by: Jiri Pirko &lt;jpirko@redhat.com&gt;

 drivers/net/bnx2.c               |   13 +--
 drivers/net/e1000/e1000_main.c   |   24 +++--
 drivers/net/ixgbe/ixgbe_common.c |   14 ++--
 drivers/net/ixgbe/ixgbe_common.h |    4 +-
 drivers/net/ixgbe/ixgbe_main.c   |    6 +-
 drivers/net/ixgbe/ixgbe_type.h   |    4 +-
 drivers/net/macvlan.c            |   11 +-
 drivers/net/mv643xx_eth.c        |   11 +-
 drivers/net/niu.c                |    7 +-
 drivers/net/virtio_net.c         |    7 +-
 drivers/s390/net/qeth_l2_main.c  |    6 +-
 drivers/scsi/fcoe/fcoe.c         |   16 ++--
 include/linux/netdevice.h        |   18 ++--
 net/8021q/vlan.c                 |    4 +-
 net/8021q/vlan_dev.c             |   10 +-
 net/core/dev.c                   |  195 +++++++++++++++++++++++++++-----------
 net/dsa/slave.c                  |   10 +-
 net/packet/af_packet.c           |    4 +-
 18 files changed, 227 insertions(+), 137 deletions(-)
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch converts unicast address list to standard list_head using
previously introduced struct netdev_hw_addr. It also relaxes the
locking. Original spinlock (still used for multicast addresses) is not
needed and is no longer used for a protection of this list. All
reading and writing takes place under rtnl (with no changes).

I also removed a possibility to specify the length of the address
while adding or deleting unicast address. It's always dev-&gt;addr_len.

The convertion touched especially e1000 and ixgbe codes when the
change is not so trivial.

Signed-off-by: Jiri Pirko &lt;jpirko@redhat.com&gt;

 drivers/net/bnx2.c               |   13 +--
 drivers/net/e1000/e1000_main.c   |   24 +++--
 drivers/net/ixgbe/ixgbe_common.c |   14 ++--
 drivers/net/ixgbe/ixgbe_common.h |    4 +-
 drivers/net/ixgbe/ixgbe_main.c   |    6 +-
 drivers/net/ixgbe/ixgbe_type.h   |    4 +-
 drivers/net/macvlan.c            |   11 +-
 drivers/net/mv643xx_eth.c        |   11 +-
 drivers/net/niu.c                |    7 +-
 drivers/net/virtio_net.c         |    7 +-
 drivers/s390/net/qeth_l2_main.c  |    6 +-
 drivers/scsi/fcoe/fcoe.c         |   16 ++--
 include/linux/netdevice.h        |   18 ++--
 net/8021q/vlan.c                 |    4 +-
 net/8021q/vlan_dev.c             |   10 +-
 net/core/dev.c                   |  195 +++++++++++++++++++++++++++-----------
 net/dsa/slave.c                  |   10 +-
 net/packet/af_packet.c           |    4 +-
 18 files changed, 227 insertions(+), 137 deletions(-)
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: dont update dev-&gt;trans_start</title>
<updated>2009-05-29T08:46:27+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-05-28T00:00:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=cdd0db058d64f2619b08e7d098ee0014aa0a5bc1'/>
<id>cdd0db058d64f2619b08e7d098ee0014aa0a5bc1</id>
<content type='text'>
Second round of drivers for Gb cards (and NIU one I forgot in the 10GB round)

Now that core network takes care of trans_start updates, dont do it
in drivers themselves, if possible. Drivers can avoid one cache miss
(on dev-&gt;trans_start) in their start_xmit() handler.

Exceptions are NETIF_F_LLTX drivers

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Second round of drivers for Gb cards (and NIU one I forgot in the 10GB round)

Now that core network takes care of trans_start updates, dont do it
in drivers themselves, if possible. Drivers can avoid one cache miss
(on dev-&gt;trans_start) in their start_xmit() handler.

Exceptions are NETIF_F_LLTX drivers

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2009-05-08T09:48:30+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-05-08T09:48:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=22f6dacdfcfdc792d068e9c41234808860498d04'/>
<id>22f6dacdfcfdc792d068e9c41234808860498d04</id>
<content type='text'>
Conflicts:
	include/net/tcp.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	include/net/tcp.h
</pre>
</div>
</content>
</entry>
<entry>
<title>e1000/e1000e/igb/ixgb: don't txhang after link down</title>
<updated>2009-05-07T21:52:32+00:00</updated>
<author>
<name>Jesse Brandeburg</name>
<email>jesse.brandeburg@intel.com</email>
</author>
<published>2009-05-07T11:07:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c2d5ab4973bfaa72cbb677801825ce56c8f69b56'/>
<id>c2d5ab4973bfaa72cbb677801825ce56c8f69b56</id>
<content type='text'>
after the recent changes to wired drivers to use only
netif_carrier_off the driver can have outstanding tx work to
complete that will never complete once link is down.  Since the
intel hardware will hold this tx work forever, the driver
notices a tx timeout condition internally and might try
to instigate printk and reset of the part with a
netif_stop_queue, which doesn't work because link is down.

Don't bother arming to tx hang detection when link is down.

Signed-off-by: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
after the recent changes to wired drivers to use only
netif_carrier_off the driver can have outstanding tx work to
complete that will never complete once link is down.  Since the
intel hardware will hold this tx work forever, the driver
notices a tx timeout condition internally and might try
to instigate printk and reset of the part with a
netif_stop_queue, which doesn't work because link is down.

Don't bother arming to tx hang detection when link is down.

Signed-off-by: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
