1. 18 Oct, 2016 40 commits
    • Robert Jarzmik's avatar
      net: smc91x: isolate u16 writes alignment workaround · d09d747a
      Robert Jarzmik authored
      Writes to u16 has a special handling on 3 PXA platforms, where the
      hardware wiring forces these writes to be u32 aligned.
      
      This patch isolates this handling for PXA platforms as before, but
      enables this "workaround" to be set up dynamically, which will be the
      case in device-tree build types.
      
      This patch was tested on 2 PXA platforms : mainstone, which relies on
      the workaround, and lubbock, which doesn't.
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d09d747a
    • Robert Jarzmik's avatar
      ARM: pxa: enhance smc91x platform data · 9a974342
      Robert Jarzmik authored
      Instead of having the smc91x driver relying on machine_is_*() calls,
      provide this data through platform data, ie. idp, mainstone and
      stargate.
      
      This way, the driver doesn't need anymore machine_is_*() calls, which
      wouldn't work anymore with a device-tree build.
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9a974342
    • Bert Kenward's avatar
      ethernet/sfc: use core min/max MTU checking · cd94e519
      Bert Kenward authored
      Fixes: 61e84623 ("net: centralize net_device min/max MTU checking")
      Signed-off-by: default avatarBert Kenward <bkenward@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd94e519
    • David S. Miller's avatar
      Merge branch 'phy-led-triggers' · a8446676
      David S. Miller authored
      Zach Brown says:
      
      ====================
      Add support for led triggers on phy link state change
      
      Fix skge driver that declared enum contants that conflicted with enum
      constants in linux/leds.h
      
      Create function that encapsulates actions taken during the adjust phy link step
      of phy state changes.
      
      Create function that provides list of speeds currently supported by the phy.
      
      Add support for led triggers on phy link state changes by adding
      a config option. When set the config option will create a set of led triggers
      for each phy device. Users can use the led triggers to represent link state
      changes on the phy.
      
      v2:
       * New patch that creates phy_adjust_link function to encapsulate actions taken
         when adjusting phy link during phy state changes
       * led trigger speed strings changed to match existing phy speed strings
       * New function that maps speeds to led triggers
       * Replace magic constants with definitions when declaring trigger name
         buffer and number of triggers.
      v3:
       * Changed LED_ON to LED_REG_ON in skge driver to avoid possible future
         conflict and improve consistency.
       * Dropped rtl8712 patch that was accepted separately.
      v4:
       * tweaked commit message
      v5
       * Changed commit message to explain relationship between the new triggers and
         leds driven by phys.
       * Added new patch that creates phy_supported_speeds function.
       * Moved phy_leds_triggers_register and phy_leds_triggers_unregister to
         phy_attach and phy_detach respectively. This change is so the
         phydev->supported field will be filled by the time the triggers are
         registered.
       * Changed hardcoded list of triggers to dynamic list determined by speeds
         return by phy_supported_speeds.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a8446676
    • Zach Brown's avatar
      net: phy: leds: add support for led triggers on phy link state change · 2e0bc452
      Zach Brown authored
      Create an option CONFIG_LED_TRIGGER_PHY (default n), which will create a
      set of led triggers for each instantiated PHY device. There is one LED
      trigger per link-speed, per-phy.
      The triggers are registered during phy_attach and unregistered during
      phy_detach.
      
      This allows for a user to configure their system to allow a set of LEDs
      not controlled by the phy to represent link state changes on the phy.
      LEDS controlled by the phy are unaffected.
      
      For example, we have a board where some of the leds in the
      RJ45 socket are controlled by the phy, but others are not. Using the
      triggers provided by this patch the leds not controlled by the phy can
      be configured to show the current speed of the ethernet connection. The
      leds controlled by the phy are unaffected.
      Signed-off-by: default avatarJosh Cartwright <josh.cartwright@ni.com>
      Signed-off-by: default avatarNathan Sullivan <nathan.sullivan@ni.com>
      Signed-off-by: default avatarZach Brown <zach.brown@ni.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2e0bc452
    • Zach Brown's avatar
      net: phy: Create phy_supported_speeds function which lists speeds currently... · 1f9127ca
      Zach Brown authored
      net: phy: Create phy_supported_speeds function which lists speeds currently supported by a phydevice
      
      phy_supported_speeds provides a means to get a list of all the speeds a
      phy device currently supports.
      Signed-off-by: default avatarZach Brown <zach.brown@ni.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f9127ca
    • Zach Brown's avatar
      net: phy: Encapsulate actions performed during link state changes into function phy_adjust_link · 61a17965
      Zach Brown authored
      During phy state machine state transitions some set of actions should
      occur whenever the link state changes. These actions should be
      encapsulated into a single function
      
      This patch adds the phy_adjust_link function, which is called whenever
      phydev->adjust_link would have been called before. Actions that should
      occur whenever the phy link is adjusted can now be added to the
      phy_adjust_link function.
      Signed-off-by: default avatarZach Brown <zach.brown@ni.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61a17965
    • Zach Brown's avatar
      skge: Rename LED_OFF and LED_ON in marvel skge driver to avoid conflicts with leds namespace · 0e0f27dd
      Zach Brown authored
      Adding led support for phy causes namespace conflicts for some
      phy drivers.
      
      The marvel skge driver declared an enum for representing the states of
      Link LED Register. The enum contained constant LED_OFF which conflicted
      with declartation found in linux/leds.h.
      LED_OFF changed to LED_REG_OFF
      Also changed LED_ON to LED_REG_ON to avoid possible future conflict and
      for consistency.
      Signed-off-by: default avatarZach Brown <zach.brown@ni.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0e0f27dd
    • David S. Miller's avatar
      Merge branch 'netdev-adjacency' · 5bb61cb5
      David S. Miller authored
      David Ahern says:
      
      ====================
      net: Fix netdev adjacency tracking
      
      The netdev adjacency tracking is failing to create proper dependencies
      for some topologies. For example this topology
      
              +--------+
              |  myvrf |
              +--------+
                |    |
                |  +---------+
                |  | macvlan |
                |  +---------+
                |    |
            +----------+
            |  bridge  |
            +----------+
                |
            +--------+
            | bond1  |
            +--------+
                |
            +--------+
            |  eth3  |
            +--------+
      
      hits 1 of 2 problems depending on the order of enslavement. The base set of
      commands for both cases:
      
          ip link add bond1 type bond
          ip link set bond1 up
          ip link set eth3 down
          ip link set eth3 master bond1
          ip link set eth3 up
      
          ip link add bridge type bridge
          ip link set bridge up
          ip link add macvlan link bridge type macvlan
          ip link set macvlan up
      
          ip link add myvrf type vrf table 1234
          ip link set myvrf up
      
          ip link set bridge master myvrf
      
      Case 1 enslave macvlan to the vrf before enslaving the bond to the bridge:
      
          ip link set macvlan master myvrf
          ip link set bond1 master bridge
      
      Attempts to delete the VRF:
          ip link delete myvrf
      
      trigger the BUG in __netdev_adjacent_dev_remove:
      
      [  587.405260] tried to remove device eth3 from myvrf
      [  587.407269] ------------[ cut here ]------------
      [  587.408918] kernel BUG at /home/dsa/kernel.git/net/core/dev.c:5661!
      [  587.411113] invalid opcode: 0000 [#1] SMP
      [  587.412454] Modules linked in: macvlan bridge stp llc bonding vrf
      [  587.414765] CPU: 0 PID: 726 Comm: ip Not tainted 4.8.0+ #109
      [  587.416766] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
      [  587.420241] task: ffff88013ab6eec0 task.stack: ffffc90000628000
      [  587.422163] RIP: 0010:[<ffffffff813cef03>]  [<ffffffff813cef03>] __netdev_adjacent_dev_remove+0x40/0x12c
      ...
      [  587.446053] Call Trace:
      [  587.446424]  [<ffffffff813d1542>] __netdev_adjacent_dev_unlink+0x20/0x3c
      [  587.447390]  [<ffffffff813d16a3>] netdev_upper_dev_unlink+0xfa/0x15e
      [  587.448297]  [<ffffffffa00003a3>] vrf_del_slave+0x13/0x2a [vrf]
      [  587.449153]  [<ffffffffa00004a4>] vrf_dev_uninit+0xea/0x114 [vrf]
      [  587.450036]  [<ffffffff813d19b0>] rollback_registered_many+0x22b/0x2da
      [  587.450974]  [<ffffffff813d1aac>] unregister_netdevice_many+0x17/0x48
      [  587.451903]  [<ffffffff813de444>] rtnl_delete_link+0x3c/0x43
      [  587.452719]  [<ffffffff813dedcd>] rtnl_dellink+0x180/0x194
      
      When the BUG is converted to a WARN_ON it shows 4 missing adjacencies:
        eth3 - myvrf, mvrf - eth3, bond1 - myvrf and myvrf - bond1
      
      All of those are because the __netdev_upper_dev_link function does not
      properly link macvlan lower devices to myvrf when it is enslaved.
      
      The second case just flips the ordering of the enslavements:
          ip link set bond1 master bridge
          ip link set macvlan master myvrf
      
      Then run:
          ip link delete bond1
          ip link delete myvrf
      
      The vrf delete command hangs because myvrf has a reference that has not
      been released. In this case the removal code does not account for 2 paths
      between eth3 and myvrf - one from bridge to vrf and the other through the
      macvlan.
      
      Rather than try to maintain a linked list of all upper and lower devices
      per netdevice, only track the direct neighbors. The remaining stack can
      be determined by recursively walking the neighbors.
      
      The existing netdev_for_each_all_upper_dev_rcu,
      netdev_for_each_all_lower_dev and netdev_for_each_all_lower_dev_rcu macros
      are replaced with APIs that walk the upper and lower device lists. The
      new APIs take a callback function and a data arg that is passed to the
      callback for each device in the list. Drivers using the old macros are
      converted in separate patches to make it easier on reviewers. It is an
      API conversion only; no functional change is intended.
      
      v3
      - address Stephen's comment to simplify logic and remove typecasts
      
      v2
      - fixed bond0 references in cover-letter
      - fixed definition of netdev_next_lower_dev_rcu to mirror the upper_dev
        version.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5bb61cb5
    • David Ahern's avatar
      net: dev: Improve debug statements for adjacency tracking · 67b62f98
      David Ahern authored
      Adjacency code only has debugs for the insert case. Add debugs for
      the remove path and make both consistently worded to make it easier
      to follow the insert and removal with reference counts.
      
      In addition, change the BUG to a WARN_ON. A missing adjacency at
      removal time is not cause for a panic.
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      67b62f98
    • David Ahern's avatar
      net: Add warning if any lower device is still in adjacency list · 0f524a80
      David Ahern authored
      Lower list should be empty just like upper.
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0f524a80
    • David Ahern's avatar
      net: Remove all_adj_list and its references · f1170fd4
      David Ahern authored
      Only direct adjacencies are maintained. All upper or lower devices can
      be learned via the new walk API which recursively walks the adj_list for
      upper devices or lower devices.
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f1170fd4
    • David Ahern's avatar
      rocker: Flip to the new dev walk API · cf2d6740
      David Ahern authored
      Convert rocker to the new dev walk API. This is just a code conversion;
      no functional change is intended.
      
      v2
      - removed typecast of data
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf2d6740
    • David Ahern's avatar
      mlxsw: Flip to the new dev walk API · dd82364c
      David Ahern authored
      Convert mlxsw users to new dev walk API. This is just a code conversion;
      no functional change is intended.
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd82364c
    • David Ahern's avatar
      ixgbe: Flip to the new dev walk API · 1cd127fc
      David Ahern authored
      Convert ixgbe users to new dev walk API. This is just a code conversion;
      no functional change is intended.
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1cd127fc
    • David Ahern's avatar
      IB/ipoib: Flip to new dev walk API · e0e79c8e
      David Ahern authored
      Convert ipoib_get_net_dev_match_addr to the new upper device walk API.
      This is just a code conversion; no functional change is intended.
      
      v2
      - removed typecast of data
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0e79c8e
    • David Ahern's avatar
      IB/core: Flip to the new dev walk API · 453d3932
      David Ahern authored
      Convert rdma_is_upper_dev_rcu, handle_netdev_upper and
      ipoib_get_net_dev_match_addr to the new upper device walk API.
      This is just a code conversion; no functional change is intended.
      
      v2
      - removed typecast of data
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      453d3932
    • David Ahern's avatar
      net: bonding: Flip to the new dev walk API · b3208b20
      David Ahern authored
      Convert alb_send_learning_packets and bond_has_this_ip to use the new
      netdev_walk_all_upper_dev_rcu API. In both cases this is just a code
      conversion; no functional change is intended.
      
      v2
      - removed typecast of data and simplified bond_upper_dev_walk
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b3208b20
    • David Ahern's avatar
      net: Introduce new api for walking upper and lower devices · 1a3f060c
      David Ahern authored
      This patch introduces netdev_walk_all_upper_dev_rcu,
      netdev_walk_all_lower_dev and netdev_walk_all_lower_dev_rcu. These
      functions recursively walk the adj_list of devices to determine all upper
      and lower devices.
      
      The functions take a callback function that is invoked for each device
      in the list. If the callback returns non-0, the walk is terminated and
      the functions return that code back to callers.
      
      v3
      - simplified netdev_has_upper_dev_all_rcu and __netdev_has_upper_dev and
        removed typecast as suggested by Stephen
      
      v2
      - fixed definition of netdev_next_lower_dev_rcu to mirror the upper_dev
        version.
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1a3f060c
    • David Ahern's avatar
      net: Remove refnr arg when inserting link adjacencies · 790510d9
      David Ahern authored
      Commit 93409033 ("net: Add netdev all_adj_list refcnt propagation to
      fix panic") propagated the refnr to insert and remove functions tracking
      the netdev adjacency graph. However, for the insert path the refnr can
      only be 1. Accordingly, remove the refnr argument to make that clear.
      ie., the refnr arg in 93409033 was only needed for the remove path.
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      790510d9
    • David S. Miller's avatar
      Merge branch 'bpf-selftests' · 5921a0fc
      David S. Miller authored
      Daniel Borkmann says:
      
      ====================
      Move to BPF selftests
      
      This set improves the test_verifier and test_maps suite and moves
      it over to a new BPF selftest directory, so we can keep improving
      it under kernel selftest umbrella. This also integrates a test
      script for checking test_bpf.ko under various JIT options.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5921a0fc
    • Daniel Borkmann's avatar
      bpf: add initial suite for selftests · 5aa5bd14
      Daniel Borkmann authored
      Add a start of a test suite for kernel selftests. This moves test_verifier
      and test_maps over to tools/testing/selftests/bpf/ along with various
      code improvements and also adds a script for invoking test_bpf module.
      The test suite can simply be run via selftest framework, f.e.:
      
        # cd tools/testing/selftests/bpf/
        # make
        # make run_tests
      
      Both test_verifier and test_maps were kind of misplaced in samples/bpf/
      directory and we were looking into adding them to selftests for a while
      now, so it can be picked up by kbuild bot et al and hopefully also get
      more exposure and thus new test case additions.
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5aa5bd14
    • Daniel Borkmann's avatar
      bpf: add various tests around spill/fill of regs · 1a776b9c
      Daniel Borkmann authored
      Add several spill/fill tests. Besides others, one that performs xadd
      on the spilled register, one ldx/stx test where different types are
      spilled from two branches and read out from common path. Verfier does
      handle all correctly.
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1a776b9c
    • David S. Miller's avatar
      Merge branch 'ethernet-use-core-min-max-mtu' · 1441dc99
      David S. Miller authored
      Jarod Wilson says:
      
      ====================
      ethernet: use core min/max MTU checking
      
      Now that the network stack core min/max MTU checking infrastructure is in
      place, time to start making drivers use it. We'll start with the easiest
      ones, the ethernet drivers, split roughly by vendor, with a catch-all
      patch at the end.
      
      For the most part, every patch does the same essential thing: removes the
      MTU range checking from the drivers' ndo_change_mtu function, puts those
      ranges into the core net_device min_mtu and max_mtu fields, and where
      possible, removes ndo_change_mtu functions entirely.
      
      These patches have all been built through the 0-day build infrastructure
      provided by Intel, on top of net-next as of October 17.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1441dc99
    • Jarod Wilson's avatar
      ethernet: use core min/max MTU checking · 44770e11
      Jarod Wilson authored
      et131x: min_mtu 64, max_mtu 9216
      
      altera_tse: min_mtu 64, max_mtu 1500
      
      amd8111e: min_mtu 60, max_mtu 9000
      
      bnad: min_mtu 46, max_mtu 9000
      
      macb: min_mtu 68, max_mtu 1500 or 10240 depending on hardware capability
      
      xgmac: min_mtu 46, max_mtu 9000
      
      cxgb2: min_mtu 68, max_mtu 9582 (pm3393) or 9600 (vsc7326)
      
      enic: min_mtu 68, max_mtu 9000
      
      gianfar: min_mtu 50, max_mu 9586
      
      hns_enet: min_mtu 68, max_mtu 9578 (v1) or 9706 (v2)
      
      ksz884x: min_mtu 60, max_mtu 1894
      
      myri10ge: min_mtu 68, max_mtu 9000
      
      natsemi: min_mtu 64, max_mtu 2024
      
      nfp: min_mtu 68, max_mtu hardware-specific
      
      forcedeth: min_mtu 64, max_mtu 1500 or 9100, depending on hardware
      
      pch_gbe: min_mtu 46, max_mtu 10300
      
      pasemi_mac: min_mtu 64, max_mtu 9000
      
      qcaspi: min_mtu 46, max_mtu 1500
      - remove qcaspi_netdev_change_mtu as it is now redundant
      
      rocker: min_mtu 68, max_mtu 9000
      
      sxgbe: min_mtu 68, max_mtu 9000
      
      stmmac: min_mtu 46, max_mtu depends on hardware
      
      tehuti: min_mtu 60, max_mtu 16384
      - driver had no max mtu checking, but product docs say 16k jumbo packets
        are supported by the hardware
      
      netcp: min_mtu 68, max_mtu 9486
      - remove netcp_ndo_change_mtu as it is now redundant
      
      via-velocity: min_mtu 64, max_mtu 9000
      
      octeon: min_mtu 46, max_mtu 65370
      
      CC: netdev@vger.kernel.org
      CC: Mark Einon <mark.einon@gmail.com>
      CC: Vince Bridgers <vbridger@opensource.altera.com>
      CC: Rasesh Mody <rasesh.mody@qlogic.com>
      CC: Nicolas Ferre <nicolas.ferre@atmel.com>
      CC: Santosh Raspatur <santosh@chelsio.com>
      CC: Hariprasad S <hariprasad@chelsio.com>
      CC:  Christian Benvenuti <benve@cisco.com>
      CC: Sujith Sankar <ssujith@cisco.com>
      CC: Govindarajulu Varadarajan <_govind@gmx.com>
      CC: Neel Patel <neepatel@cisco.com>
      CC: Claudiu Manoil <claudiu.manoil@freescale.com>
      CC: Yisen Zhuang <yisen.zhuang@huawei.com>
      CC: Salil Mehta <salil.mehta@huawei.com>
      CC: Hyong-Youb Kim <hykim@myri.com>
      CC: Jakub Kicinski <jakub.kicinski@netronome.com>
      CC: Olof Johansson <olof@lixom.net>
      CC: Jiri Pirko <jiri@resnulli.us>
      CC: Byungho An <bh74.an@samsung.com>
      CC: Girish K S <ks.giri@samsung.com>
      CC: Vipul Pandya <vipul.pandya@samsung.com>
      CC: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      CC: Alexandre Torgue <alexandre.torgue@st.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: Wingman Kwok <w-kwok2@ti.com>
      CC: Murali Karicheri <m-karicheri2@ti.com>
      CC: Francois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      44770e11
    • Jarod Wilson's avatar
      ethernet/toshiba: use core min/max MTU checking · 1281a2c7
      Jarod Wilson authored
      gelic_net: min_mtu 64, max_mtu 1518
      - remove gelic_net_change_mtu now that it is redundant
      
      spidernet: min_Mtu 64, max_mtu 2294
      - remove spiter_net_change_mtu now that it is redundant
      
      CC: netdev@vger.kernel.org
      CC: Geoff Levand <geoff@infradead.org>
      CC: Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1281a2c7
    • Jarod Wilson's avatar
      ethernet/tile: use core min/max MTU checking · f58f0817
      Jarod Wilson authored
      tilegx: min_mtu 68, max_mtu 1500 or 9000, depending on modparam
      - remove tile_net_change_mtu now that it is fully redundant
      
      tilepro: min_mtu 68, max_mtu 1500
      - hardware supports jumbo packets up to 10226, but it's not implemented or
        tested yet, according to code comments
      
      CC: netdev@vger.kernel.org
      CC: Chris Metcalf <cmetcalf@mellanox.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f58f0817
    • Jarod Wilson's avatar
      ethernet/ibm: use core min/max MTU checking · 3d5d96ac
      Jarod Wilson authored
      ehea: min_mtu 68, max_mtu 9022
      - remove ehea_change_mtu, it's now redundant
      
      emac: min_mtu 46, max_mtu 1500 or whatever gets read from OF
      
      CC: netdev@vger.kernel.org
      CC: Douglas Miller <dougmill@linux.vnet.ibm.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3d5d96ac
    • Jarod Wilson's avatar
      ethernet/cavium: use core min/max MTU checking · 109cc165
      Jarod Wilson authored
      liquidio: min_mtu 68, max_mtu 16000
      
      thunder: min_mtu 64, max_mtu 9200
      
      CC: netdev@vger.kernel.org
      CC: Sunil Goutham <sgoutham@cavium.com>
      CC: Robert Richter <rric@kernel.org>
      CC: Derek Chickles <derek.chickles@caviumnetworks.com>
      CC: Satanand Burla <satananda.burla@caviumnetworks.com>
      CC: Felix Manlunas <felix.manlunas@caviumnetworks.com>
      CC: Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      109cc165
    • Jarod Wilson's avatar
      ethernet/neterion: use core min/max MTU checking · 18c310fb
      Jarod Wilson authored
      s2io: min_mtu 46, max_mtu 9600
      
      vxge: min_mtu 68, max_mtu 9600
      
      CC: netdev@vger.kernel.org
      CC: Jon Mason <jdmason@kudzu.us>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18c310fb
    • Jarod Wilson's avatar
      ethernet/dlink: use core min/max MTU checking · f7ad72bf
      Jarod Wilson authored
      dl2k: min_mtu 68, max_mtu 1536 or 8000, depending on hardware
      - Removed change_mtu, does nothing productive anymore
      
      sundance: min_mtu 68, max_mtu 8191
      
      CC: netdev@vger.kernel.org
      CC: Denis Kirjanov <kda@linux-powerpc.org>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7ad72bf
    • Jarod Wilson's avatar
      ethernet/sun: use core min/max MTU checking · 540bfe30
      Jarod Wilson authored
      cassini: min_mtu 60, max_mtu 9000
      
      niu: min_mtu 68, max_mtu 9216
      
      sungem: min_mtu 68, max_mtu 1500 (comments say jumbo mode is broken)
      
      sunvnet: min_mtu 68, max_mtu 65535
      - removed sunvnet_change_mut_common as it does nothing now
      
      CC: netdev@vger.kernel.org
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      540bfe30
    • Jarod Wilson's avatar
      ethernet/realtek: use core min/max MTU checking · c7315a95
      Jarod Wilson authored
      8139cp: min_mtu 60, max_mtu 4096
      
      8139too: min_mtu 68, max_mtu 1770
      
      r8169: min_mtu 60, max_mtu depends on chipset, 1500 to 9k-ish
      
      CC: netdev@vger.kernel.org
      CC: Realtek linux nic maintainers <nic_swsd@realtek.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c7315a95
    • Jarod Wilson's avatar
      ethernet/qlogic: use core min/max MTU checking · caff2a87
      Jarod Wilson authored
      qede: min_mtu 46, max_mtu 9600
      - Put define for max in qede.h
      
      qlcnic: min_mtu 68, max_mtu 9600
      
      CC: netdev@vger.kernel.org
      CC Dept-GELinuxNICDev@qlogic.com
      CC: Yuval Mintz <Yuval.Mintz@qlogic.com>
      CC: Ariel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      caff2a87
    • Jarod Wilson's avatar
      ethernet/mellanox: use core min/max MTU checking · b80f71f5
      Jarod Wilson authored
      mlx4: min_mtu 46, max_mtu depends on hardware
      
      mlx5: min_mtu 68, max_mtu depends on hardware
      
      CC: netdev@vger.kernel.org
      CC: Tariq Toukan <tariqt@mellanox.com>
      CC: Saeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b80f71f5
    • Jarod Wilson's avatar
      ethernet/marvell: use core min/max MTU checking · 5777987e
      Jarod Wilson authored
      mvneta: min_mtu 68, max_mtu 9676
      - mtu validation routine mostly did range check, merge back into
        mvneta_change_mtu for simplicity
      
      mvpp2: min_mtu 68, max_mtu 9676
      - mtu validation routine mostly did range check, merge back into
        mvpp2_change_mtu for simplicity
      
      pxa168_eth: min_mtu 68, max_mtu 9500
      
      skge: min_mtu 60, max_mtu 9000
      
      sky2: min_mtu 68, max_mtu 1500 or 9000, depending on hw
      
      CC: netdev@vger.kernel.org
      CC: Mirko Lindner <mlindner@marvell.com>
      CC: Stephen Hemminger <stephen@networkplumber.org>
      CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5777987e
    • Jarod Wilson's avatar
      ethernet/intel: use core min/max MTU checking · 91c527a5
      Jarod Wilson authored
      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: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      91c527a5
    • Jarod Wilson's avatar
      ethernet/broadcom: use core min/max MTU checking · e1c6dcca
      Jarod Wilson authored
      tg3: min_mtu 60, max_mtu 9000/1500
      
      bnxt: min_mtu 60, max_mtu 9000
      
      bnx2x: min_mtu 46, max_mtu 9600
      - Fix up ETH_OVREHEAD -> ETH_OVERHEAD while we're in here, remove
        duplicated defines from bnx2x_link.c.
      
      bnx2: min_mtu 46, max_mtu 9000
      - Use more standard ETH_* defines while we're at it.
      
      bcm63xx_enet: min_mtu 46, max_mtu 2028
      - compute_hw_mtu was made largely pointless, and thus merged back into
        bcm_enet_change_mtu.
      
      b44: min_mtu 60, max_mtu 1500
      
      CC: netdev@vger.kernel.org
      CC: Michael Chan <michael.chan@broadcom.com>
      CC: Sony Chacko <sony.chacko@qlogic.com>
      CC: Ariel Elior <ariel.elior@qlogic.com>
      CC: Dept-HSGLinuxNICDev@qlogic.com
      CC: Siva Reddy Kallam <siva.kallam@broadcom.com>
      CC: Prashant Sreedharan <prashant@broadcom.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e1c6dcca
    • Jarod Wilson's avatar
      ethernet/atheros: use core min/max MTU checking · 67bef942
      Jarod Wilson authored
      atl2: min_mtu 40, max_mtu 1504
      
      - Remove a few redundant defines that already have equivalents in
        if_ether.h.
      
      atl1: min_mtu 42, max_mtu 10218
      
      atl1e: min_mtu 42, max_mtu 8170
      
      atl1c: min_mtu 42, max_mtu 6122/1500
      
      - GbE hardware gets a max_mtu of 6122, slower hardware gets 1500.
      
      alx: min_mtu 34, max_mtu 9256
      
      - Not so sure that minimum MTU number is really what was intended, but
        that's what the math actually makes it out to be, due to max_frame
        manipulations and comparison in alx_change_mtu, rather than just
        comparing new_mtu. (I think 68 was the intended min_mtu value).
      
      CC: netdev@vger.kernel.org
      CC: Jay Cliburn <jcliburn@gmail.com>
      CC: Chris Snook <chris.snook@gmail.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      67bef942
    • David S. Miller's avatar
      Merge branch 'dp83867-impedance-control' · 60d2d8dd
      David S. Miller authored
      Mugunthan V N says:
      
      ====================
      add support for impedance control for TI dp83867 phy and fix 2nd ethernet on dra72 rev C evm
      
      Add support for configurable impedance control for TI dp83867
      phy via devicetree. More documentation in [1].
      CPSW second ethernet is not working, fix it by enabling
      impedance configuration on the phy.
      
      Verified the patch on DRA72 Rev C evm, logs at [2]. Also pushed
      a branch [3] for others to test.
      
      Changes from v3:
      * Fixup change log text and no code changes.
      
      Changes from v2:
      * Fixed a typo in dts and driver.
      
      Changes from initial version:
      * As per Sekhar's comment, instead of passing impedance values,
        change to max and min impedance from DT
      * Adopted phy_read_mmd_indirect() to cunnrent implementation.
      * Corrected the phy delay timings to the optimal value.
      
      [1] - http://www.ti.com/lit/ds/symlink/dp83867ir.pdf
      [2] - http://pastebin.ubuntu.com/23343139/
      [3] - git://git.ti.com/~mugunthanvnm/ti-linux-kernel/linux.git dp83867-v4
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      60d2d8dd