Lucid pull request, igb: Add full support for 82580 devices

Stefan Bader stefan.bader at canonical.com
Wed Mar 17 09:34:10 UTC 2010


Tim Gardner wrote:
> Andy,
> 
> Please consider this wholesale backport of the Intel igb gigabit ethernet driver from 2.6.33.
> I've tested that it does not break existing igb support, at least on the one that I have:
> 
> 01:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
> 
> Here are the list of commits to drivers/net/igb from v2.6.32 to v2.6.33. All applied cleanly except for the
> few that I've commented out. They were global changes that also incidentally touched igb,
> but will have no impact on a 2.6.32. There have been no stable updates to date for igb in 2.6.33.
> 
> cc9073bbc901a0b695c9c5966d65520c29af70af igb: remove unused temp variable from stats clearing path
> 70d92f86dc162fc24e13cd79fd3481ae39b66f72 igb: update comments for serdes config and update to handle duplex
> 008c3422d48b217792789bdea822dbc2efe2165c igb: update the approach taken to acquiring and releasing the phy lock
> bf6f7a928d313ddecb0a16ea60fa6b45ac1414a7 igb: add locking to reads of the i2c interface
> 26ad91783c489486d3fd1a6932e5bdab9d404a38 igb: add combined function for setting rar and pool bits
> 68d480c4defb69d834e75fd0be9069a8447afe36 igb: make use of the uta to allow for promiscous mode filter
> 747d49baaf4e3f4ad5ae77477830da026eeef69d igb: add support for 82576NS SerDes adapter
> 0acb6fde5fc84009be1c7efc0aaa8e69e394a2e2 igb: add function to handle mailbox lock
> 3272686c98da64d6eeaa2434782f42270b110758 igb: fix a few items where weren't correctly setup for mbx timeout
> 22896639af98ebc721a94ed71fc3acf2fb4a24dc igb: change how we handle alternate mac addresses
> 285b4167458ec7cc49008b2e61cbe0362deed335 igb: remove microwire support from igb
> 81fadd81a5bc897c8d0424d1cd90cb999d8e12b0 igb: move the generic copper link setup code into e1000_phy.c
> ab576389b733b458495529f81839f499b3fece78 igb: add code to retry a phy read in the event of failure on link check
> 2553bb2681645bf932db2845121b8f33954f6f39 igb: add additional error handling to the phy code
> 6deac6f2b46f84b8822683cce92eab4edf2ade5e igb: add flushes between RAR writes when setting mac address
> 8d24e93309d688d59d4b6cf0b9cffc40337e067d igb: Use the instance of net_device_stats from net_device.
> #89d71a66c40d629e3b1285def543ab1425558cd5 net: Use netdev_alloc_skb_ip_align()
> 231835e4163cf14c90e295f1729004f571ee1cc7 igb: Fix erroneous display of stats by ethtool -S
> 047e0030f1e601233ae5b03910602ec93c620bce igb: add new data structure for handling interrupts and NAPI
> 094919a4b0c56d6afbfb5ea14567fbb2f8d47554 igb: remove rx checksum good counter
> 7d95b7170eca3f95bad939fc9eb365b823c05e39 igb: increase minimum rx buffer size to 1K
> 85b430b47736d1f59e8f9efb0e47bc46aeb2b01d igb: move the tx and rx ring specific config into seperate functions
> 6ec43fe635fb5c96fbc0955b2794b74fee69b723 igb: remove rx_ps_hdr_len
> 952f72a8ceee3996ef8476a2f05ece1627080c20 igb: move SRRCTL register configuration into ring specific config
> fce99e341524c204ef3dd3e7c5f77265a7e05ddd igb: change the head and tail offsets into pointers
> 80785298aa5b6f2005a34afb97457ae7a65af270 igb: add pci device pointer to ring structure
> 4c844851d15cc08d995179ab5118172711be6eb0 igb: move rx_buffer_len into the ring structure
> 04a5fcaaf0e12d066411aa54e42591952aa18da7 igb: move alloc_failed and csum_err stats into per rx-ring stat
> 85ad76b2f9c4956ec90c86298b22bb35c326e772 igb: add a flags value to the ring
> e694e964fc1241b4981873bdccce70438d5f0394 igb: place a pointer to the netdev struct in the ring itself
> 06cf2666c7f5cc4ba4bf2687d041c61ada76fa3c igb: move the multiple receive queue configuration into seperate function
> d4960307ea63a5625a175cc2d7b192e68e6b4fba igb: delay VF reset notification until after interrupts are enabed
> 10d8e9073a320a1c9cc13f996bd600b477eb4872 igb: setup vlan tag replication stripping in igb_vmm_control
> d7ee5b3a78f57a8ca9ca2392ff5d03f91ec90bdb igb: re-use ring configuration code in ethtool testing
> b1a436c34c44c6e3fb03c12545d87b4c2818f31d igb: make tx ring map and free functionality non-static
> ad93d17efe063b6e95f3177fa01706f3b3b15dde igb: make ethtool use core xmit map and free functionality
> 4eefa8f0131410eddaca323cd65e1ebefe3b3328 igb: add single vector msi-x testing to interrupt test
> 83ab50a56e6ea94627fea83ce7b03332bd4c2f02 igb: cleanup "todo" code found in igb_ethtool.c
> 4fc82adfb01bdee79ec21e44557dc409ef31419a igb: add support for seperate tx-usecs setting in ethtool
> c5b9bd5e4f7caea10d113f610b85cc2093cc3179 igb: cleanup some of the code related to hw timestamping
> 317f66bdadc31f0c037b91ae7857f5c3d2a4e3e5 igb: misc cleanups within igb_ethtool.c
> d249be54745259980dcbd898bdfeb7307c9c5e10 igb: use packet buffer sizes from RXPBS register
> f2ca0dbe077389f061ffa15de9dd7fc96a5b97d2 igb: replace the VF clear_to_send with a flags value
> 7d5753f08c5be5440ac0385b5f2518d2630be7b7 igb: rework use of VMOLR in regards to PF and VFs
> 51466239fb9f95343e88c14475a0f99fe4882c54 igb: rework handling of the vfta and vlvf registers in relation to mng_vlan
> a6b623e0e5787ba5ffd2a3c4448ff6d1eaa904a9 igb: move vf init into a seperate function
> 3f9c01648146a256d8238292ac9c63fed7e00473 igb: only process global stats in igb_update_stats
> 4337e993e13eb2f2e05dd65a3ab25b57c2f89d56 igb: move global_quad_port_a from global into local static define
> f7ba205e823f32e634712323a221b42bfea06efa igb: make tx hang check multiqueue, check eop descriptor
> 439705e1d7281cc8a4631a2dc390df7ad868bad8 igb: cleanup code related to ring resource allocation and free
> ee1b9f06dca9c406b159904e9b13ea2dfa5ed037 igb: change queue ordering for 82576 based adapters
> 25568a531a1bc76fdf968382a4eb65a979186c67 igb: cleanup interrupt enablement in regards to msix_other
> 645a3abd73c2ac05d375f080d2f58d56e1502562 igb: Remove invalid stats counters
> 2e5655e758736488abbe9c024c8cda0e367214e5 igb: cleanup igb.h header whitespace and some structure formatting
> cdfd01fcc674cc1c0c7b54084d74c2b684bf67c2 igb: cleanup igb xmit frame path
> 42d0781a1337ec5624da0657ba57b734768f489c igb: cleanup clean_rx_irq_adv and alloc_rx_buffers_adv
> 330a6d6a7c75e11ca6da52092cfa96cda45d3386 igb: replace unecessary &adapter->hw with just hw where applicable
> 090b17952826eb3c5d712b6d4f90a292fe4acc93 igb: add pci_dev in few spots to clean up use of dev_err/info/warn
> c809d2276cb035228cd9e83e2ca7d2b902c61cef igb: limit minimum mtu to 68 to keep ip bound to interface
> 5b043fb08e1b9e10eef7cc41512462f99811e96e igb: open up SCTP checksum offloads to all MACs 82576 and newer
> 559e9c4987e90e278db347b0a2ba423e7e496fd3 igb: cleanup whitespace issues in igb_main.c
> d6b9076f1b5dd22b63f0178923f420f4e0f81a8d igb: Fix warnings in igb_set_ringparam()
> 0e15439ae5fefe438056a26a00aa3c6a9de454e9 igb: change type for ring sizes to u16 in igb_set_ring_param
> 115f459a53b0c56a699a76b34b82507452eb3df5 igb: move timesync init into a seperate function
> a99955fc067f57cf3b627d4c74bf7952a2d51029 igb: when number of CPUs > 4 combine tx/rx queues to allow more queues
> 128e45eb61b90c0c3094139cab6d00f67ff31377 igb: Rework how netdev->stats is handled
> 971d1d3a7e9f03af870909fddfc3b2fc08e4f5b1 igb: removed unused tx/rx total bytes/packets from adapter struct
> dbabb065802a46d64b8869ba97674bfa90b55d83 igb: check for packets on all tx rings when link is down
> d1eff35061b9346cb9bef2b79d9d99c8c096df13 igb: only recycle page if it is on our numa node
> #a0607fd3a25ba1848a63a0d925e36d914735ab47 drivers/net: request_irq - Remove unnecessary leading & from second arg
> 2909c3f79d933b55bf2485addb1dca762210b6af igb: add support for the 82580 phy
> bb2ac47bcfd47ed9431ff1676ec8d79250c941c9 igb: add support for 82580 MAC
> 55cac248caa4a5f181a11cd2f269a672bef3d3b5 igb: Add full support for 82580 devices
> 6366ad331f436388129dfc044db871de79604e4d igb: remove use of skb_dma_map from driver
> #8e95a2026f3b43f7c3d676adaccd2de9532e8dcc drivers/net: Move && and || to end of previous line
> fef45f4ce221fc110f70716a00f40be697c5b254 igb: fix handling of mailbox collisions between PF/VF
> d68caec645b4b92f6a81985265b024bc94bce41f igb: do not force pcs link when in KX mode
> 8c6af2995c14e71558c312b86955ae32272a03d8 igb: do not force retry count to 1 on 82580 phy
> d405ea3ef2499eb46834418a643973c884ff7f30 igb: correctly offset 82575 flow control watermarks by 16 bytes
> 58b8b042509f53955ba660a4245e221c5405f124 igb: check both function bits in status register in wol exception
> #8581145f39c39b00cd1b6a2dcb4ce5bf7d8d6070 igb/igbvf: cleanup exception handling in tx_map_adv
> #8e1e8a4779cb23c1d9f51e9223795e07ec54d77a net: Fix IPv6 GSO type checks in Intel ethernet drivers
> feeb2721a7a0bd0cfa5b8847f80aec93aa2cc00d igb: make certain to reassign legacy interrupt vectors after reset
> 
> rtg
> ---
> The following changes since commit 70257c6ad432da472ac8a0fac4c4cc6a9774850b:
>   Marcel Holtmann (1):
>         (pre-stable) Bluetooth: Fix sleeping function in RFCOMM within invalid context
> 
> are available in the git repository at:
> 
>   git://kernel.ubuntu.com/rtg/ubuntu-lucid.git lp485577-igb
> 
> Ajit Khaparde (2):
>       igb: Use the instance of net_device_stats from net_device.
>       igb: Fix erroneous display of stats by ethtool -S
> 
> Alexander Duyck (75):
>       igb: remove unused temp variable from stats clearing path
>       igb: update comments for serdes config and update to handle duplex
>       igb: update the approach taken to acquiring and releasing the phy lock
>       igb: add locking to reads of the i2c interface
>       igb: add combined function for setting rar and pool bits
>       igb: make use of the uta to allow for promiscous mode filter
>       igb: add support for 82576NS SerDes adapter
>       igb: add function to handle mailbox lock
>       igb: fix a few items where weren't correctly setup for mbx timeout
>       igb: change how we handle alternate mac addresses
>       igb: remove microwire support from igb
>       igb: move the generic copper link setup code into e1000_phy.c
>       igb: add code to retry a phy read in the event of failure on link check
>       igb: add additional error handling to the phy code
>       igb: add flushes between RAR writes when setting mac address
>       igb: add new data structure for handling interrupts and NAPI
>       igb: remove rx checksum good counter
>       igb: increase minimum rx buffer size to 1K
>       igb: move the tx and rx ring specific config into seperate functions
>       igb: remove rx_ps_hdr_len
>       igb: move SRRCTL register configuration into ring specific config
>       igb: change the head and tail offsets into pointers
>       igb: add pci device pointer to ring structure
>       igb: move rx_buffer_len into the ring structure
>       igb: move alloc_failed and csum_err stats into per rx-ring stat
>       igb: add a flags value to the ring
>       igb: place a pointer to the netdev struct in the ring itself
>       igb: move the multiple receive queue configuration into seperate function
>       igb: delay VF reset notification until after interrupts are enabed
>       igb: setup vlan tag replication stripping in igb_vmm_control
>       igb: re-use ring configuration code in ethtool testing
>       igb: make tx ring map and free functionality non-static
>       igb: make ethtool use core xmit map and free functionality
>       igb: add single vector msi-x testing to interrupt test
>       igb: cleanup "todo" code found in igb_ethtool.c
>       igb: add support for seperate tx-usecs setting in ethtool
>       igb: cleanup some of the code related to hw timestamping
>       igb: misc cleanups within igb_ethtool.c
>       igb: use packet buffer sizes from RXPBS register
>       igb: replace the VF clear_to_send with a flags value
>       igb: rework use of VMOLR in regards to PF and VFs
>       igb: rework handling of the vfta and vlvf registers in relation to mng_vlan
>       igb: move vf init into a seperate function
>       igb: only process global stats in igb_update_stats
>       igb: move global_quad_port_a from global into local static define
>       igb: make tx hang check multiqueue, check eop descriptor
>       igb: cleanup code related to ring resource allocation and free
>       igb: change queue ordering for 82576 based adapters
>       igb: cleanup interrupt enablement in regards to msix_other
>       igb: Remove invalid stats counters
>       igb: cleanup igb.h header whitespace and some structure formatting
>       igb: cleanup igb xmit frame path
>       igb: cleanup clean_rx_irq_adv and alloc_rx_buffers_adv
>       igb: replace unecessary &adapter->hw with just hw where applicable
>       igb: add pci_dev in few spots to clean up use of dev_err/info/warn
>       igb: limit minimum mtu to 68 to keep ip bound to interface
>       igb: open up SCTP checksum offloads to all MACs 82576 and newer
>       igb: cleanup whitespace issues in igb_main.c
>       igb: change type for ring sizes to u16 in igb_set_ring_param
>       igb: move timesync init into a seperate function
>       igb: when number of CPUs > 4 combine tx/rx queues to allow more queues
>       igb: Rework how netdev->stats is handled
>       igb: removed unused tx/rx total bytes/packets from adapter struct
>       igb: check for packets on all tx rings when link is down
>       igb: only recycle page if it is on our numa node
>       igb: add support for the 82580 phy
>       igb: add support for 82580 MAC
>       igb: Add full support for 82580 devices
>       igb: remove use of skb_dma_map from driver
>       igb: fix handling of mailbox collisions between PF/VF
>       igb: do not force pcs link when in KX mode
>       igb: do not force retry count to 1 on 82580 phy
>       igb: correctly offset 82575 flow control watermarks by 16 bytes
>       igb: check both function bits in status register in wol exception
>       igb: make certain to reassign legacy interrupt vectors after reset
> 
> David S. Miller (1):
>       igb: Fix warnings in igb_set_ringparam()
> 
>  drivers/net/igb/e1000_82575.c   |  570 +++++---
>  drivers/net/igb/e1000_82575.h   |   32 +
>  drivers/net/igb/e1000_defines.h |   50 +-
>  drivers/net/igb/e1000_hw.h      |   22 +-
>  drivers/net/igb/e1000_mac.c     |  100 +-
>  drivers/net/igb/e1000_mbx.c     |   82 +-
>  drivers/net/igb/e1000_mbx.h     |   10 +-
>  drivers/net/igb/e1000_nvm.c     |   36 +-
>  drivers/net/igb/e1000_phy.c     |  444 +++++-
>  drivers/net/igb/e1000_phy.h     |   37 +-
>  drivers/net/igb/e1000_regs.h    |   80 +-
>  drivers/net/igb/igb.h           |  149 +-
>  drivers/net/igb/igb_ethtool.c   |  745 +++++----
>  drivers/net/igb/igb_main.c      | 3461 ++++++++++++++++++++++-----------------
>  14 files changed, 3517 insertions(+), 2301 deletions(-)
> 
Frankly, this just looks to intrusive to be called a bug fix. And it heavily
modifies an existing driver. Plus we really have feature freeze now.
So NAK from me here for the main kernel. I would much more prefer this to be LBM.

Stefan




More information about the kernel-team mailing list