1. 04 Mar, 2016 10 commits
  2. 03 Mar, 2016 7 commits
    • Eric Dumazet's avatar
      net: sched: use pfifo_fast for non real queues · 1f27cde3
      Eric Dumazet authored
      Some devices declare a high number of TX queues, then set a much
      lower real_num_tx_queues
      
      This cause setups using fq_codel, sfq or fq as the default qdisc to consume
      more memory than really needed.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f27cde3
    • David Ahern's avatar
      net: ipv6: Fix refcnt on host routes · 799977d9
      David Ahern authored
      Andrew and Ying Huang's test robot both reported usage count problems that
      trace back to the 'keep address on ifdown' patch.
      
      >From Andrew:
      We execute CRIU test on linux-next. On the current linux-next kernel
      they hangs on creating a network namespace.
      
      The kernel log contains many massages like this:
      [ 1036.122108] unregister_netdevice: waiting for lo to become free.
      Usage count = 2
      [ 1046.165156] unregister_netdevice: waiting for lo to become free.
      Usage count = 2
      [ 1056.210287] unregister_netdevice: waiting for lo to become free.
      Usage count = 2
      
      I tried to revert this patch and the bug disappeared.
      
      Here is a set of commands to reproduce this bug:
      
      [root@linux-next-test linux-next]# uname -a
      Linux linux-next-test 4.5.0-rc6-next-20160301+ #3 SMP Wed Mar 2
      17:32:18 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
      
      [root@linux-next-test ~]# unshare -n
      [root@linux-next-test ~]# ip link set up dev lo
      [root@linux-next-test ~]# ip a
      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
      group default qlen 1
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          inet6 ::1/128 scope host
             valid_lft forever preferred_lft forever
      [root@linux-next-test ~]# logout
      [root@linux-next-test ~]# unshare -n
      
       -----
      
      The problem is a change made to RTM_DELADDR case in __ipv6_ifa_notify that
      was added in an early version of the offending patch and is no longer
      needed.
      
      Fixes: f1705ec1 ("net: ipv6: Make address flushing on ifdown optional")
      Cc: Andrey Wagin <avagin@gmail.com>
      Cc: Ying Huang <ying.huang@linux.intel.com>
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Tested-by: default avatarJeremiah Mahler <jmmahler@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      799977d9
    • Lada Trimasova's avatar
      net: ezchip: adapt driver to little endian architecture · b54b8c2d
      Lada Trimasova authored
      Since ezchip network driver is written with big endian EZChip platform it
      is necessary to add support for little endian architecture.
      
      The first issue is that the order of the bits in a bit field is
      implementation specific. So all the bit fields are removed.
      Named constants are used to access necessary fields.
      
      And the second one is that network byte order is big endian.
      For example, data on ethernet is transmitted with most-significant
      octet (byte) first. So in case of little endian architecture
      it is important to swap data byte order when we read it from
      register. In case of unaligned access we can use "get_unaligned_be32"
      and in other case we can use function "ioread32_rep" which reads all
      data from register and works either with little endian or big endian
      architecture.
      
      And then when we are going to write data to register we need to restore
      byte order using the function "put_unaligned_be32" in case of
      unaligned access and in other case "iowrite32_rep".
      
      The last little fix is a space between type and pointer to observe
      coding style.
      Signed-off-by: default avatarLada Trimasova <ltrimas@synopsys.com>
      Cc: Alexey Brodkin <abrodkin@synopsys.com>
      Cc: Noam Camus <noamc@ezchip.com>
      Cc: Tal Zilcer <talz@ezchip.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b54b8c2d
    • Simon Horman's avatar
      sh_eth, ravb: Use ARCH_RENESAS · 274ba628
      Simon Horman authored
      Make use of ARCH_RENESAS in place of ARCH_SHMOBILE.
      
      This is part of an ongoing process to migrate from ARCH_SHMOBILE to
      ARCH_RENESAS the motivation for which being that RENESAS seems to be a more
      appropriate name than SHMOBILE for the majority of Renesas ARM based SoCs.
      Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
      Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      274ba628
    • Arnd Bergmann's avatar
      net: mellanox: add DEVLINK dependencies · 3d1cbe83
      Arnd Bergmann authored
      The new NET_DEVLINK infrastructure can be a loadable module, but the drivers
      using it might be built-in, which causes link errors like:
      
      drivers/net/built-in.o: In function `mlx4_load_one':
      :(.text+0x2fbfda): undefined reference to `devlink_port_register'
      :(.text+0x2fc084): undefined reference to `devlink_port_unregister'
      drivers/net/built-in.o: In function `mlxsw_sx_port_remove':
      :(.text+0x33a03a): undefined reference to `devlink_port_type_clear'
      :(.text+0x33a04e): undefined reference to `devlink_port_unregister'
      
      There are multiple ways to avoid this:
      
      a) add 'depends on NET_DEVLINK || !NET_DEVLINK' dependencies
         for each user
      b) use 'select NET_DEVLINK' from each driver that uses it
         and hide the symbol in Kconfig.
      c) make NET_DEVLINK a 'bool' option so we don't have to
         list it as a dependency, and rely on the APIs to be
         stubbed out when it is disabled
      d) use IS_REACHABLE() rather than IS_ENABLED() to check for
         NET_DEVLINK in include/net/devlink.h
      
      This implements a variation of approach a) by adding an
      intermediate symbol that drivers can depend on, and changes
      the three drivers using it.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Fixes: 09d4d087 ("mlx4: Implement devlink interface")
      Fixes: c4745500 ("mlxsw: Implement devlink interface")
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3d1cbe83
    • David S. Miller's avatar
      Merge branch 'for-upstream' of... · aefd3fb2
      David S. Miller authored
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
      
      Johan Hedberg says:
      
      ====================
      pull request: bluetooth-next 2016-03-01
      
      Here's our main set of Bluetooth & 802.15.4 patches for the 4.6 kernel.
      
       - New Bluetooth HCI driver for Intel/AG6xx controllers
       - New Broadcom ACPI IDs
       - LED trigger support for indicating Bluetooth powered state
       - Various fixes in mac802154, 6lowpan and related drivers
       - New USB IDs for AR3012 Bluetooth controllers
      
      Please let me know if there are any issues pulling. Thanks.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aefd3fb2
    • John Fastabend's avatar
      net: relax setup_tc ndo op handle restriction · 5eb4dce3
      John Fastabend authored
      I added this check in setup_tc to multiple drivers,
      
       if (handle != TC_H_ROOT || tc->type != TC_SETUP_MQPRIO)
      
      Unfortunately restricting to TC_H_ROOT like this breaks the old
      instantiation of mqprio to setup a hardware qdisc. This patch
      relaxes the test to only check the type to make it equivalent
      to the check before I broke it. With this the old instantiation
      continues to work.
      
      A good smoke test is to setup mqprio with,
      
      # tc qdisc add dev eth4 root mqprio num_tc 8 \
        map 0 1 2 3 4 5 6 7 \
        queues 0@0 1@1 2@2 3@3 4@4 5@5 6@6 7@7
      
      Fixes: e4c6734e ("net: rework ndo tc op to consume additional qdisc handle paramete")
      Reported-by: default avatarSingh Krishneil <krishneil.k.singh@intel.com>
      Reported-by: default avatarJake Keller <jacob.e.keller@intel.com>
      CC: Murali Karicheri <m-karicheri2@ti.com>
      CC: Shradha Shah <sshah@solarflare.com>
      CC: Or Gerlitz <ogerlitz@mellanox.com>
      CC: Ariel Elior <ariel.elior@qlogic.com>
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      CC: Bruce Allan <bruce.w.allan@intel.com>
      CC: Jesse Brandeburg <jesse.brandeburg@intel.com>
      CC: Don Skidmore <donald.c.skidmore@intel.com>
      Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5eb4dce3
  3. 02 Mar, 2016 23 commits