Skip to content
  1. Feb 17, 2020
    • Arjun Roy's avatar
      tcp-zerocopy: Return inq along with tcp receive zerocopy. · c8856c05
      Arjun Roy authored
      
      
      This patchset is intended to reduce the number of extra system calls
      imposed by TCP receive zerocopy. For ping-pong RPC style workloads,
      this patchset has demonstrated a system call reduction of about 30%
      when coupled with userspace changes.
      
      For applications using edge-triggered epoll, returning inq along with
      the result of tcp receive zerocopy could remove the need to call
      recvmsg()=-EAGAIN after a successful zerocopy. Generally speaking,
      since normally we would need to perform a recvmsg() call for every
      successful small RPC read via TCP receive zerocopy, returning inq can
      reduce the number of system calls performed by approximately half.
      
      Signed-off-by: default avatarArjun Roy <arjunroy@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c8856c05
    • David S. Miller's avatar
      Merge branch 'Enhance-virtio-vsock-connection-semantics' · 8c8da5b8
      David S. Miller authored
      
      
      Sebastien Boeuf says:
      
      ====================
      Enhance virtio-vsock connection semantics
      
      This series improves the semantics behind the way virtio-vsock server
      accepts connections coming from the client. Whenever the server
      receives a connection request from the client, if it is bound to the
      socket but not yet listening, it will answer with a RST packet. The
      point is to ensure each request from the client is quickly processed
      so that the client can decide about the strategy of retrying or not.
      
      The series includes along with the improvement patch a new test to
      ensure the behavior is consistent across all hypervisors drivers.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8c8da5b8
    • Sebastien Boeuf's avatar
      tools: testing: vsock: Test when server is bound but not listening · 9de9f7d1
      Sebastien Boeuf authored
      
      
      Whenever the server side of vsock is binding to the socket, but not
      listening yet, we expect the behavior from the client to be identical to
      what happens when the server is not even started.
      
      This new test runs the server side so that it binds to the socket
      without ever listening to it. The client side will try to connect and
      should receive an ECONNRESET error.
      
      This new test provides a way to validate the previously introduced patch
      for making sure the server side will always answer with a RST packet in
      case the client requested a new connection.
      
      Signed-off-by: default avatarSebastien Boeuf <sebastien.boeuf@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9de9f7d1
    • Sebastien Boeuf's avatar
      net: virtio_vsock: Enhance connection semantics · df12eb6d
      Sebastien Boeuf authored
      
      
      Whenever the vsock backend on the host sends a packet through the RX
      queue, it expects an answer on the TX queue. Unfortunately, there is one
      case where the host side will hang waiting for the answer and might
      effectively never recover if no timeout mechanism was implemented.
      
      This issue happens when the guest side starts binding to the socket,
      which insert a new bound socket into the list of already bound sockets.
      At this time, we expect the guest to also start listening, which will
      trigger the sk_state to move from TCP_CLOSE to TCP_LISTEN. The problem
      occurs if the host side queued a RX packet and triggered an interrupt
      right between the end of the binding process and the beginning of the
      listening process. In this specific case, the function processing the
      packet virtio_transport_recv_pkt() will find a bound socket, which means
      it will hit the switch statement checking for the sk_state, but the
      state won't be changed into TCP_LISTEN yet, which leads the code to pick
      the default statement. This default statement will only free the buffer,
      while it should also respond to the host side, by sending a packet on
      its TX queue.
      
      In order to simply fix this unfortunate chain of events, it is important
      that in case the default statement is entered, and because at this stage
      we know the host side is waiting for an answer, we must send back a
      packet containing the operation VIRTIO_VSOCK_OP_RST.
      
      One could say that a proper timeout mechanism on the host side will be
      enough to avoid the backend to hang. But the point of this patch is to
      ensure the normal use case will be provided with proper responsiveness
      when it comes to establishing the connection.
      
      Signed-off-by: default avatarSebastien Boeuf <sebastien.boeuf@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      df12eb6d
    • David S. Miller's avatar
      Merge tag 'mac80211-next-for-net-next-2020-02-14' of... · ddb535a6
      David S. Miller authored
      
      Merge tag 'mac80211-next-for-net-next-2020-02-14' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
      
      Johannes Berg says:
      
      ====================
      A few big new things:
       * 802.11 frame encapsulation offload support
       * more HE (802.11ax) support, including some for 6 GHz band
       * powersave in hwsim, for better testing
      
      Of course as usual there are various cleanups and small fixes.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ddb535a6
    • chenqiwu's avatar
      net: x25: convert to list_for_each_entry_safe() · 1e5946f5
      chenqiwu authored
      
      
      Use list_for_each_entry_safe() instead of list_for_each_safe()
      to simplify the code.
      
      Signed-off-by: default avatarchenqiwu <chenqiwu@xiaomi.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e5946f5
    • Gustavo A. R. Silva's avatar
      lib: objagg: Replace zero-length arrays with flexible-array member · 1f4c51de
      Gustavo A. R. Silva authored
      The current codebase makes use of the zero-length array language
      extension to the C90 standard, but the preferred mechanism to declare
      variable-length types such as these ones is a flexible array member[1][2],
      introduced in C99:
      
      struct foo {
              int stuff;
              struct boo array[];
      };
      
      By making use of the mechanism above, we will get a compiler warning
      in case the flexible array does not occur last in the structure, which
      will help us prevent some kind of undefined behavior bugs from being
      inadvertenly introduced[3] to the codebase from now on.
      
      This issue was found with the help of Coccinelle.
      
      [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
      [2] https://github.com/KSPP/linux/issues/21
      [3] commit 76497732
      
       ("cxgb3/l2t: Fix undefined behaviour")
      
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f4c51de
    • Yangbo Lu's avatar
      ptp_qoriq: drop the code of alarm · d71151a3
      Yangbo Lu authored
      
      
      The alarm function hadn't been supported by PTP clock driver.
      The recommended solution PHC + phc2sys + nanosleep provides
      best performance. So drop the code of alarm in ptp_qoriq driver.
      
      Signed-off-by: default avatarYangbo Lu <yangbo.lu@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d71151a3
  2. Feb 15, 2020
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 2019fc96
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix interrupt name truncation in mv88e6xxx dsa driver, from Andrew
          Lunn.
      
       2) Process generic XDP even if SKB is cloned, from Toke Høiland-Jørgensen.
      
       3) Fix leak of kernel memory to userspace in smc, from Eric Dumazet.
      
       4) Add some missing netlink attribute validation to matchall and
          flower, from Davide Caratti.
      
       5) Send icmp responses properly when NAT has been applied to the frame
          before we get to the tunnel emitting the icmp, from Jason Donenfeld.
      
       6) Make sure there is enough SKB headroom when adding dsa tags for qca
          and ar9331. From Per Forlin.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (62 commits)
        netdevice.h: fix all kernel-doc and Sphinx warnings
        net: dsa: tag_ar9331: Make sure there is headroom for tag
        net: dsa: tag_qca: Make sure there is headroom for tag
        net, ip6_tunnel: enhance tunnel locate with link check
        net/smc: no peer ID in CLC decline for SMCD
        net/smc: transfer fasync_list in case of fallback
        net: hns3: fix a copying IPv6 address error in hclge_fd_get_flow_tuples()
        net: hns3: fix VF bandwidth does not take effect in some case
        net: hns3: add management table after IMP reset
        mac80211: fix wrong 160/80+80 MHz setting
        cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE
        xfrm: interface: use icmp_ndo_send helper
        wireguard: device: use icmp_ndo_send helper
        sunvnet: use icmp_ndo_send helper
        gtp: use icmp_ndo_send helper
        icmp: introduce helper for nat'd source address in network device context
        net/sched: flower: add missing validation of TCA_FLOWER_FLAGS
        net/sched: matchall: add missing validation of TCA_MATCHALL_FLAGS
        net/flow_dissector: remove unexist field description
        page_pool: refill page when alloc.count of pool is zero
        ...
      2019fc96
    • Linus Torvalds's avatar
      Merge tag 'pm-5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 4e03e4e6
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "Fix three issues related to the handling of wakeup events signaled
        through the ACPI SCI while suspended to idle (Rafael Wysocki) and
        unexport an internal cpufreq variable (Yangtao Li)"
      
      * tag 'pm-5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: PM: s2idle: Prevent spurious SCIs from waking up the system
        ACPICA: Introduce acpi_any_gpe_status_set()
        ACPI: PM: s2idle: Avoid possible race related to the EC GPE
        ACPI: EC: Fix flushing of pending work
        cpufreq: Make cpufreq_global_kobject static
      4e03e4e6
    • Linus Torvalds's avatar
      Merge tag 'sound-5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 81f3011c
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "The only common change is the regression fix of the previous PCM fix
        patch for managed buffers while the rest are usual suspects, USB-audio
        and HD-audio device-specific quirks.
      
        The change for UAC2 clock validation workaround became a bit big, but
        the changes are fairly straightforward"
      
      * tag 'sound-5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: pcm: Fix double hw_free calls
        ALSA: usb-audio: Add clock validity quirk for Denon MC7000/MCX8000
        ALSA: hda/realtek - Fix silent output on MSI-GL73
        ALSA: hda/realtek - Add more codec supported Headset Button
        ALSA: usb-audio: Apply sample rate quirk for Audioengine D1
        ALSA: usb-audio: Fix UAC2/3 effect unit parsing
        ALSA: usb-audio: Apply 48kHz fixed rate playback for Jabra Evolve 65 headset
      81f3011c
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-02-14' of git://anongit.freedesktop.org/drm/drm · 3f0d3293
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "The core has a build fix for edid code on certain compilers/arches/,
        one MST fix and one vgem fix. Regular amdgpu fixes, and a couple of
        small driver fixes.
      
        The i915 fixes are bit larger than normal for this stage, but they
        were having CI issues last week, and they hadn't sent any fixes last
        week due to this.
      
        core:
         - edid build fix
      
        mst:
         - fix NULL ptr deref
      
        vgem:
         - fix close after free
      
        msm:
         - better dma-api usage
      
        sun4i:
         - disable allow_fb_modifiers
      
        amdgpu:
         - Additional OD fixes for navi
         - Misc display fixes
         - VCN 2.5 DPG fix
         - Prevent build errors on PowerPC on some configs
         - GDS EDC fix
      
        i915:
         - dsi/acpi fixes
         - gvt locking and allocation fixes
         - gem/gt fixes
         - bios timing parameters fix"
      
      * tag 'drm-fixes-2020-02-14' of git://anongit.freedesktop.org/drm/drm: (50 commits)
        drm/i915: Mark the removal of the i915_request from the sched.link
        drm/i915/execlists: Reclaim the hanging virtual request
        drm/i915/execlists: Take a reference while capturing the guilty request
        drm/i915/execlists: Offline error capture
        drm/i915/gt: Allow temporary suspension of inflight requests
        drm/i915: Keep track of request among the scheduling lists
        drm/i915/gem: Tighten checks and acquiring the mmap object
        drm/i915: Fix preallocated barrier list append
        drm/i915/gt: Acquire ce->active before ce->pin_count/ce->pin_mutex
        drm/i915: Tighten atomicity of i915_active_acquire vs i915_active_release
        drm/i915: Stub out i915_gpu_coredump_put
        drm/amdgpu:/navi10: use the ODCAP enum to index the caps array
        drm/amdgpu: update smu_v11_0_pptable.h
        drm/amdgpu: correct comment to clear up the confusion
        drm/amd/display: DCN2.x Do not program DPPCLK if same value
        drm/amd/display: Don't map ATOM_ENABLE to ATOM_INIT
        drm/amdgpu/vcn2.5: fix warning
        drm/amdgpu: limit GDS clearing workaround in cold boot sequence
        drm/amdgpu: fix amdgpu pmu to use hwc->config instead of hwc->conf
        amdgpu: Prevent build errors regarding soft/hard-float FP ABI tags
        ...
      3f0d3293
  3. Feb 14, 2020
    • Randy Dunlap's avatar
      netdevice.h: fix all kernel-doc and Sphinx warnings · a1fa83bd
      Randy Dunlap authored
      
      
      Eliminate all kernel-doc and Sphinx warnings in
      <linux/netdevice.h>.  Fixes these warnings:
      
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'gso_partial_features' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'l3mdev_ops' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xfrmdev_ops' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'tlsdev_ops' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'name_assign_type' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'ieee802154_ptr' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'mpls_ptr' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xdp_prog' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'gro_flush_timeout' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xdp_bulkq' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xps_cpus_map' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'xps_rxqs_map' not described in 'net_device'
      ../include/linux/netdevice.h:2100: warning: Function parameter or member 'qdisc_hash' not described in 'net_device'
      ../include/linux/netdevice.h:3552: WARNING: Inline emphasis start-string without end-string.
      ../include/linux/netdevice.h:3552: WARNING: Inline emphasis start-string without end-string.
      
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a1fa83bd
    • David S. Miller's avatar
      Merge branch 'dsa-headroom' · 3ea89fa7
      David S. Miller authored
      
      
      Per Forlin says:
      
      ====================
      net: dsa: Make sure there is headroom for tag
      
      Sorry for re-posting yet another time....
      I manage to include multiple email-senders and forgot to include cover-letter.
      Let's hope everyhthing is in order this time.
      
      Fix two tag drivers to make sure there is headroom for the tag data.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3ea89fa7
    • Per Forlin's avatar
      net: dsa: tag_ar9331: Make sure there is headroom for tag · ddc9abaf
      Per Forlin authored
      
      
      Passing tag size to skb_cow_head will make sure
      there is enough headroom for the tag data.
      This change does not introduce any overhead in case there
      is already available headroom for tag.
      
      Signed-off-by: default avatarPer Forlin <perfn@axis.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ddc9abaf
    • Per Forlin's avatar
      net: dsa: tag_qca: Make sure there is headroom for tag · 04fb9124
      Per Forlin authored
      
      
      Passing tag size to skb_cow_head will make sure
      there is enough headroom for the tag data.
      This change does not introduce any overhead in case there
      is already available headroom for tag.
      
      Signed-off-by: default avatarPer Forlin <perfn@axis.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      04fb9124
    • William Dauchy's avatar
      net, ip6_tunnel: enhance tunnel locate with link check · 5fdcce21
      William Dauchy authored
      
      
      With ipip, it is possible to create an extra interface explicitly
      attached to a given physical interface:
      
        # ip link show tunl0
        4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
          link/ipip 0.0.0.0 brd 0.0.0.0
        # ip link add tunl1 type ipip dev eth0
        # ip link show tunl1
        6: tunl1@eth0: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
          link/ipip 0.0.0.0 brd 0.0.0.0
      
      But it is not possible with ip6tnl:
      
        # ip link show ip6tnl0
        5: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN mode DEFAULT group default qlen 1000
            link/tunnel6 :: brd ::
        # ip link add ip6tnl1 type ip6tnl dev eth0
        RTNETLINK answers: File exists
      
      This patch aims to make it possible by adding link comparaison in both
      tunnel locate and lookup functions; we also modify mtu calculation when
      attached to an interface with a lower mtu.
      
      This permits to make use of x-netns communication by moving the newly
      created tunnel in a given netns.
      
      Signed-off-by: default avatarWilliam Dauchy <w.dauchy@criteo.com>
      Reviewed-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5fdcce21
    • David S. Miller's avatar
      Merge tag 'mac80211-for-net-2020-02-14' of... · b32cb6fc
      David S. Miller authored
      
      Merge tag 'mac80211-for-net-2020-02-14' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
      
      Johannes Berg says:
      
      ====================
      Just a few fixes:
       * avoid running out of tracking space for frames that need
         to be reported to userspace by using more bits
       * fix beacon handling suppression by adding some relevant
         elements to the CRC calculation
       * fix quiet mode in action frames
       * fix crash in ethtool for virt_wifi and similar
       * add a missing policy entry
       * fix 160 & 80+80 bandwidth to take local capabilities into
         account
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b32cb6fc
    • David S. Miller's avatar
      Merge branch 'smc-fixes' · 907e51e4
      David S. Miller authored
      
      
      Karsten Graul says:
      
      ====================
      net/smc: fixes for -net
      
      Fix a syzbot finding and a problem with the CLC handshake content.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      907e51e4
    • Ursula Braun's avatar
      net/smc: no peer ID in CLC decline for SMCD · 369537c9
      Ursula Braun authored
      Just SMCR requires a CLC Peer ID, but not SMCD. The field should be
      zero for SMCD.
      
      Fixes: c758dfdd
      
       ("net/smc: add SMC-D support in CLC messages")
      Signed-off-by: default avatarUrsula Braun <ubraun@linux.ibm.com>
      Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      369537c9
    • Ursula Braun's avatar
      net/smc: transfer fasync_list in case of fallback · 67f562e3
      Ursula Braun authored
      
      
      SMC does not work together with FASTOPEN. If sendmsg() is called with
      flag MSG_FASTOPEN in SMC_INIT state, the SMC-socket switches to
      fallback mode. To handle the previous ioctl FIOASYNC call correctly
      in this case, it is necessary to transfer the socket wait queue
      fasync_list to the internal TCP socket.
      
      Reported-by: default avatar <syzbot+4b1fe8105f8044a26162@syzkaller.appspotmail.com>
      Fixes: ee9dfbef
      
       ("net/smc: handle sockopts forcing fallback")
      Signed-off-by: default avatarUrsula Braun <ubraun@linux.ibm.com>
      Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      67f562e3
    • David S. Miller's avatar
      Merge branch 'hns3-fixes' · dc221a28
      David S. Miller authored
      
      
      Huazhong Tan says:
      
      ====================
      net: hns3: fixes for -net
      
      This series includes three bugfixes for the HNS3 ethernet driver.
      
      [patch 1] fixes a management table lost issue after IMP reset.
      [patch 2] fixes a VF bandwidth configuration not work problem.
      [patch 3] fixes a problem related to IPv6 address copying.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc221a28
    • Guangbin Huang's avatar
      net: hns3: fix a copying IPv6 address error in hclge_fd_get_flow_tuples() · 47327c93
      Guangbin Huang authored
      The IPv6 address defined in struct in6_addr is specified as
      big endian, but there is no specified endian in struct
      hclge_fd_rule_tuples, so it  will cause a problem if directly
      use memcpy() to copy ipv6 address between these two structures
      since this field in struct hclge_fd_rule_tuples is little endian.
      
      This patch fixes this problem by using be32_to_cpu() to convert
      endian of IPv6 address of struct in6_addr before copying.
      
      Fixes: d93ed94f
      
       ("net: hns3: add aRFS support for PF")
      Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      47327c93
    • Yonglong Liu's avatar
      net: hns3: fix VF bandwidth does not take effect in some case · 19eb1123
      Yonglong Liu authored
      When enabling 4 TC after setting the bandwidth of VF, the bandwidth
      of VF will resume to default value, because of the qset resources
      changed in this case.
      
      This patch fixes it by using a fixed VF's qset resources according to
      HNAE3_MAX_TC macro.
      
      Fixes: ee9e4424
      
       ("net: hns3: add support for configuring bandwidth of VF on the host")
      Signed-off-by: default avatarYonglong Liu <liuyonglong@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      19eb1123
    • Yufeng Mo's avatar
      net: hns3: add management table after IMP reset · d0db7ed3
      Yufeng Mo authored
      In the current process, the management table is missing after the
      IMP reset. This patch adds the management table to the reset process.
      
      Fixes: f5aac71c
      
       ("net: hns3: add manager table initialization for hardware")
      Signed-off-by: default avatarYufeng Mo <moyufeng@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d0db7ed3
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · 3629ac5b
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: Make cpufreq_global_kobject static
      3629ac5b
    • John Crispin's avatar
      mac80211: allow setting queue_len for drivers not using wake_tx_queue · 1f6e0baa
      John Crispin authored
      
      
      Currently a mac80211 driver can only set the txq_limit when using
      wake_tx_queue. Not all drivers use wake_tx_queue. This patch adds a new
      element to wiphy allowing a driver to set a custom tx_queue_len and the
      code that will apply it in case it is set. The current default is
      1000 which is too low for ath11k when doing HE rates.
      
      Signed-off-by: default avatarJohn Crispin <john@phrozen.org>
      Link: https://lore.kernel.org/r/20200211122605.13002-1-john@phrozen.org
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      1f6e0baa
    • Sergey Matyukevich's avatar
      ieee80211: add WPA3 OWE AKM suite selector · 256db742
      Sergey Matyukevich authored
      
      
      Add the definition for Opportunistic Wireless Encryption AKM selector.
      
      Signed-off-by: default avatarSergey Matyukevich <sergey.matyukevich.os@quantenna.com>
      Link: https://lore.kernel.org/r/20200213131608.10541-3-sergey.matyukevich.os@quantenna.com
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      256db742
    • Ben Greear's avatar
      mac80211: Fix setting txpower to zero · db6d9e9e
      Ben Greear authored
      With multiple VIFS ath10k, and probably others, tries to find the
      minimum txpower for all vifs and uses that when setting txpower in
      the firmware.
      
      If a second vif is added and starts to scan, it's txpower is not
      initialized yet and it set to zero.
      
      ath10k had a patch to ignore zero values, but then it is impossible
      to actually set txpower to zero.
      
      So, instead initialize the txpower to INT_MIN in mac80211, and let
      drivers know that means the power has not been set and so should
      be ignored.
      
      This should fix regression in:
      
      commit 88407beb
      
      
      Author: Ryan Hsu <ryanhsu@qca.qualcomm.com>
      Date:   Tue Dec 13 14:55:19 2016 -0800
      
          ath10k: fix incorrect txpower set by P2P_DEVICE interface
      
      Tested on ath10k 9984 with ath10k-ct firmware.
      
      Signed-off-by: default avatarBen Greear <greearb@candelatech.com>
      Link: https://lore.kernel.org/r/20191217183057.24586-1-greearb@candelatech.com
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      db6d9e9e
    • Shay Bar's avatar
      mac80211: fix wrong 160/80+80 MHz setting · 33181ea7
      Shay Bar authored
      
      
      Before this patch, STA's would set new width of 160/80+80 MHz based on AP capability only.
      This is wrong because STA may not support > 80MHz BW.
      Fix is to verify STA has 160/80+80 MHz capability before increasing its width to > 80MHz.
      
      The "support_80_80" and "support_160" setting is based on:
      "Table 9-272 — Setting of the Supported Channel Width Set subfield and Extended NSS BW
      Support subfield at a STA transmitting the VHT Capabilities Information field"
      From "Draft P802.11REVmd_D3.0.pdf"
      
      Signed-off-by: default avatarAviad Brikman <aviad.brikman@celeno.com>
      Signed-off-by: default avatarShay Bar <shay.bar@celeno.com>
      Link: https://lore.kernel.org/r/20200210130728.23674-1-shay.bar@celeno.com
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      33181ea7
    • Sergey Matyukevich's avatar
      cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE · ea750801
      Sergey Matyukevich authored
      
      
      The nl80211_policy is missing for NL80211_ATTR_STATUS_CODE attribute.
      As a result, for strictly validated commands, it's assumed to not be
      supported.
      
      Signed-off-by: default avatarSergey Matyukevich <sergey.matyukevich.os@quantenna.com>
      Link: https://lore.kernel.org/r/20200213131608.10541-2-sergey.matyukevich.os@quantenna.com
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      ea750801
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-fixes-2020-02-13' of... · 6f4134b3
      Dave Airlie authored
      
      Merge tag 'drm-intel-next-fixes-2020-02-13' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v5.6-rc2
      
      Most of these were aimed at a "next fixes" pull already during the merge
      window, but there were issues with the baseline I used, which resulted
      in a lot of issues in CI. I've regenerated this stuff piecemeal now,
      adding gradually to it, and it seems healthy now.
      
      Due to the issues this is much bigger than I'd like. But it was
      obviously necessary to take the time to ensure it's not garbage...
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/878sl6yfrn.fsf@intel.com
      6f4134b3
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.6-2020-02-12' of... · e44c1e3a
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-5.6-2020-02-12' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.6-2020-02-12:
      
      amdgpu:
      - Additional OD fixes for navi
      - Misc display fixes
      - VCN 2.5 DPG fix
      - Prevent build errors on PowerPC on some configs
      - GDS EDC fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexdeucher@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200212224746.3992-1-alexander.deucher@amd.com
      e44c1e3a
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-fixes-2020-02-07' of... · 7ebdc26a
      Dave Airlie authored
      
      Merge tag 'drm-misc-next-fixes-2020-02-07' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
      
      drm-misc-next fixes for v5.6:
      - Fix build error in drm/edid.
      - Plug close-after-free race in vgem_gem_create.
      - Handle CONFIG_DMA_API_DEBUG_SG better in drm/msm.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/551b6183-a581-9d12-10a9-24cd929de425@linux.intel.com
      7ebdc26a
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2020-02-07' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 984f0103
      Dave Airlie authored
      
      
      Fixes for v5.6:
      - Revert allow_fb_modifiers in sun4i, as it causes a regression for DE2 and DE3.
      - Fix null pointer deref in drm_dp_mst_process_up_req().
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/672810c3-4212-0a46-337b-2cb855573fd2@linux.intel.com
      984f0103
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · b19e8c68
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Summary below, but it's all reasonably straightforward. There are some
        more fixes on the horizon, but nothing disastrous yet.
      
        Summary:
      
         - Fix build when KASLR is enabled but CONFIG_ARCH_RANDOM is not set
      
         - Fix context-switching of SSBS state on systems that implement it
      
         - Fix spinlock compiler warning introduced during the merge window
      
         - Fix incorrect header inclusion (linux/clk-provider.h)
      
         - Use SYSCTL_{ZERO,ONE} instead of rolling our own static variables
      
         - Don't scream if optional SMMUv3 PMU irq is missing
      
         - Remove some unused function prototypes"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: time: Replace <linux/clk-provider.h> by <linux/of_clk.h>
        arm64: Fix CONFIG_ARCH_RANDOM=n build
        perf/smmuv3: Use platform_get_irq_optional() for wired interrupt
        arm64/spinlock: fix a -Wunused-function warning
        arm64: ssbs: Fix context-switch when SSBS is present on all CPUs
        arm64: use shared sysctl constants
        arm64: Drop do_el0_ia_bp_hardening() & do_sp_pc_abort() declarations
      b19e8c68
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 1d40890a
      Linus Torvalds authored
      Pull GPIO fixes from Linus Walleij:
      
       - Revert two patches to gpio_do_set_config() and implement the proper
         solution that works, also drop an unecessary call in set_config()
      
       - Fix up the lockdep class for hierarchical IRQ domains.
      
       - Remove some bridge code for line directions.
      
       - Fix a register access bug in the Xilinx driver.
      
      * tag 'gpio-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio: sifive: fix static checker warning
        spmi: pmic-arb: Set lockdep class for hierarchical irq domains
        gpio: xilinx: Fix bug where the wrong GPIO register is written to
        gpiolib: remove unnecessary argument from set_config call
        gpio: bd71828: Remove unneeded defines for GPIO_LINE_DIRECTION_IN/OUT
        MAINTAINERS: Sort entries in database for GPIO
        gpiolib: fix gpio_do_set_config()
        Revert "gpiolib: remove set but not used variable 'config'"
        Revert "gpiolib: Remove duplicated function gpio_do_set_config()"
      1d40890a
    • David S. Miller's avatar
      Merge branch 'icmp-account-for-NAT-when-sending-icmps-from-ndo-layer' · 803381f9
      David S. Miller authored
      
      
      Jason A. Donenfeld says:
      
      ====================
      icmp: account for NAT when sending icmps from ndo layer
      
      The ICMP routines use the source address for two reasons:
      
      1. Rate-limiting ICMP transmissions based on source address, so
         that one source address cannot provoke a flood of replies. If
         the source address is wrong, the rate limiting will be
         incorrectly applied.
      
      2. Choosing the interface and hence new source address of the
         generated ICMP packet. If the original packet source address
         is wrong, ICMP replies will be sent from the wrong source
         address, resulting in either a misdelivery, infoleak, or just
         general network admin confusion.
      
      Most of the time, the icmp_send and icmpv6_send routines can just reach
      down into the skb's IP header to determine the saddr. However, if
      icmp_send or icmpv6_send is being called from a network device driver --
      there are a few in the tree -- then it's possible that by the time
      icmp_send or icmpv6_send looks at the packet, the packet's source
      address has already been transformed by SNAT or MASQUERADE or some other
      transformation that CONNTRACK knows about. In this case, the packet's
      source address is most certainly the *wrong* source address to be used
      for the purpose of ICMP replies.
      
      Rather, the source address we want to use for ICMP replies is the
      original one, from before the transformation occurred.
      
      Fortunately, it's very easy to just ask CONNTRACK if it knows about this
      packet, and if so, how to fix it up. The saddr is the only field in the
      header we need to fix up, for the purposes of the subsequent processing
      in the icmp_send and icmpv6_send functions, so we do the lookup very
      early on, so that the rest of the ICMP machinery can progress as usual.
      
      Changes v3->v4:
      - Add back the skb_shared checking, since the previous assumption isn't
        actually true [Eric]. This implies dropping the additional patches v3 had
        for removing skb_share_check from various drivers. We can revisit that
        general set of ideas later, but that's probably better suited as a net-next
        patchset rather than this stable one which is geared at fixing bugs. So,
        this implements things in the safe conservative way.
      
      Changes v2->v3:
      - Add selftest to ensure this actually does what we want and never regresses.
      - Check the size of the skb header before operating on it.
      - Use skb_ensure_writable to ensure we can modify the cloned skb [Florian].
      - Conditionalize this on IPS_SRC_NAT so we don't do anything unnecessarily
        [Florian].
      - It turns out that since we're calling these from the xmit path,
        skb_share_check isn't required, so remove that [Florian]. This simplifes the
        code a bit too. **The supposition here is that skbs passed to ndo_start_xmit
        are _never_ shared. If this is not correct NOW IS THE TIME TO PIPE UP, for
        doom awaits us later.**
      - While investigating the shared skb business, several drivers appeared to be
        calling it incorrectly in the xmit path, so this series also removes those
        unnecessary calls, based on the supposition mentioned in the previous point.
      
      Changes v1->v2:
      - icmpv6 takes subtly different types than icmpv4, like u32 instead of be32,
        u8 instead of int.
      - Since we're technically writing to the skb, we need to make sure it's not
        a shared one [Dave, 2017].
      - Restore the original skb data after icmp_send returns. All current users
        are freeing the packet right after, so it doesn't matter, but future users
        might not.
      - Remove superfluous route lookup in sunvnet [Dave].
      - Use NF_NAT instead of NF_CONNTRACK for condition [Florian].
      - Include this cover letter [Dave].
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      803381f9
    • Jason A. Donenfeld's avatar
      xfrm: interface: use icmp_ndo_send helper · 45942ba8
      Jason A. Donenfeld authored
      
      
      Because xfrmi is calling icmp from network device context, it should use
      the ndo helper so that the rate limiting applies correctly.
      
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      Cc: Nicolas Dichtel <nicolas.dichtel@6wind.com>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      45942ba8
    • Jason A. Donenfeld's avatar
      wireguard: device: use icmp_ndo_send helper · a12d7f3c
      Jason A. Donenfeld authored
      
      
      Because wireguard is calling icmp from network device context, it should
      use the ndo helper so that the rate limiting applies correctly.  This
      commit adds a small test to the wireguard test suite to ensure that the
      new functions continue doing the right thing in the context of
      wireguard. It does this by setting up a condition that will definately
      evoke an icmp error message from the driver, but along a nat'd path.
      
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a12d7f3c