1. 24 Nov, 2016 7 commits
  2. 22 Nov, 2016 17 commits
  3. 21 Nov, 2016 16 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 3b404a51
      Linus Torvalds authored
      Pull apparmor bugfix from James Morris:
       "This has a fix for a policy replacement bug that is fairly serious for
        apache mod_apparmor users, as it results in the wrong policy being
        applied on an network facing service"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        apparmor: fix change_hat not finding hat after policy replacement
      3b404a51
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 8d1a2408
      Linus Torvalds authored
      Pull sparc fixes from David Miller:
      
       1) With modern networking cards we can run out of 32-bit DMA space, so
          support 64-bit DMA addressing when possible on sparc64. From Dave
          Tushar.
      
       2) Some signal frame validation checks are inverted on sparc32, fix
          from Andreas Larsson.
      
       3) Lockdep tables can get too large in some circumstances on sparc64,
          add a way to adjust the size a bit. From Babu Moger.
      
       4) Fix NUMA node probing on some sun4v systems, from Thomas Tai.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc: drop duplicate header scatterlist.h
        lockdep: Limit static allocations if PROVE_LOCKING_SMALL is defined
        config: Adding the new config parameter CONFIG_PROVE_LOCKING_SMALL for sparc
        sunbmac: Fix compiler warning
        sunqe: Fix compiler warnings
        sparc64: Enable 64-bit DMA
        sparc64: Enable sun4v dma ops to use IOMMU v2 APIs
        sparc64: Bind PCIe devices to use IOMMU v2 service
        sparc64: Initialize iommu_map_table and iommu_pool
        sparc64: Add ATU (new IOMMU) support
        sparc64: Add FORCE_MAX_ZONEORDER and default to 13
        sparc64: fix compile warning section mismatch in find_node()
        sparc32: Fix inverted invalid_frame_pointer checks on sigreturns
        sparc64: Fix find_node warning if numa node cannot be found
      8d1a2408
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 27e7ab99
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Clear congestion control state when changing algorithms on an
          existing socket, from Florian Westphal.
      
       2) Fix register bit values in altr_tse_pcs portion of stmmac driver,
          from Jia Jie Ho.
      
       3) Fix PTP handling in stammc driver for GMAC4, from Giuseppe
          CAVALLARO.
      
       4) Fix udplite multicast delivery handling, it ignores the udp_table
          parameter passed into the lookups, from Pablo Neira Ayuso.
      
       5) Synchronize the space estimated by rtnl_vfinfo_size and the space
          actually used by rtnl_fill_vfinfo. From Sabrina Dubroca.
      
       6) Fix memory leak in fib_info when splitting nodes, from Alexander
          Duyck.
      
       7) If a driver does a napi_hash_del() explicitily and not via
          netif_napi_del(), it must perform RCU synchronization as needed. Fix
          this in virtio-net and bnxt drivers, from Eric Dumazet.
      
       8) Likewise, it is not necessary to invoke napi_hash_del() is we are
          also doing neif_napi_del() in the same code path. Remove such calls
          from be2net and cxgb4 drivers, also from Eric Dumazet.
      
       9) Don't allocate an ID in peernet2id_alloc() if the netns is dead,
          from WANG Cong.
      
      10) Fix OF node and device struct leaks in of_mdio, from Johan Hovold.
      
      11) We cannot cache routes in ip6_tunnel when using inherited traffic
          classes, from Paolo Abeni.
      
      12) Fix several crashes and leaks in cpsw driver, from Johan Hovold.
      
      13) Splice operations cannot use freezable blocking calls in AF_UNIX,
          from WANG Cong.
      
      14) Link dump filtering by master device and kind support added an error
          in loop index updates during the dump if we actually do filter, fix
          from Zhang Shengju.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (59 commits)
        tcp: zero ca_priv area when switching cc algorithms
        net: l2tp: Treat NET_XMIT_CN as success in l2tp_eth_dev_xmit
        ethernet: stmmac: make DWMAC_STM32 depend on it's associated SoC
        tipc: eliminate obsolete socket locking policy description
        rtnl: fix the loop index update error in rtnl_dump_ifinfo()
        l2tp: fix racy SOCK_ZAPPED flag check in l2tp_ip{,6}_bind()
        net: macb: add check for dma mapping error in start_xmit()
        rtnetlink: fix FDB size computation
        netns: fix get_net_ns_by_fd(int pid) typo
        af_unix: conditionally use freezable blocking calls in read
        net: ethernet: ti: cpsw: fix fixed-link phy probe deferral
        net: ethernet: ti: cpsw: add missing sanity check
        net: ethernet: ti: cpsw: fix secondary-emac probe error path
        net: ethernet: ti: cpsw: fix of_node and phydev leaks
        net: ethernet: ti: cpsw: fix deferred probe
        net: ethernet: ti: cpsw: fix mdio device reference leak
        net: ethernet: ti: cpsw: fix bad register access in probe error path
        net: sky2: Fix shutdown crash
        cfg80211: limit scan results cache size
        net sched filters: pass netlink message flags in event notification
        ...
      27e7ab99
    • Bhumika Goyal's avatar
      net: ieee802154: constify ieee802154_ops structures · e796f49d
      Bhumika Goyal authored
      Declare the structure ieee802154_ops as const as it is only passed as an
      argument to the function  ieee802154_alloc_hw. This argument is of type
      const struct ieee802154_ops *, so ieee80254_ops structures having this
      property can be declared as const.
      Done using Coccinelle:
      
      @r1 disable optional_qualifier @
      identifier i;
      position p;
      @@
      static struct ieee802154_ops i@p = {...};
      
      @ok1@
      identifier r1.i;
      position p;
      expression e1;
      @@
      ieee802154_alloc_hw(e1,&i@p)
      
      @bad@
      position p!={r1.p,ok1.p};
      identifier r1.i;
      @@
      i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      static
      +const
      struct ieee802154_ops  i={...};
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      +const
      struct ieee802154_ops  i;
      
      The before and after size details of the affected files are:
      
         text	   data	    bss	    dec	    hex	filename
         8669	   1176	     16	   9861	   2685	drivers/net/ieee802154/adf7242.o
         8805	   1048	     16	   9869	   268d	drivers/net/ieee802154/adf7242.o
      
         text	   data	    bss	    dec	    hex	filename
         7211	   2296	     32	   9539	   2543	drivers/net/ieee802154/atusb.o
         7339	   2160	     32	   9531	   253b	drivers/net/ieee802154/atusb.o
      Signed-off-by: default avatarBhumika Goyal <bhumirks@gmail.com>
      Acked-by: default avatarStefan Schmidt <stefan@osg.samsung.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e796f49d
    • David S. Miller's avatar
      Merge branch 'geneve-lwt-efficiency' · acbec856
      David S. Miller authored
      Pravin B Shelar says:
      
      ====================
      geneve: Use LWT more effectively.
      
      Following patch series make use of geneve LWT code path for
      geneve netdev type of device.
      This allows us to simplify geneve module without changing any
      functionality.
      
      v2-v3:
      Rebase against latest net-next.
      
      v1-v2:
      Fix warning reported by kbuild test robot.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      acbec856
    • pravin shelar's avatar
      geneve: Optimize geneve device lookup. · 2e0b26e1
      pravin shelar authored
      Rather than comparing 64-bit tunnel-id, compare tunnel vni
      which is 24-bit id. This also save conversion from vni
      to tunnel id on each tunnel packet receive.
      Signed-off-by: default avatarPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2e0b26e1
    • pravin shelar's avatar
      geneve: Remove redundant socket checks. · bcceeec3
      pravin shelar authored
      Geneve already has check for device socket in route
      lookup function. So no need to check it in xmit
      function.
      Signed-off-by: default avatarPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bcceeec3
    • pravin shelar's avatar
      geneve: Merge ipv4 and ipv6 geneve_build_skb() · c3ef5aa5
      pravin shelar authored
      There are minimal difference in building Geneve header
      between ipv4 and ipv6 geneve tunnels. Following patch
      refactors code to unify it.
      Signed-off-by: default avatarPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c3ef5aa5
    • pravin shelar's avatar
      geneve: Unify LWT and netdev handling. · 9b4437a5
      pravin shelar authored
      Current geneve implementation has two separate cases to handle.
      1. netdev xmit
      2. LWT xmit.
      
      In case of netdev, geneve configuration is stored in various
      struct geneve_dev members. For example geneve_addr, ttl, tos,
      label, flags, dst_cache, etc. For LWT ip_tunnel_info is passed
      to the device in ip_tunnel_info.
      
      Following patch uses ip_tunnel_info struct to store almost all
      of configuration of a geneve netdevice. This allows us to unify
      most of geneve driver code around ip_tunnel_info struct.
      This dramatically simplify geneve code, since it does not
      need to handle two different configuration cases. Removes
      duplicate code, single code path can handle either type
      of geneve devices.
      Signed-off-by: default avatarPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b4437a5
    • David S. Miller's avatar
      Merge branch 'tcp-cong-undo_cwnd-mandatory' · 9e36ced6
      David S. Miller authored
      Florian Westphal says:
      
      ====================
      tcp: make undo_cwnd mandatory for congestion modules
      
      highspeed, illinois, scalable, veno and yeah congestion control algorithms
      don't provide a 'cwnd_undo' function.  This makes the stack default to a
      'reno undo' which doubles cwnd.  However, the ssthresh implementation of
      these algorithms do not halve the slowstart threshold. This causes similar
      issue as the one fixed for dctcp in ce6dd233 ("dctcp: avoid bogus
      doubling of cwnd after loss").
      
      In light of this it seems better to remove the fallback and make undo_cwnd
      mandatory.
      
      First patch fixes those spots where reno undo seems incorrect by providing
      .cwnd_undo functions, second patch removes the fallback.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9e36ced6
    • Florian Westphal's avatar
      tcp: make undo_cwnd mandatory for congestion modules · e9799183
      Florian Westphal authored
      The undo_cwnd fallback in the stack doubles cwnd based on ssthresh,
      which un-does reno halving behaviour.
      
      It seems more appropriate to let congctl algorithms pair .ssthresh
      and .undo_cwnd properly. Add a 'tcp_reno_undo_cwnd' function and wire it
      up for all congestion algorithms that used to rely on the fallback.
      
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e9799183
    • Florian Westphal's avatar
      tcp: add cwnd_undo functions to various tcp cc algorithms · 85f7e750
      Florian Westphal authored
      congestion control algorithms that do not halve cwnd in their .ssthresh
      should provide a .cwnd_undo rather than rely on current fallback which
      assumes reno halving (and thus doubles the cwnd).
      
      All of these do 'something else' in their .ssthresh implementation, thus
      store the cwnd on loss and provide .undo_cwnd to restore it again.
      
      A followup patch will remove the fallback and all algorithms will
      need to provide a .cwnd_undo function.
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      85f7e750
    • David S. Miller's avatar
      Merge branch 'bridge-igmpv3-mldv2-support' · 2fcb58ab
      David S. Miller authored
      Nikolay Aleksandrov says:
      
      ====================
      bridge: add support for IGMPv3 and MLDv2 querier
      
      This patch-set adds support for IGMPv3 and MLDv2 querier in the bridge.
      Two new options which can be toggled via netlink and sysfs are added that
      control the version per-bridge:
       multicast_igmp_version - default 2, can be set to 3
       multicast_mld_version - default 1, can be set to 2 (this option is
                               disabled if CONFIG_IPV6=n)
      
      Note that the names do not include "querier", I think that these options
      can be re-used later as more IGMPv3 support is added to the bridge so we
      can avoid adding more options to switch between v2 and v3 behaviour.
      
      The set uses the already existing br_ip{4,6}_multicast_alloc_query
      functions and adds the appropriate header based on the chosen version.
      
      For the initial support I have removed the compatibility implementation
      (RFC3376 sec 7.3.1, 7.3.2; RFC3810 sec 8.3.1, 8.3.2), because there are
      some details that we need to sort out.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2fcb58ab
    • Nikolay Aleksandrov's avatar
      bridge: mcast: add MLDv2 querier support · aa2ae3e7
      Nikolay Aleksandrov authored
      This patch adds basic support for MLDv2 queries, the default is MLDv1
      as before. A new multicast option - multicast_mld_version, adds the
      ability to change it between 1 and 2 via netlink and sysfs.
      The MLD option is disabled if CONFIG_IPV6 is disabled.
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aa2ae3e7
    • Nikolay Aleksandrov's avatar
      bridge: mcast: add IGMPv3 query support · 5e923585
      Nikolay Aleksandrov authored
      This patch adds basic support for IGMPv3 queries, the default is IGMPv2
      as before. A new multicast option - multicast_igmp_version, adds the
      ability to change it between 2 and 3 via netlink and sysfs. The option
      struct member is in a 4 byte hole in net_bridge.
      
      There also a few minor style adjustments in br_multicast_new_group and
      br_multicast_add_group.
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e923585
    • Florian Westphal's avatar
      tcp: zero ca_priv area when switching cc algorithms · 7082c5c3
      Florian Westphal authored
      We need to zero out the private data area when application switches
      connection to different algorithm (TCP_CONGESTION setsockopt).
      
      When congestion ops get assigned at connect time everything is already
      zeroed because sk_alloc uses GFP_ZERO flag.  But in the setsockopt case
      this contains whatever previous cc placed there.
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7082c5c3