1. 18 Apr, 2013 6 commits
    • Joe Perches's avatar
      ixgbe: Remove unnecessary #ifdef CONFIG_DEBUG_FS tests · 33243fb0
      Joe Perches authored
      Add some empty static inlines instead to make
      the code more readable.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Tested-by: default avatarPhil Schmitt <phillip.j.schmitt@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    • Jacob Keller's avatar
      ixgbe: Add support for WoL on 82599 SFP+ LOM · 979fe5f7
      Jacob Keller authored
      This patch adds software support for WoL for the 82599 SFP+ LOM device,
      (ID 0x8976)
      Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Tested-by: default avatarPhil Schmitt <phillip.j.schmitt@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    • akepner's avatar
      ixgbe: in shutdown, do netif_running() under rtnl_lock · 499ab5cc
      akepner authored
      During shutdown it's possible for __dev_close() (which holds
      rtnl_lock) to clear the __LINK_STATE_START bit, and for ixgbe
      to then read that bit (without holding rtnl_lock), and then
      not fail to free irqs, etc. The result is a crash like this:
      ------------[ cut here ]------------
      kernel BUG at drivers/pci/msi.c:313!
      invalid opcode: 0000 [#1] SMP
      last sysfs file: /sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
      CPU 1
      Pid: 5910, comm: reboot Tainted: P           ----------------   2.6.32 #1 empty
      RIP: 0010:[<ffffffff81305c2b>]  [<ffffffff81305c2b>] free_msi_irqs+0x11b/0x130
      RSP: 0018:ffff880185c9bc88  EFLAGS: 00010282
      RAX: ffff880219f58bc0 RBX: ffff88021ac53b00 RCX: 0000000000000000
      RDX: 0000000000000001 RSI: 0000000000000246 RDI: 000000000000004a
      RBP: ffff880185c9bcc8 R08: 0000000000000002 R09: 0000000000000106
      R10: 0000000000000000 R11: 0000000000000006 R12: ffff88021e524778
      R13: 0000000000000001 R14: ffff88021e524000 R15: 0000000000000000
      FS:  00007f90821b7700(0000) GS:ffff880028220000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      CR2: 00007f90818bd010 CR3: 0000000132c64000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process reboot (pid: 5910, threadinfo ffff880185c9a000, task ffff88021bf04a80)
       ffff880185c9bc98 000000018130529d ffff880185c9bcc8 ffff88021e524000
      <0> 0000000000000004 ffff88021948c700 0000000000000000 ffff880185c9bda7
      <0> ffff880185c9bce8 ffffffff81305cbd ffff880185c9bce8 ffff88021948c700
      Call Trace:
       [<ffffffff81305cbd>] pci_disable_msix+0x3d/0x50
       [<ffffffffa00501d5>] ixgbe_reset_interrupt_capability+0x65/0x90 [ixgbe]
       [<ffffffffa00512f6>] ixgbe_clear_interrupt_scheme+0xb6/0xd0 [ixgbe]
       [<ffffffffa005330b>] __ixgbe_shutdown+0x5b/0x200 [ixgbe]
       [<ffffffffa00534ca>] ixgbe_shutdown+0x1a/0x60 [ixgbe]
       [<ffffffff812f6c7c>] pci_device_shutdown+0x2c/0x50
       [<ffffffff813727fb>] device_shutdown+0x4b/0x160
       [<ffffffff8107d98c>] kernel_restart_prepare+0x2c/0x40
       ehci timer_action, mod_timer io_watchdog
       [<ffffffff8107d9e6>] kernel_restart+0x16/0x60
       [<ffffffff8107dbfd>] sys_reboot+0x1ad/0x200
       [<ffffffff811676cf>] ? __d_free+0x3f/0x60
       [<ffffffff81167748>] ? d_free+0x58/0x60
       [<ffffffff8116f7c0>] ? mntput_no_expire+0x30/0x100
       [<ffffffff81152b11>] ? __fput+0x191/0x200
       [<ffffffff816565fe>] ? do_page_fault+0x3e/0xa0
       [<ffffffff8100b132>] system_call_fastpath+0x16/0x1b
      Code: 4c 89 ef e8 98 8c e3 ff 4d 39 f4 48 8b 43 10 75 cf 48 83 c4 18 5b 41 5c
      41 5d 41 5e 41 5f c9 c3 49 8b 7d 20 e8 07 5a d3 ff eb c9 <0f> 0b 0f 1f 00 eb fb
      66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00
       ehci timer_action, mod_timer io_watchdog
      RIP  [<ffffffff81305c2b>] free_msi_irqs+0x11b/0x130
       RSP <ffff880185c9bc88>
      ---[ end trace 27de882a0fe75593 ]---
      (This was seen on a pretty old kernel/driver, but looks like
      the same bug is still possible.)
      Signed-off-by: <akepner@riverbed.com>
      Tested-by: default avatarPhil Schmitt <phillip.j.schmitt@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next · c1cb0d3b
      David S. Miller authored
      Jeff Kirsher says:
      This series contains updates to ixgbe only.
      v2- Dropped the following 2 patches from the series:
       ixgbe: Support using build_skb in the case that jumbo frames are disabled
       ixgbe: walk pci-e bus to find minimum width
      Ben Hutchings found a bug with Alex's patch, so that patch was dropped
      permanently.  Jacob's "walk PCIe bus" patch is being re-worked for
      a more generic solution so that other drivers can benefit.
      In the remaining patches...
      Alex provides a fix where we were incorrectly checking the entire frag_off
      field when we only wanted the fragment offset.  Alex also cleans up
      the check for PAGE_SIZE, since the default configuration allocates 32K
      for all buffers.
      Emil provides a change to the calculation of eerd so that it is consistent
      between the read and write functions by using | instead of +.
      Jacob adds support for displaying PCIe Gen3 link speed, which was
      previously missing from the ixgbe driver.  He also provides a patch
      to clean up ixgbe_get_bus_info_generic to call some conversion
      functions, which are used also in another patch provided by Jacob.
      Jacob modifies the driver to enable certain devices (which have an
      internal switch) to read from the physical slot rather than reading
      data from the internal switch.
      Don provides a couple of fixes (which are more appropriate for net-next),
      one of which resolves an issue where ixgbe was only turning on the laser
      when the adapter was up which caused issues for those who wanted to
      access the MNG firmware while the port was in a down state.  The other
      fix is for WoL when currently linked at 1G.  Lastly Don bumps the driver
      version keep the in-kernel driver up to date with the current functionality.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Eric Dumazet's avatar
      tcp: introduce TCPSpuriousRtxHostQueues SNMP counter · 0e280af0
      Eric Dumazet authored
      Host queues (Qdisc + NIC) can hold packets so long that TCP can
      eventually retransmit a packet before the first transmit even left
      the host.
      Its not clear right now if we could avoid this in the first place :
      - We could arm RTO timer not at the time we enqueue packets, but
        at the time we TX complete them (tcp_wfree())
      - Cancel the sending of the new copy of the packet if prior one
        is still in queue.
      This patch adds instrumentation so that we can at least see how
      often this problem happens.
      TCPSpuriousRtxHostQueues SNMP counter is incremented every time
      we detect the fast clone is not yet freed in tcp_transmit_skb()
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Fabio Estevam's avatar
      fec: Remove unneeded asm header files · 5a5967d8
      Fabio Estevam authored
      There is nothing in the driver that requires <asm/coldfire.h> and
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
  2. 17 Apr, 2013 24 commits
  3. 16 Apr, 2013 10 commits