1. 22 Jun, 2017 18 commits
  2. 21 Jun, 2017 22 commits
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 3d091982
      David S. Miller authored
      Two entries being added at the same time to the IFLA
      policy table, whilst parallel bug fixes to decnet
      routing dst handling overlapping with the dst gc removal
      in net-next.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3d091982
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 48b6bbef
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix refcounting wrt timers which hold onto inet6 address objects,
          from Xin Long.
      
       2) Fix an ancient bug in wireless wext ioctls, from Johannes Berg.
      
       3) Firmware handling fixes in brcm80211 driver, from Arend Van Spriel.
      
       4) Several mlx5 driver fixes (firmware readiness, timestamp cap
          reporting, devlink command validity checking, tc offloading, etc.)
          From Eli Cohen, Maor Dickman, Chris Mi, and Or Gerlitz.
      
       5) Fix dst leak in IP/IP6 tunnels, from Haishuang Yan.
      
       6) Fix dst refcount bug in decnet, from Wei Wang.
      
       7) Netdev can be double freed in register_vlan_device(). Fix from Gao
          Feng.
      
       8) Don't allow object to be destroyed while it is being dumped in SCTP,
          from Xin Long.
      
       9) Fix dpaa_eth build when modular, from Madalin Bucur.
      
      10) Fix throw route leaks, from Serhey Popovych.
      
      11) IFLA_GROUP missing from if_nlmsg_size() and ifla_policy[] table,
          also from Serhey Popovych.
      
      12) Fix premature TX SKB free in stmmac, from Niklas Cassel.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (36 commits)
        igmp: add a missing spin_lock_init()
        net: stmmac: free an skb first when there are no longer any descriptors using it
        sfc: remove duplicate up_write on VF filter_sem
        rtnetlink: add IFLA_GROUP to ifla_policy
        ipv6: Do not leak throw route references
        dt-bindings: net: sms911x: Add missing optional VDD regulators
        dpaa_eth: reuse the dma_ops provided by the FMan MAC device
        fsl/fman: propagate dma_ops
        net/core: remove explicit do_softirq() from busy_poll_stop()
        fib_rules: Resolve goto rules target on delete
        sctp: ensure ep is not destroyed before doing the dump
        net/hns:bugfix of ethtool -t phy self_test
        net: 8021q: Fix one possible panic caused by BUG_ON in free_netdev
        cxgb4: notify uP to route ctrlq compl to rdma rspq
        ip6_tunnel: Correct tos value in collect_md mode
        decnet: always not take dst->__refcnt when inserting dst into hash table
        ip6_tunnel: fix potential issue in __ip6_tnl_rcv
        ip_tunnel: fix potential issue in ip_tunnel_rcv
        brcmfmac: fix uninitialized warning in brcmf_usb_probe_phase2()
        net/mlx5e: Avoid doing a cleanup call if the profile doesn't have it
        ...
      48b6bbef
    • David S. Miller's avatar
      Merge branch 'qed-File-split-and-rename-towards-iWARP-support' · 52f80dca
      David S. Miller authored
      Michal Kalderon says:
      
      ====================
      qed*: File split and rename towards iWARP support
      
      This patch series makes a few more infrastructure changes towards adding
      iWARP support. Hopefully this is the last infrastructure change
      prior to the iWARP RFC.
      
      Patch #1-3 take care of taking all the common iWARP/RoCE code out of
      qed_roce.[ch] and placing it in qed_rdma.[ch]
      Patch #4 renames the roce interface file as it is common for
      RoCE and iWARP. This patch touches qedr as well.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52f80dca
    • Kalderon, Michal's avatar
      qed*: Rename qed_roce_if.h to qed_rdma_if.h · 7003cdd6
      Kalderon, Michal authored
      Rename the qed_roce_if file to qed_rdma_if as it
      represents a common interface for RoCE and iWARP.
      
      this commit affects RDMA/qedr as well.
      Signed-off-by: default avatarMichal Kalderon <Michal.Kalderon@cavium.com>
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7003cdd6
    • Kalderon, Michal's avatar
      qed: Split rdma content between qed_rdma and qed_roce · b71b9afd
      Kalderon, Michal authored
      This patch places common iWARP / RoCE code in qed_rdma
      and roce specific code in qed_roce
      
      There is one new function ( qed_roce_setup ) added, the rest
      of the patch removes content from the files and removes some
      static definitions.
      Signed-off-by: default avatarMichal Kalderon <Michal.Kalderon@cavium.com>
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b71b9afd
    • Kalderon, Michal's avatar
      qed: Duplicate qed_roce.[ch] to qed_rdma.[ch] · f1372ee1
      Kalderon, Michal authored
      This patch adds files that will contain common code for RoCE/iWARP.
      The files are currently identical to qed_roce.c / qed_roce.h and
      intentionally not added to the makefile. The next patch in the series
      will modify the files so that roce specific code is left in qed_roce
      and common roce/iwarp code will be placed in qed_rdma
      
      This patch is the result of a simple
      cp qed_rdma.c qed_roce.c
      cp qed_rdma.h qed_roce.h
      Signed-off-by: default avatarMichal Kalderon <Michal.Kalderon@cavium.com>
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f1372ee1
    • Kalderon, Michal's avatar
      qed: Cleanup qed_roce before duplicating it · 8e8dddba
      Kalderon, Michal authored
      The next patch in the series will duplicate qed_roce as part
      of code preprations for iWARP support. Do some cleanup before
      duplicating
      Signed-off-by: default avatarMichal Kalderon <Michal.Kalderon@cavium.com>
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8e8dddba
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · ce879b64
      Linus Torvalds authored
      Pull more pin control fixes from Linus Walleij:
       "Some late arriving fixes. I should have sent earlier, just swamped
        with work as usual. Thomas patch makes AMD systems usable despite
        firmware bugs so it is fairly important.
      
         - Make the AMD driver use a regular interrupt rather than a chained
           one, so the system does not lock up.
      
         - Fix a function call error deep inside the STM32 driver"
      
      * tag 'pinctrl-v4.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: stm32: Fix bad function call
        pinctrl/amd: Use regular interrupt instead of chained
      ce879b64
    • Daniel Borkmann's avatar
      bpf: expose prog id for cls_bpf and act_bpf · e8628307
      Daniel Borkmann authored
      In order to be able to retrieve the attached programs from cls_bpf
      and act_bpf, we need to expose the prog ids via netlink so that
      an application can later on get an fd based on the id through the
      BPF_PROG_GET_FD_BY_ID command, and dump related prog info via
      BPF_OBJ_GET_INFO_BY_FD command for bpf(2).
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e8628307
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · db1b5ccd
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - revert of a commit to magicmouse driver that regressess certain
         devices, from Daniel Stone
      
       - quirk for a specific Dell mouse, from Sebastian Parschauer
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        Revert "HID: magicmouse: Set multi-touch keybits for Magic Mouse"
        HID: Add quirk for Dell PIXART OEM mouse
      db1b5ccd
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching · dcba7108
      Linus Torvalds authored
      Pull livepatching fix from Jiri Kosina:
       "Fix the way how livepatches are being stacked with respect to RCU,
        from Petr Mladek"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
        livepatch: Fix stacking of patches with respect to RCU
      dcba7108
    • Linus Torvalds's avatar
      Merge branch 'ufs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 021f6019
      Linus Torvalds authored
      Pull more ufs fixes from Al Viro:
       "More UFS fixes, unfortunately including build regression fix for the
        64-bit s_dsize commit. Fixed in this pile:
      
         - trivial bug in signedness of 32bit timestamps on ufs1
      
         - ESTALE instead of ufs_error() when doing open-by-fhandle on
           something deleted
      
         - build regression on 32bit in ufs_new_fragments() - calculating that
           many percents of u64 pulls libgcc stuff on some of those. Mea
           culpa.
      
         - fix hysteresis loop broken by typo in 2.4.14.7 (right next to the
           location of previous bug).
      
         - fix the insane limits of said hysteresis loop on filesystems with
           very low percentage of reserved blocks. If it's 5% or less, just
           use the OPTSPACE policy.
      
         - calculate those limits once and mount time.
      
        This tree does pass xfstests clean (both ufs1 and ufs2) and it _does_
        survive cross-builds.
      
        Again, my apologies for missing that, especially since I have noticed
        a related percentage-of-64bit issue in earlier patches (when dealing
        with amount of reserved blocks). Self-LART applied..."
      
      * 'ufs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        ufs: fix the logics for tail relocation
        ufs_iget(): fail with -ESTALE on deleted inode
        fix signedness of timestamps on ufs1
      021f6019
    • Helge Deller's avatar
      Allow stack to grow up to address space limit · bd726c90
      Helge Deller authored
      Fix expand_upwards() on architectures with an upward-growing stack (parisc,
      metag and partly IA-64) to allow the stack to reliably grow exactly up to
      the address space limit given by TASK_SIZE.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Acked-by: default avatarHugh Dickins <hughd@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bd726c90
    • Hugh Dickins's avatar
      mm: fix new crash in unmapped_area_topdown() · f4cb767d
      Hugh Dickins authored
      Trinity gets kernel BUG at mm/mmap.c:1963! in about 3 minutes of
      mmap testing.  That's the VM_BUG_ON(gap_end < gap_start) at the
      end of unmapped_area_topdown().  Linus points out how MAP_FIXED
      (which does not have to respect our stack guard gap intentions)
      could result in gap_end below gap_start there.  Fix that, and
      the similar case in its alternative, unmapped_area().
      
      Cc: stable@vger.kernel.org
      Fixes: 1be7107f ("mm: larger stack guard gap, between vmas")
      Reported-by: default avatarDave Jones <davej@codemonkey.org.uk>
      Debugged-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f4cb767d
    • Paolo Abeni's avatar
      sock: avoid dirtying incoming_cpu if not needed · 34cfb542
      Paolo Abeni authored
      for connected socket, the incoming_cpu field in the sock struct
      is not going to change frequently, but we are setting it
      unconditionally for each packet.
      
      Since sk_incoming_cpu and sk_flags share the same cacheline,
      and the latter is access by udp_recvmsg(), this cause a cache
      miss for each packet for UDP connected socket.
      
      With this patch, we set the incoming cpu field only when the
      ingress cpu really changes.
      
      This gives a small but measurable performance improvement for
      connected UDP socket.
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      34cfb542
    • David Herrmann's avatar
      net: introduce SO_PEERGROUPS getsockopt · 28b5ba2a
      David Herrmann authored
      This adds the new getsockopt(2) option SO_PEERGROUPS on SOL_SOCKET to
      retrieve the auxiliary groups of the remote peer. It is designed to
      naturally extend SO_PEERCRED. That is, the underlying data is from the
      same credentials. Regarding its syntax, it is based on SO_PEERSEC. That
      is, if the provided buffer is too small, ERANGE is returned and @optlen
      is updated. Otherwise, the information is copied, @optlen is set to the
      actual size, and 0 is returned.
      
      While SO_PEERCRED (and thus `struct ucred') already returns the primary
      group, it lacks the auxiliary group vector. However, nearly all access
      controls (including kernel side VFS and SYSVIPC, but also user-space
      polkit, DBus, ...) consider the entire set of groups, rather than just
      the primary group. But this is currently not possible with pure
      SO_PEERCRED. Instead, user-space has to work around this and query the
      system database for the auxiliary groups of a UID retrieved via
      SO_PEERCRED.
      
      Unfortunately, there is no race-free way to query the auxiliary groups
      of the PID/UID retrieved via SO_PEERCRED. Hence, the current user-space
      solution is to use getgrouplist(3p), which itself falls back to NSS and
      whatever is configured in nsswitch.conf(3). This effectively checks
      which groups we *would* assign to the user if it logged in *now*. On
      normal systems it is as easy as reading /etc/group, but with NSS it can
      resort to quering network databases (eg., LDAP), using IPC or network
      communication.
      
      Long story short: Whenever we want to use auxiliary groups for access
      checks on IPC, we need further IPC to talk to the user/group databases,
      rather than just relying on SO_PEERCRED and the incoming socket. This
      is unfortunate, and might even result in dead-locks if the database
      query uses the same IPC as the original request.
      
      So far, those recursions / dead-locks have been avoided by using
      primitive IPC for all crucial NSS modules. However, we want to avoid
      re-inventing the wheel for each NSS module that might be involved in
      user/group queries. Hence, we would preferably make DBus (and other IPC
      that supports access-management based on groups) work without resorting
      to the user/group database. This new SO_PEERGROUPS ioctl would allow us
      to make dbus-daemon work without ever calling into NSS.
      
      Cc: Michal Sekletar <msekleta@redhat.com>
      Cc: Simon McVittie <simon.mcvittie@collabora.co.uk>
      Reviewed-by: default avatarTom Gundersen <teg@jklm.no>
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      28b5ba2a
    • Paolo Abeni's avatar
      udp: prefetch rmem_alloc in udp_queue_rcv_skb() · dd99e425
      Paolo Abeni authored
      On UDP packets processing, if the BH is the bottle-neck, it
      always sees a cache miss while updating rmem_alloc; try to
      avoid it prefetching the value as soon as we have the socket
      available.
      
      Performances under flood with multiple NIC rx queues used are
      unaffected, but when a single NIC rx queue is in use, this
      gives ~10% performance improvement.
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd99e425
    • Chad Dupuis's avatar
      qede: Fix compilation without QED_RDMA · da2e9cf0
      Chad Dupuis authored
      When CONFIG_QED_RDMA isn't defined, we'd hit the following:
      
       /include/linux/qed/qede_rdma.h:84:19:
       warning: ‘qede_rdma_dev_add’ used but never defined [enabled by default]
       static inline int qede_rdma_dev_add(struct qede_dev *dev);
      
      Fixes: bbfcd1e8 ("qed*: Set rdma generic functions prefix")
      Signed-off-by: default avatarChad Dupuis <chad.dupuis@cavium.com>
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      da2e9cf0
    • hayeswang's avatar
      r8152: correct the definition · b65c0c9b
      hayeswang authored
      Replace VLAN_HLEN and CRC_SIZE with ETH_FCS_LEN.
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b65c0c9b
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · adff41f9
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      40GbE Intel Wired LAN Driver Updates 2017-06-20
      
      This series contains updates to i40e and i40evf only.
      
      Björn adds additional XDP support for i40e, by adding pass and drop actions
      and XDP_TX action support.
      
      Jake fixes a possible NULL pointer dereference in
      i40evf_get_ethtool_stats() which could occur if the VF fails to recover
      from a reset, and then a user requests statistics.  Changed the use of
      dev_info() to dev_dbg() for vf_capability client routine so that the
      standard log is not spammed with this information which "might" cause
      administrators to worry.  Also added more code comments to help explain
      why udp_port has be in host byte order and to avoid future changes which
      may cause this to break.  Fixed the holding of the RTNL lock for the
      entire reset routine, reduced the scope so that the reset function will
      handle its own lock, so that we do not have to wrap every reference
      to i40e_do_reset() with RTNL lock/unlock.
      
      Alice updates flags related to firmware interactions for WoL and admin
      queue command address with the correct value.
      
      Sudheer makes a fix to ensure that the array is not accessed past the
      size of the array.
      
      Greg fixes the parsing of firmware 4.33 admin queue commmand "Get CEE
      DCBX PER CFG" because the firmware now creates the oper_prio_tc nibbles
      reversed from those in the CDD Priority Group sub-TLV.
      
      Carolyn adds a check and message to let users know that when in MFP mode,
      changing RSS hash input set is not supported.
      
      Shannon makes the partition bandwidth control more generic since it is not
      in just one form of multi-function partitioning (MFP).  Also fixes a bug
      which was causing the firmware confusion in some reset sequences, when
      we were disabling interrupts and we were clearing the whole register.
      Instead we should only be clearing the CAUSE_ENA bit when disabling
      interrupts.
      
      Filip adds support for OEM firmware version, so that if a OEM specific
      adapter is detected, ethtool reports the OEM product version in the
      firmware version string instead of etrack id.
      
      Alan fixes a bug where the driver was not correctly exiting overflow
      promiscuous mode, which can happen if "too many" MAC filters are added,
      putting the driver into overflow promiscuous mode, and the filters are
      then removed.  The bug occurs because the conditional for toggling
      promiscuous mode was only be executed when enabled and not when it was
      disabled.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      adff41f9
    • David S. Miller's avatar
      Merge branch 'ipmr-ip6mr-add-Netlink-notifications-on-cache-reports' · 2f89a795
      David S. Miller authored
      Julien Gomes says:
      
      ====================
      ipmr/ip6mr: add Netlink notifications on cache reports
      
      Currently, all ipmr/ip6mr cache reports are sent through the
      mroute/mroute6 socket only.
      This forces the use of a single socket for mroute programming, cache
      reports and, regarding ipmr, IGMP messages without Router Alert option
      reception.
      
      The present patches are aiming to send Netlink notifications in addition
      to the existing igmpmsg/mrt6msg to give user programs a way to handle
      cache reports in parallel with multiple sockets other than the
      mroute/mroute6 socket.
      
      Changes in v2:
      - Changed attributes naming from {IPMRA,IP6MRA}_CACHEREPORTA_* to
        {IPMRA,IP6MRA}_CREPORT_*
      - Improved packet data copy to handle non-linear packets in
        ipmr/ip6mr cache report Netlink notification creation
      - Added two rtnetlink groups with restricted-binding
      - Changed cache report notified groups from RTNL_{IPV4,IPV6}_MROUTE to
        the new restricted groups in ipmr/ip6mr
      
      Changes in v3:
      - Put message size calculation for {igmp,mrt6}msg_netlink_event in separate
        functions
      - Increased vif id attributes size from u8 to u32
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f89a795
    • Julien Gomes's avatar
      ip6mr: add netlink notifications on mrt6msg cache reports · dd12d15c
      Julien Gomes authored
      Add Netlink notifications on cache reports in ip6mr, in addition to the
      existing mrt6msg sent to mroute6_sk.
      Send RTM_NEWCACHEREPORT notifications to RTNLGRP_IPV6_MROUTE_R.
      
      MSGTYPE, MIF_ID, SRC_ADDR and DST_ADDR Netlink attributes contain the
      same data as their equivalent fields in the mrt6msg header.
      PKT attribute is the packet sent to mroute6_sk, without the added
      mrt6msg header.
      Suggested-by: default avatarRyan Halbrook <halbrook@arista.com>
      Signed-off-by: default avatarJulien Gomes <julien@arista.com>
      Reviewed-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd12d15c