1. 09 8月, 2017 2 次提交
  2. 08 6月, 2017 1 次提交
    • C
      e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails · 833521eb
      Chris Wilson 提交于
      An error during suspend (e100e_pm_suspend),
      
      [  429.994338] ACPI : EC: event blocked
      [  429.994633] e1000e: EEE TX LPI TIMER: 00000011
      [  430.955451] pci_pm_suspend(): e1000e_pm_suspend+0x0/0x30 [e1000e] returns -2
      [  430.955454] dpm_run_callback(): pci_pm_suspend+0x0/0x140 returns -2
      [  430.955458] PM: Device 0000:00:19.0 failed to suspend async: error -2
      [  430.955581] PM: Some devices failed to suspend, or early wake event detected
      [  430.957709] ACPI : EC: event unblocked
      
      lead to complete failure:
      
      [  432.585002] ------------[ cut here ]------------
      [  432.585013] WARNING: CPU: 3 PID: 8372 at kernel/irq/manage.c:1478 __free_irq+0x9f/0x280
      [  432.585015] Trying to free already-free IRQ 20
      [  432.585016] Modules linked in: cdc_ncm usbnet x86_pkg_temp_thermal intel_powerclamp coretemp mii crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hwdep lpc_ich snd_hda_core snd_pcm mei_me mei sdhci_pci sdhci i915 mmc_core e1000e ptp pps_core prime_numbers
      [  432.585042] CPU: 3 PID: 8372 Comm: kworker/u16:40 Tainted: G     U          4.10.0-rc8-CI-Patchwork_3870+ #1
      [  432.585044] Hardware name: LENOVO 2356GCG/2356GCG, BIOS G7ET31WW (1.13 ) 07/02/2012
      [  432.585050] Workqueue: events_unbound async_run_entry_fn
      [  432.585051] Call Trace:
      [  432.585058]  dump_stack+0x67/0x92
      [  432.585062]  __warn+0xc6/0xe0
      [  432.585065]  warn_slowpath_fmt+0x4a/0x50
      [  432.585070]  ? _raw_spin_lock_irqsave+0x49/0x60
      [  432.585072]  __free_irq+0x9f/0x280
      [  432.585075]  free_irq+0x34/0x80
      [  432.585089]  e1000_free_irq+0x65/0x70 [e1000e]
      [  432.585098]  e1000e_pm_freeze+0x7a/0xb0 [e1000e]
      [  432.585106]  e1000e_pm_suspend+0x21/0x30 [e1000e]
      [  432.585113]  pci_pm_suspend+0x71/0x140
      [  432.585118]  dpm_run_callback+0x6f/0x330
      [  432.585122]  ? pci_pm_freeze+0xe0/0xe0
      [  432.585125]  __device_suspend+0xea/0x330
      [  432.585128]  async_suspend+0x1a/0x90
      [  432.585132]  async_run_entry_fn+0x34/0x160
      [  432.585137]  process_one_work+0x1f4/0x6d0
      [  432.585140]  ? process_one_work+0x16e/0x6d0
      [  432.585143]  worker_thread+0x49/0x4a0
      [  432.585145]  kthread+0x107/0x140
      [  432.585148]  ? process_one_work+0x6d0/0x6d0
      [  432.585150]  ? kthread_create_on_node+0x40/0x40
      [  432.585154]  ret_from_fork+0x2e/0x40
      [  432.585156] ---[ end trace 6712df7f8c4b9124 ]---
      
      The unwind failures stems from commit 28002099 ("e1000e: Refactor PM
      flows"), but it may be a later patch that introduced the non-recoverable
      behaviour.
      
      Fixes: 28002099 ("e1000e: Refactor PM flows")
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99847Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      833521eb
  3. 06 6月, 2017 4 次提交
  4. 22 5月, 2017 2 次提交
  5. 30 4月, 2017 4 次提交
  6. 21 4月, 2017 1 次提交
  7. 25 3月, 2017 1 次提交
  8. 22 3月, 2017 1 次提交
  9. 19 1月, 2017 1 次提交
    • T
      net: Remove usage of net_device last_rx member · 4a7c9726
      Tobias Klauser 提交于
      The network stack no longer uses the last_rx member of struct net_device
      since the bonding driver switched to use its own private last_rx in
      commit 9f242738 ("bonding: use last_arp_rx in slave_last_rx()").
      
      However, some drivers still (ab)use the field for their own purposes and
      some driver just update it without actually using it.
      
      Previously, there was an accompanying comment for the last_rx member
      added in commit 4dc89133 ("net: add a comment on netdev->last_rx")
      which asked drivers not to update is, unless really needed. However,
      this commend was removed in commit f8ff080d ("bonding: remove
      useless updating of slave->dev->last_rx"), so some drivers added later
      on still did update last_rx.
      
      Remove all usage of last_rx and switch three drivers (sky2, atp and
      smc91c92_cs) which actually read and write it to use their own private
      copy in netdev_priv.
      
      Compile-tested with allyesconfig and allmodconfig on x86 and arm.
      
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Jay Vosburgh <j.vosburgh@gmail.com>
      Cc: Veaceslav Falico <vfalico@gmail.com>
      Cc: Andy Gospodarek <andy@greyhouse.net>
      Cc: Mirko Lindner <mlindner@marvell.com>
      Cc: Stephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: NTobias Klauser <tklauser@distanz.ch>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Reviewed-by: NJay Vosburgh <jay.vosburgh@canonical.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4a7c9726
  10. 09 1月, 2017 2 次提交
  11. 06 1月, 2017 1 次提交
  12. 25 12月, 2016 1 次提交
  13. 11 12月, 2016 1 次提交
  14. 18 10月, 2016 1 次提交
    • J
      ethernet/intel: use core min/max MTU checking · 91c527a5
      Jarod Wilson 提交于
      e100: min_mtu 68, max_mtu 1500
      - remove e100_change_mtu entirely, is identical to old eth_change_mtu,
        and no longer serves a purpose. No need to set min_mtu or max_mtu
        explicitly, as ether_setup() will already set them to 68 and 1500.
      
      e1000: min_mtu 46, max_mtu 16110
      
      e1000e: min_mtu 68, max_mtu varies based on adapter
      
      fm10k: min_mtu 68, max_mtu 15342
      - remove fm10k_change_mtu entirely, does nothing now
      
      i40e: min_mtu 68, max_mtu 9706
      
      i40evf: min_mtu 68, max_mtu 9706
      
      igb: min_mtu 68, max_mtu 9216
      - There are two different "max" frame sizes claimed and both checked in
        the driver, the larger value wasn't relevant though, so I've set max_mtu
        to the smaller of the two values here to retain identical behavior.
      
      igbvf: min_mtu 68, max_mtu 9216
      - Same issue as igb duplicated
      
      ixgb: min_mtu 68, max_mtu 16114
      - Also remove pointless old == new check, as that's done in dev_set_mtu
      
      ixgbe: min_mtu 68, max_mtu 9710
      
      ixgbevf: min_mtu 68, max_mtu dependent on hardware/firmware
      - Some hw can only handle up to max_mtu 1504 on a vf, others 9710
      
      CC: netdev@vger.kernel.org
      CC: intel-wired-lan@lists.osuosl.org
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      91c527a5
  15. 22 9月, 2016 1 次提交
  16. 17 8月, 2016 2 次提交
  17. 30 6月, 2016 2 次提交
  18. 29 6月, 2016 1 次提交
    • J
      e1000e: keep VLAN interfaces functional after rxvlan off · 889ad456
      Jarod Wilson 提交于
      I've got a bug report about an e1000e interface, where a VLAN interface is
      set up on top of it:
      
      $ ip link add link ens1f0 name ens1f0.99 type vlan id 99
      $ ip link set ens1f0 up
      $ ip link set ens1f0.99 up
      $ ip addr add 192.168.99.92 dev ens1f0.99
      
      At this point, I can ping another host on vlan 99, ip 192.168.99.91.
      However, if I do the following:
      
      $ ethtool -K ens1f0 rxvlan off
      
      Then no traffic passes on ens1f0.99. It comes back if I toggle rxvlan on
      again. I'm not sure if this is actually intended behavior, or if there's a
      lack of software VLAN stripping fallback, or what, but things continue to
      work if I simply don't call e1000e_vlan_strip_disable() if there are
      active VLANs (plagiarizing a function from the e1000 driver here) on the
      interface.
      
      Also slipped a related-ish fix to the kerneldoc text for
      e1000e_vlan_strip_disable here...
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      889ad456
  19. 24 6月, 2016 1 次提交
  20. 14 5月, 2016 8 次提交
  21. 05 5月, 2016 1 次提交
    • F
      drivers: replace dev->trans_start accesses with dev_trans_start · 4d0e9657
      Florian Westphal 提交于
      a trans_start struct member exists twice:
      - in struct net_device (legacy)
      - in struct netdev_queue
      
      Instead of open-coding dev->trans_start usage to obtain the current
      trans_start value, use dev_trans_start() instead.
      
      This is not exactly the same, as dev_trans_start also considers
      the trans_start values of the netdev queues owned by the device
      and provides the most recent one.
      
      For legacy devices this doesn't matter as dev_trans_start can cope
      with netdev trans_start values of 0 (they are ignored).
      
      This is a prerequisite to eventual removal of dev->trans_start.
      
      Cc: linux-rdma@vger.kernel.org
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4d0e9657
  22. 07 4月, 2016 1 次提交