1. 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
  2. 28 9月, 2016 1 次提交
  3. 24 9月, 2016 1 次提交
    • M
      net: Update API for VF vlan protocol 802.1ad support · 79aab093
      Moshe Shemesh 提交于
      Introduce new rtnl UAPI that exposes a list of vlans per VF, giving
      the ability for user-space application to specify it for the VF, as an
      option to support 802.1ad.
      We adjusted IP Link tool to support this option.
      
      For future use cases, the new UAPI supports multiple vlans. For now we
      limit the list size to a single vlan in kernel.
      Add IFLA_VF_VLAN_LIST in addition to IFLA_VF_VLAN to keep backward
      compatibility with older versions of IP Link tool.
      
      Add a vlan protocol parameter to the ndo_set_vf_vlan callback.
      We kept 802.1Q as the drivers' default vlan protocol.
      Suitable ip link tool command examples:
        Set vf vlan protocol 802.1ad:
          ip link set eth0 vf 1 vlan 100 proto 802.1ad
        Set vf to VST (802.1Q) mode:
          ip link set eth0 vf 1 vlan 100 proto 802.1Q
        Or by omitting the new parameter
          ip link set eth0 vf 1 vlan 100
      Signed-off-by: NMoshe Shemesh <moshe@mellanox.com>
      Signed-off-by: NTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      79aab093
  4. 19 8月, 2016 1 次提交
  5. 30 6月, 2016 3 次提交
  6. 24 6月, 2016 1 次提交
  7. 21 5月, 2016 2 次提交
  8. 14 5月, 2016 3 次提交
  9. 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
  10. 07 4月, 2016 4 次提交
  11. 18 3月, 2016 1 次提交
    • J
      mm: introduce page reference manipulation functions · fe896d18
      Joonsoo Kim 提交于
      The success of CMA allocation largely depends on the success of
      migration and key factor of it is page reference count.  Until now, page
      reference is manipulated by direct calling atomic functions so we cannot
      follow up who and where manipulate it.  Then, it is hard to find actual
      reason of CMA allocation failure.  CMA allocation should be guaranteed
      to succeed so finding offending place is really important.
      
      In this patch, call sites where page reference is manipulated are
      converted to introduced wrapper function.  This is preparation step to
      add tracepoint to each page reference manipulation function.  With this
      facility, we can easily find reason of CMA allocation failure.  There is
      no functional change in this patch.
      
      In addition, this patch also converts reference read sites.  It will
      help a second step that renames page._count to something else and
      prevents later attempt to direct access to it (Suggested by Andrew).
      Signed-off-by: NJoonsoo Kim <iamjoonsoo.kim@lge.com>
      Acked-by: NMichal Nazarewicz <mina86@mina86.com>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Mel Gorman <mgorman@techsingularity.net>
      Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fe896d18
  12. 25 2月, 2016 6 次提交
    • S
      igb: call ndo_stop() instead of dev_close() when running offline selftest · 46eafa59
      Stefan Assmann 提交于
      Calling dev_close() causes IFF_UP to be cleared which will remove the
      interfaces routes and some addresses. That's probably not what the user
      intended when running the offline selftest. Besides this does not happen
      if the interface is brought down before the test, so the current
      behaviour is inconsistent.
      Instead call the net_device_ops ndo_stop function directly and avoid
      touching IFF_UP at all.
      Signed-off-by: NStefan Assmann <sassmann@kpanic.de>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      46eafa59
    • C
      igb: Fix VLAN tag stripping on Intel i350 · 030f9f52
      Corinna Vinschen 提交于
      Problem: When switching off VLAN offloading on an i350, the VLAN
      interface gets unusable.  For testing, set up a VLAN on an i350
      and some remote machine, e.g.:
      
        $ ip link add link eth0 name eth0.42 type vlan id 42
        $ ip addr add 192.168.42.1/24 dev eth0.42
        $ ip link set dev eth0.42 up
      
      Offloading is switched on by default:
      
        $ ethtool -k eth0 | grep vlan-offload
        rx-vlan-offload: on
        tx-vlan-offload: on
      
        $ ping -c 3 -I eth0.42 192.168.42.2
        [...works as usual...]
      
      Now switch off VLAN offloading and try again:
      
        $ ethtool -K eth0 rxvlan off
        Actual changes:
        rx-vlan-offload: off
        tx-vlan-offload: off [requested on]
        $ ping -c 3 -I eth0.42 192.168.42.2
        PING 192.168.42.2 (192.168.42.2) from 192.168.42.1 eth0.42: 56(84) bytes of da
      ta.
      
        --- 192.168.42.2 ping statistics ---
        3 packets transmitted, 0 received, 100% packet loss, time 1999ms
      
      I can only reproduce it on an i350, the above works fine on a 82580.
      
      While inspecting the igb source, I came across the code in igb_set_vmolr
      which sets the E1000_VMOLR_STRVLAN/E1000_DVMOLR_STRVLAN flags once and
      for all, and in all of the igb code there's no other place where the
      STRVLAN is set or cleared.  Thus, VLAN stripping is enabled in igb
      unconditionally, independently of the offloading setting.
      
      I compared that to the latest Intel igb-5.3.3.5 driver from
      http://sourceforge.net/projects/e1000/ which in fact sets and clears the
      STRVLAN flag independently from igb_set_vmolr in its own function
      igb_set_vf_vlan_strip, depending on the vlan settings.
      
      So I included the STRVLAN handling from the igb-5.3.3.5 driver into our
      current igb driver and tested the above scenario again.  This time ping
      still works after switching off VLAN offloading.
      
      Tested on i350, with and without addtional VFs, as well as on 82580
      successfully.
      Signed-off-by: NCorinna Vinschen <vinschen@redhat.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      030f9f52
    • A
      igb: Add support for generic Tx checksums · 6e033700
      Alexander Duyck 提交于
      This patch adds support for generic Tx checksums to the igb driver.  It
      turns out this is actually pretty easy after going over the datasheet as we
      were doing a number of steps we didn't need to.
      
      In order to perform a Tx checksum for an L4 header we need to fill in the
      following fields in the Tx descriptor:
        MACLEN (maximum of 127), retrieved from:
      		skb_network_offset()
        IPLEN  (maximum of 511), retrieved from:
      		skb_checksum_start_offset() - skb_network_offset()
        TUCMD.L4T indicates offset and if checksum or crc32c, based on:
      		skb->csum_offset
      
      The added advantage to doing this is that we can support inner checksum
      offloads for tunnels and MPLS while still being able to transparently
      insert VLAN tags.
      
      I also took the opportunity to clean-up many of the feature flag
      configuration bits to make them a bit more consistent between drivers.
      Signed-off-by: NAlexander Duyck <aduyck@mirantis.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      6e033700
    • T
      igb: rename igb define to be more generic · c883de9f
      Todd Fujinaka 提交于
      E1000_MRQC_ENABLE_RSS_4Q enables 4 and 8 queues depending on the part
      so rename to be generic.
      
      Similarly, E1000_MRQC_ENABLE_VMDQ_RSS_2Q has no numeric meaning so
      rename to be more generic.
      Signed-off-by: NTodd Fujinaka <todd.fujinaka@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      c883de9f
    • T
      igb: enable WoL for OEM devices regardless of EEPROM setting · 5e350b92
      Todd Fujinaka 提交于
      Override EEPROM settings for specific OEM devices.
      Signed-off-by: NTodd Fujinaka <todd.fujinaka@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      5e350b92
    • T
      igb: When GbE link up, wait for Remote receiver status condition · b72f3f72
      Takuma Ueba 提交于
      I210 device IPv6 autoconf test sometimes fails,
      because DAD NS for link-local is not transmitted.
      This packet is silently dropped.
      This problem is seen only GbE environment.
      
      igb_watchdog_task link up detection continues to the following process.
      The following cases are observed:
      1.PHY 1000BASE-T Status Register Remote receiver status bit is NG.
      (NG status becomes OK after about 200 - 700ms)
      2.In this case, the transfer packet is silently dropped.
      
      1000BASE-T Status register
      [Expected]: 0x3800 or 0x7800
      [problem occurred]: 0x2800 or 0x6800
      Frequency of occurrence: approx 1/10 - 1/40 observed
      
      In order to avoid this problem,
      wait until 1000BASE-T Status register "Remote receiver status OK"
      
      After applying this patch, at least 400 runs succeed with no problems.
      Signed-off-by: NTakuma Ueba <t.ueba11@gmail.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      b72f3f72
  13. 16 2月, 2016 12 次提交
  14. 16 12月, 2015 1 次提交
  15. 13 12月, 2015 2 次提交