]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
Sync the e1000 drivers with what's in head as of r294327, modulo parts
authormarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 27 Jan 2016 22:31:08 +0000 (22:31 +0000)
committermarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 27 Jan 2016 22:31:08 +0000 (22:31 +0000)
commit3cca592e163697487ecd2837325e1e8135d06bba
tree22954ba54784aaaa182cb306bc057f056e903b18
parentd388ddaa464a1a628f880053be440cb0c9da6c10
Sync the e1000 drivers with what's in head as of r294327, modulo parts
that don't apply to stable/10 (driver API, if_inc_counter(), RSS changes
etc.) and modulo r287465 (which reportedly breaks igb(4)), i. e. assorted
fixes and improvements only:

o MFC r267385 (partial):
  - Don't compare bus_dma map pointers for static DMA allocations against
    NULL to determine if bus_dmamap_unload() or bus_dmamem_free() should be
    called. Instead, check the associated bus and virtual addresses.
  - Don't clear static DMA maps to NULL.
o MFC r284933:
  Delete the refernce to VLAN handling being disabled by default. This is
  no longer the case. [1]
o MFC r285639:
  Add an adapter CORE lock in the DDB hook em_dump_queue to avoid WITNESS
  panic in em_init_locked() while debugging.
o MFC r285879:
  - Remove unused txd_saved.
  - Intialize txd_upper, txd_lower and txd_used at declaration.
o MFC r286162:
  Free mbufs when busdma loading fails.
o MFC r286829:
  Add capability to disable CRC stripping as it breaks IPMI/BMC capabilities
  on certain adatpers. [2]
o MFC r286831: [3]
  - Increase EM_MAX_SCATTER to 64 such that the size of em_xmit()::
    segs[EM_MAX_SCATTER] doesn't get overrun by things like NFS that can
    and do shove more than 32 segs when being used with em(4) and TSO4.
  - Update tso handling code in em_xmit() with update from jhb@
  - Set if_hw_tsomax, if_hw_tsomaxsegcount and if_hw_tsomaxsegsize to
    appropriate values.
  - Define a TSO workaround "magic" number of 4 that is used to avoid an
    alignment issue in hardware.
  - Change a couple of integer values that were used as booleans to actual
    bool types.
  - Ensure that em_enable_intr() enables the appropriate mask of interrupts
    and not just a hardcoded define of values.
o MFC r286832:
  e1000/if_lem.c bump to 1.1.0
o MFC r286833:
  Bump all copywrite dates to 2015.
o MFC r287112:
  Style/whitespace cleanup in shared/common code.
o MFC r293331:
  - Switch em(4) to the extended RX descriptor format.
  - Split rxbuffer and txbuffer apart to support the new RX descriptor
    format structures. Move rxbuffer manipulation to em_setup_rxdesc() to
    unify the new behavior changes.
  - Add a RSSKEYLEN macro for help in generating the RSSKEY data structures
    in the card.
  - Change em_receive_checksum() to process the new rxdescriptor format
    status bit.
o MFC r293332:
  Disable the reuse of checksum offload context descriptors in the case
  of multiple queues in em(4). Document errata in the code.
o MFC r293854:
  Given that em(4), lem(4) and igb(4) hardware doesn't require the
  alignment guarantees provided by m_defrag(9), use m_collapse(9)
  instead for performance reasons.
  While at it, sanitize the statistics softc members, i. e. retire
  unused ones and add SYSCTL nodes missing for actually used ones.

PR: 118693 [1], 161277 [2], 195078 [3], 199174 [3], 200221 [3]

git-svn-id: svn://svn.freebsd.org/base/stable/10@294958 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
44 files changed:
share/man/man4/em.4
sys/dev/e1000/e1000_80003es2lan.c
sys/dev/e1000/e1000_80003es2lan.h
sys/dev/e1000/e1000_82540.c
sys/dev/e1000/e1000_82541.c
sys/dev/e1000/e1000_82541.h
sys/dev/e1000/e1000_82542.c
sys/dev/e1000/e1000_82543.c
sys/dev/e1000/e1000_82543.h
sys/dev/e1000/e1000_82571.c
sys/dev/e1000/e1000_82571.h
sys/dev/e1000/e1000_82575.c
sys/dev/e1000/e1000_82575.h
sys/dev/e1000/e1000_api.c
sys/dev/e1000/e1000_api.h
sys/dev/e1000/e1000_defines.h
sys/dev/e1000/e1000_hw.h
sys/dev/e1000/e1000_i210.c
sys/dev/e1000/e1000_i210.h
sys/dev/e1000/e1000_ich8lan.c
sys/dev/e1000/e1000_ich8lan.h
sys/dev/e1000/e1000_mac.c
sys/dev/e1000/e1000_mac.h
sys/dev/e1000/e1000_manage.c
sys/dev/e1000/e1000_manage.h
sys/dev/e1000/e1000_mbx.c
sys/dev/e1000/e1000_mbx.h
sys/dev/e1000/e1000_nvm.c
sys/dev/e1000/e1000_nvm.h
sys/dev/e1000/e1000_osdep.c
sys/dev/e1000/e1000_osdep.h
sys/dev/e1000/e1000_phy.c
sys/dev/e1000/e1000_phy.h
sys/dev/e1000/e1000_regs.h
sys/dev/e1000/e1000_vf.c
sys/dev/e1000/e1000_vf.h
sys/dev/e1000/if_em.c
sys/dev/e1000/if_em.h
sys/dev/e1000/if_igb.c
sys/dev/e1000/if_igb.h
sys/dev/e1000/if_lem.c
sys/dev/e1000/if_lem.h
sys/dev/ixgb/if_ixgb.c
sys/dev/netmap/if_em_netmap.h