Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from torvalds:master #318

Merged
merged 140 commits into from
Nov 20, 2020
Merged

[pull] master from torvalds:master #318

merged 140 commits into from
Nov 20, 2020

Commits on Nov 9, 2020

  1. libbpf: Don't attempt to load unused subprog as an entry-point BPF pr…

    …ogram
    
    If BPF code contains unused BPF subprogram and there are no other subprogram
    calls (which can realistically happen in real-world applications given
    sufficiently smart Clang code optimizations), libbpf will erroneously assume
    that subprograms are entry-point programs and will attempt to load them with
    UNSPEC program type.
    
    Fix by not relying on subcall instructions and rather detect it based on the
    structure of BPF object's sections.
    
    Fixes: 9a94f27 ("tools: libbpf: restore the ability to load programs from .text section")
    Reported-by: Dmitrii Banshchikov <dbanschikov@fb.com>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/bpf/20201107000251.256821-1-andrii@kernel.org
    anakryiko authored and borkmann committed Nov 9, 2020
    Configuration menu
    Copy the full SHA
    197afc6 View commit details
    Browse the repository at this point in the history
  2. bpf: Fix passing zero to PTR_ERR() in bpf_btf_printf_prepare

    There is a bug when passing zero to PTR_ERR() and return.
    Fix the smatch error.
    
    Fixes: c4d0bfb ("bpf: Add bpf_snprintf_btf helper")
    Signed-off-by: Wang Qing <wangqing@vivo.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Yonghong Song <yhs@fb.com>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    Link: https://lore.kernel.org/bpf/1604735144-686-1-git-send-email-wangqing@vivo.com
    Wang Qing authored and borkmann committed Nov 9, 2020
    Configuration menu
    Copy the full SHA
    abbaa43 View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2020

  1. bpf: Fix unsigned 'datasec_id' compared with zero in check_pseudo_btf_id

    The unsigned variable datasec_id is assigned a return value from the call
    to check_pseudo_btf_id(), which may return negative error code.
    
    This fixes the following coccicheck warning:
    
      ./kernel/bpf/verifier.c:9616:5-15: WARNING: Unsigned expression compared with zero: datasec_id > 0
    
    Fixes: eaa6bcb ("bpf: Introduce bpf_per_cpu_ptr()")
    Reported-by: Tosk Robot <tencent_os_robot@tencent.com>
    Signed-off-by: Kaixu Xia <kaixuxia@tencent.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Andrii Nakryiko <andrii@kernel.org>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    Cc: Hao Luo <haoluo@google.com>
    Link: https://lore.kernel.org/bpf/1605071026-25906-1-git-send-email-kaixuxia@tencent.com
    kaixuxiakx authored and borkmann committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    f16e631 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2020

  1. rfkill: Fix use-after-free in rfkill_resume()

    If a device is getting removed or reprobed during resume, use-after-free
    might happen. For example, h5_btrtl_resume() schedules a work queue for
    device reprobing, which of course requires removal first.
    
    If the removal happens in parallel with the device_resume() and wins the
    race to acquire device_lock(), removal may remove the device from the PM
    lists and all, but device_resume() is already running and will continue
    when the lock can be acquired, thus calling rfkill_resume().
    
    During this, if rfkill_set_block() is then called after the corresponding
    *_unregister() and kfree() are called, there will be an use-after-free
    in hci_rfkill_set_block():
    
    BUG: KASAN: use-after-free in hci_rfkill_set_block+0x58/0xc0 [bluetooth]
    ...
    Call trace:
      dump_backtrace+0x0/0x154
      show_stack+0x20/0x2c
      dump_stack+0xbc/0x12c
      print_address_description+0x88/0x4b0
      __kasan_report+0x144/0x168
      kasan_report+0x10/0x18
      check_memory_region+0x19c/0x1ac
      __kasan_check_write+0x18/0x24
      hci_rfkill_set_block+0x58/0xc0 [bluetooth]
      rfkill_set_block+0x9c/0x120
      rfkill_resume+0x34/0x70
      dpm_run_callback+0xf0/0x1f4
      device_resume+0x210/0x22c
    
    Fix this by checking rfkill->registered in rfkill_resume(). device_del()
    in rfkill_unregister() requires device_lock() and the whole rfkill_resume()
    is also protected by the same lock via device_resume(), we can make sure
    either the rfkill->registered is false before rfkill_resume() starts or the
    rfkill device won't be unregistered before rfkill_resume() returns.
    
    As async_resume() holds a reference to the device, at this level there can
    be no use-after-free; only in the user that doesn't expect this scenario.
    
    Fixes: 8589086 ("Bluetooth: hci_h5: Turn off RTL8723BS on suspend, reprobe on resume")
    Signed-off-by: Claire Chang <tientzu@chromium.org>
    Link: https://lore.kernel.org/r/20201110084908.219088-1-tientzu@chromium.org
    [edit commit message for clarity and add more info provided later]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Claire Chang authored and jmberg-intel committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    94e2bd0 View commit details
    Browse the repository at this point in the history
  2. mac80211: fix memory leak on filtered powersave frames

    After the status rework, ieee80211_tx_status_ext is leaking un-acknowledged
    packets for stations in powersave mode.
    To fix this, move the code handling those packets from __ieee80211_tx_status
    into ieee80211_tx_status_ext
    
    Reported-by: Tobias Waldvogel <tobias.waldvogel@gmail.com>
    Fixes: 3318111 ("mac80211: reduce duplication in tx status functions")
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Link: https://lore.kernel.org/r/20201111183359.43528-1-nbd@nbd.name
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    nbd168 authored and jmberg-intel committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    1d18288 View commit details
    Browse the repository at this point in the history
  3. mac80211: minstrel: remove deferred sampling code

    Deferring sampling attempts to the second stage has some bad interactions
    with drivers that process the rate table in hardware and use the probe flag
    to indicate probing packets (e.g. most mt76 drivers). On affected drivers
    it can lead to probing not working at all.
    
    If the link conditions turn worse, it might not be such a good idea to
    do a lot of sampling for lower rates in this case.
    
    Fix this by simply skipping the sample attempt instead of deferring it,
    but keep the checks that would allow it to be sampled if it was skipped
    too often, but only if it has less than 95% success probability.
    
    Also ensure that IEEE80211_TX_CTL_RATE_CTRL_PROBE is set for all probing
    packets.
    
    Cc: stable@vger.kernel.org
    Fixes: cccf129 ("mac80211: add the 'minstrel' rate control algorithm")
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Link: https://lore.kernel.org/r/20201111183359.43528-2-nbd@nbd.name
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    nbd168 authored and jmberg-intel committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    4fe40b8 View commit details
    Browse the repository at this point in the history
  4. mac80211: minstrel: fix tx status processing corner case

    Some drivers fill the status rate list without setting the rate index after
    the final rate to -1. minstrel_ht already deals with this, but minstrel
    doesn't, which causes it to get stuck at the lowest rate on these drivers.
    
    Fix this by checking the count as well.
    
    Cc: stable@vger.kernel.org
    Fixes: cccf129 ("mac80211: add the 'minstrel' rate control algorithm")
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Link: https://lore.kernel.org/r/20201111183359.43528-3-nbd@nbd.name
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    nbd168 authored and jmberg-intel committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    b2911a8 View commit details
    Browse the repository at this point in the history
  5. RDMA/cm: Make the local_id_table xarray non-irq

    The xarray is never mutated from an IRQ handler, only from work queues
    under a spinlock_irq. Thus there is no reason for it be an IRQ type
    xarray.
    
    This was copied over from the original IDR code, but the recent rework put
    the xarray inside another spinlock_irq which will unbalance the unlocking.
    
    Fixes: c206f8b ("RDMA/cm: Make it clearer how concurrency works in cm_req_handler()")
    Link: https://lore.kernel.org/r/0-v1-808b6da3bd3f+1857-cm_xarray_no_irq_jgg@nvidia.com
    Reported-by: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    jgunthorpe committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    eb73060 View commit details
    Browse the repository at this point in the history
  6. RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()

    Fix missing kfree in pvrdma_register_device() when failure from
    ib_device_set_netdev().
    
    Fixes: 4b38da7 ("RDMA/drivers: Convert easy drivers to use ib_device_set_netdev()")
    Link: https://lore.kernel.org/r/20201111032202.17925-1-miaoqinglang@huawei.com
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Qinglang Miao authored and jgunthorpe committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    d035c3f View commit details
    Browse the repository at this point in the history
  7. selftests/bpf: Fix unused attribute usage in subprogs_unused test

    Correct attribute name is "unused". maybe_unused is a C++17 addition.
    This patch fixes compilation warning during selftests compilation.
    
    Fixes: 197afc6 ("libbpf: Don't attempt to load unused subprog as an entry-point BPF program")
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20201111231215.1779147-1-andrii@kernel.org
    anakryiko authored and Alexei Starovoitov committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    fd63729 View commit details
    Browse the repository at this point in the history
  8. RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs

    dma_virt_ops requires that all pages have a kernel virtual address.
    Introduce a INFINIBAND_VIRT_DMA Kconfig symbol that depends on !HIGHMEM
    and make all three drivers depend on the new symbol.
    
    Also remove the ARCH_DMA_ADDR_T_64BIT dependency, which has been obsolete
    since commit 4965a68 ("arch: define the ARCH_DMA_ADDR_T_64BIT config
    symbol in lib/Kconfig")
    
    Fixes: 551199a ("lib/dma-virt: Add dma_virt_ops")
    Link: https://lore.kernel.org/r/20201106181941.1878556-2-hch@lst.de
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Christoph Hellwig authored and jgunthorpe committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    b1e678b View commit details
    Browse the repository at this point in the history
  9. MAINTAINERS/bpf: Update Andrii's entry.

    Andrii has been a de-facto maintainer for libbpf and other components.
    Update maintainers entry to acknowledge his work de-jure.
    
    The folks with git write permissions will continue to follow the rule
    of not applying their own patches unless absolutely trivial.
    
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20201112180340.45265-1-alexei.starovoitov@gmail.com
    Alexei Starovoitov authored and borkmann committed Nov 12, 2020
    Configuration menu
    Copy the full SHA
    9602182 View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2020

  1. net/ncsi: Fix netlink registration

    If a user unbinds and re-binds a NC-SI aware driver the kernel will
    attempt to register the netlink interface at runtime. The structure is
    marked __ro_after_init so registration fails spectacularly at this point.
    
     # echo 1e660000.ethernet > /sys/bus/platform/drivers/ftgmac100/unbind
     # echo 1e660000.ethernet > /sys/bus/platform/drivers/ftgmac100/bind
      ftgmac100 1e660000.ethernet: Read MAC address 52:54:00:12:34:56 from chip
      ftgmac100 1e660000.ethernet: Using NCSI interface
      8<--- cut here ---
      Unable to handle kernel paging request at virtual address 80a8f858
      pgd = 8c768dd6
      [80a8f858] *pgd=80a0841e(bad)
      Internal error: Oops: 80d [#1] SMP ARM
      CPU: 0 PID: 116 Comm: sh Not tainted 5.10.0-rc3-next-20201111-00003-gdd25b227ec1e #51
      Hardware name: Generic DT based system
      PC is at genl_register_family+0x1f8/0x6d4
      LR is at 0xff26ffff
      pc : [<8073f930>]    lr : [<ff26ffff>]    psr: 20000153
      sp : 8553bc80  ip : 81406244  fp : 8553bd04
      r10: 8085d12c  r9 : 80a8f73c  r8 : 85739000
      r7 : 00000017  r6 : 80a8f860  r5 : 80c8ab98  r4 : 80a8f858
      r3 : 00000000  r2 : 00000000  r1 : 81406130  r0 : 00000017
      Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
      Control: 00c5387d  Table: 85524008  DAC: 00000051
      Process sh (pid: 116, stack limit = 0x1f1988d6)
     ...
      Backtrace:
      [<8073f738>] (genl_register_family) from [<80860ac0>] (ncsi_init_netlink+0x20/0x48)
       r10:8085d12c r9:80c8fb0c r8:85739000 r7:00000000 r6:81218000 r5:85739000
       r4:8121c000
      [<80860aa0>] (ncsi_init_netlink) from [<8085d740>] (ncsi_register_dev+0x1b0/0x210)
       r5:8121c400 r4:8121c000
      [<8085d590>] (ncsi_register_dev) from [<805a8060>] (ftgmac100_probe+0x6e0/0x778)
       r10:00000004 r9:80950228 r8:8115bc10 r7:8115ab00 r6:9eae2c24 r5:813b6f88
       r4:85739000
      [<805a7980>] (ftgmac100_probe) from [<805355ec>] (platform_drv_probe+0x58/0xa8)
       r9:80c76bb0 r8:00000000 r7:80cd4974 r6:80c76bb0 r5:8115bc10 r4:00000000
      [<80535594>] (platform_drv_probe) from [<80532d58>] (really_probe+0x204/0x514)
       r7:80cd4974 r6:00000000 r5:80cd4868 r4:8115bc10
    
    Jakub pointed out that ncsi_register_dev is obviously broken, because
    there is only one family so it would never work if there was more than
    one ncsi netdev.
    
    Fix the crash by registering the netlink family once on boot, and drop
    the code to unregister it.
    
    Fixes: 955dc68 ("net/ncsi: Add generic netlink family")
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Reviewed-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
    Link: https://lore.kernel.org/r/20201112061210.914621-1-joel@jms.id.au
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    shenki authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    1922a46 View commit details
    Browse the repository at this point in the history
  2. net: ethernet: mtk-star-emac: return ok when xmit drops

    The ndo_start_xmit() method must return NETDEV_TX_OK if the DMA mapping
    fails, after freeing the socket buffer.
    Fix the mtk_star_netdev_start_xmit() function accordingly.
    
    Fixes: 8c7bd5a ("net: ethernet: mtk-star-emac: new driver")
    Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net>
    Acked-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    Link: https://lore.kernel.org/r/20201112084833.21842-1-vincent.stehle@laposte.net
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    vstehle authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    e8aa6d5 View commit details
    Browse the repository at this point in the history
  3. net: ethernet: mtk-star-emac: fix error return code in mtk_star_enable()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 8c7bd5a ("net: ethernet: mtk-star-emac: new driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Acked-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    Link: https://lore.kernel.org/r/1605180879-2573-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    baee199 View commit details
    Browse the repository at this point in the history
  4. net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request

    The x25_disconnect function in x25_subr.c would decrease the refcount of
    "x25->neighbour" (struct x25_neigh) and reset this pointer to NULL.
    
    However, the x25_rx_call_request function in af_x25.c, which is called
    when we receive a connection request, does not increase the refcount when
    it assigns the pointer.
    
    Fix this issue by increasing the refcount of "struct x25_neigh" in
    x25_rx_call_request.
    
    This patch fixes frequent kernel crashes when using AF_X25 sockets.
    
    Fixes: 4becb7e ("net/x25: Fix x25_neigh refcnt leak when x25 disconnect")
    Cc: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Link: https://lore.kernel.org/r/20201112103506.5875-1-xie.he.0141@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Xie He authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    4ee18c1 View commit details
    Browse the repository at this point in the history
  5. mac80211: free sta in sta_info_insert_finish() on errors

    If sta_info_insert_finish() fails, we currently keep the station
    around and free it only in the caller, but there's only one such
    caller and it always frees it immediately.
    
    As syzbot found, another consequence of this split is that we can
    put things that sleep only into __cleanup_single_sta() and not in
    sta_info_free(), but this is the only place that requires such of
    sta_info_free() now.
    
    Change this to free the station in sta_info_insert_finish(), in
    which case we can still sleep. This will also let us unify the
    cleanup code later.
    
    Cc: stable@vger.kernel.org
    Fixes: dcd479e ("mac80211: always wind down STA state")
    Reported-by: syzbot+32c6c38c4812d22f2f0b@syzkaller.appspotmail.com
    Reported-by: syzbot+4c81fe92e372d26c4246@syzkaller.appspotmail.com
    Reported-by: syzbot+6a7fe9faf0d1d61bc24a@syzkaller.appspotmail.com
    Reported-by: syzbot+abed06851c5ffe010921@syzkaller.appspotmail.com
    Reported-by: syzbot+b7aeb9318541a1c709f1@syzkaller.appspotmail.com
    Reported-by: syzbot+d5a9416c6cafe53b5dd0@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20201112112201.ee6b397b9453.I9c31d667a0ea2151441cc64ed6613d36c18a48e0@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    jmberg-intel committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    7bc40ae View commit details
    Browse the repository at this point in the history
  6. tools, bpftool: Add missing close before bpftool net attach exit

    progfd is created by prog_parse_fd() in do_attach() and before the latter
    returns in case of success, the file descriptor should be closed.
    
    Fixes: 04949cc ("tools: bpftool: add net attach command to attach XDP on interface")
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20201113115152.53178-1-wanghai38@huawei.com
    Wang Hai authored and borkmann committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    50431b4 View commit details
    Browse the repository at this point in the history
  7. IB/hfi1: Fix error return code in hfi1_init_dd()

    Fix to return a negative error code from the error handling case instead
    of 0, as done elsewhere in this function.
    
    Fixes: 4730f4a ("IB/hfi1: Activate the dummy netdev")
    Link: https://lore.kernel.org/r/1605249747-17942-1-git-send-email-zhangchangzhong@huawei.com
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Acked-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Zhang Changzhong authored and jgunthorpe committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    dabbd6a View commit details
    Browse the repository at this point in the history
  8. Merge tag 'mac80211-for-net-2020-11-13' of git://git.kernel.org/pub/s…

    …cm/linux/kernel/git/jberg/mac80211
    
    Johannes Berg says:
    
    ====================
    A handful of fixes:
     * a use-after-free fix in rfkill
     * a memory leak fix in the mac80211 TX status path
     * some rate scaling fixes
     * a fix for the often-reported (by syzbot) sleeping
       in atomic issue with mac80211's station removal
    
    * tag 'mac80211-for-net-2020-11-13' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211:
      mac80211: free sta in sta_info_insert_finish() on errors
      mac80211: minstrel: fix tx status processing corner case
      mac80211: minstrel: remove deferred sampling code
      mac80211: fix memory leak on filtered powersave frames
      rfkill: Fix use-after-free in rfkill_resume()
    ====================
    
    Link: https://lore.kernel.org/r/20201113093421.24025-1-johannes@sipsolutions.net
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    1395f8d View commit details
    Browse the repository at this point in the history
  9. net: ethernet: ti: cpsw: fix cpts irq after suspend

    Depending on the SoC/platform the CPSW can completely lose context after a
    suspend/resume cycle, including CPSW wrapper (WR) which will cause reset of
    WR_C0_MISC_EN register, so CPTS IRQ will became disabled.
    
    Fix it by moving CPTS IRQ enabling in cpsw_ndo_open() where CPTS is
    actually started.
    
    Fixes: 84ea9c0 ("net: ethernet: ti: cpsw: enable cpts irq")
    Reported-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Tested-by: Tony Lindgren <tony@atomide.com>
    Link: https://lore.kernel.org/r/20201112111546.20343-1-grygorii.strashko@ti.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    grygoriyS authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    2b56687 View commit details
    Browse the repository at this point in the history
  10. net: Exempt multicast addresses from five-second neighbor lifetime

    Commit 5895631 ("neighbor: Improve garbage collection")
    guarantees neighbour table entries a five-second lifetime.  Processes
    which make heavy use of multicast can fill the neighour table with
    multicast addresses in five seconds.  At that point, neighbour entries
    can't be GC-ed because they aren't five seconds old yet, the kernel
    log starts to fill up with "neighbor table overflow!" messages, and
    sends start to fail.
    
    This patch allows multicast addresses to be thrown out before they've
    lived out their five seconds.  This makes room for non-multicast
    addresses and makes messages to all addresses more reliable in these
    circumstances.
    
    Fixes: 5895631 ("neighbor: Improve garbage collection")
    Signed-off-by: Jeff Dike <jdike@akamai.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/20201113015815.31397-1-jdike@akamai.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    jdike authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    8cf8821 View commit details
    Browse the repository at this point in the history
  11. net: phy: mscc: remove non-MACSec compatible phy

    Selecting VSC8575 as a MACSec PHY was not correct
    
    The relevant datasheet can be found here:
      - VSC8575: https://www.microchip.com/wwwproducts/en/VSC8575
    
    History:
    v1 -> v2:
       - Corrected the sha in the "Fixes:" tag
    
    Fixes: 1bbe0ec ("net: phy: mscc: macsec initialization")
    Signed-off-by: Steen Hegelund <steen.hegelund@microchip.com>
    Reviewed-by: Antoine Tenart <atenart@kernel.org>
    Link: https://lore.kernel.org/r/20201113091116.1102450-1-steen.hegelund@microchip.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    steen-hegelund-mchp authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    aa6306a View commit details
    Browse the repository at this point in the history
  12. net: marvell: prestera: fix error return code in prestera_pci_probe()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 4c2703d ("net: marvell: prestera: Add PCI interface support")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Reviewed-by: Vadym Kochan <vadym.kochan@plvision.eu>
    Acked-by: Vadym Kochan <vadym.kochan@plvision.eu>
    Link: https://lore.kernel.org/r/20201113113236.71678-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Wang Hai authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    8c07205 View commit details
    Browse the repository at this point in the history
  13. net: ethernet: ti: am65-cpts: update ret when ptp_clock is ERROR

    We always have to update the value of ret, otherwise the
     error value may be the previous one.
    
    Fixes: f6bd595 ("net: ethernet: ti: introduce am654 common platform time sync driver")
    Signed-off-by: Wang Qing <wangqing@vivo.com>
    [grygorii.strashko@ti.com: fix build warn, subj add fixes tag]
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Link: https://lore.kernel.org/r/20201112164541.3223-1-grygorii.strashko@ti.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Wang Qing authored and kuba-moo committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    81e329e View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2020

  1. ip_tunnels: Set tunnel option flag when tunnel metadata is present

    Currently, we may set the tunnel option flag when the size of metadata
    is zero.  For example, we set TUNNEL_GENEVE_OPT in the receive function
    no matter the geneve option is present or not.  As this may result in
    issues on the tunnel flags consumers, this patch fixes the issue.
    
    Related discussion:
    * https://lore.kernel.org/netdev/1604448694-19351-1-git-send-email-yihung.wei@gmail.com/T/#u
    
    Fixes: 256c87c ("net: check tunnel option type in tunnel flags")
    Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com>
    Link: https://lore.kernel.org/r/1605053800-74072-1-git-send-email-yihung.wei@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    YiHungWei authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    9c2e14b View commit details
    Browse the repository at this point in the history
  2. ipv6: Fix error path to cancel the meseage

    genlmsg_cancel() needs to be called in the error path of
    inet6_fill_ifmcaddr and inet6_fill_ifacaddr to cancel
    the message.
    
    Fixes: 6ecf4c3 ("ipv6: enable IFA_TARGET_NETNSID for RTM_GETADDR")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Link: https://lore.kernel.org/r/20201112080950.1476302-1-zhangqilong3@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Qilong authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    ceb736e View commit details
    Browse the repository at this point in the history
  3. bpf: Relax return code check for subprograms

    Currently verifier enforces return code checks for subprograms in the
    same manner as it does for program entry points. This prevents returning
    arbitrary scalar values from subprograms. Scalar type of returned values
    is checked by btf_prepare_func_args() and hence it should be safe to
    allow only scalars for now. Relax return code checks for subprograms and
    allow any correct scalar values.
    
    Fixes: 51c39bb (bpf: Introduce function-by-function verification)
    Signed-off-by: Dmitrii Banshchikov <me@ubique.spb.ru>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20201113171756.90594-1-me@ubique.spb.ru
    ubique authored and Alexei Starovoitov committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    f782e2c View commit details
    Browse the repository at this point in the history
  4. net: phy: smsc: add missed clk_disable_unprepare in smsc_phy_probe()

    Add the missing clk_disable_unprepare() before return from
    smsc_phy_probe() in the error handling case.
    
    Fixes: bedd8d7 ("net: phy: smsc: LAN8710/20: add phy refclk in support")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605180239-1792-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    3734471 View commit details
    Browse the repository at this point in the history
  5. net: dsa: mv88e6xxx: Avoid VTU corruption on 6097

    As soon as you add the second port to a VLAN, all other port
    membership configuration is overwritten with zeroes. The HW interprets
    this as all ports being "unmodified members" of the VLAN.
    
    In the simple case when all ports belong to the same VLAN, switching
    will still work. But using multiple VLANs or trying to set multiple
    ports as tagged members will not work.
    
    On the 6352, doing a VTU GetNext op, followed by an STU GetNext op
    will leave you with both the member- and state- data in the VTU/STU
    data registers. But on the 6097 (which uses the same implementation),
    the STU GetNext will override the information gathered from the VTU
    GetNext.
    
    Separate the two stages, parsing the result of the VTU GetNext before
    doing the STU GetNext.
    
    We opt to update the existing implementation for all applicable chips,
    as opposed to creating a separate callback for 6097, because although
    the previous implementation did work for (at least) 6352, the
    datasheet does not mention the masking behavior.
    
    Fixes: ef6fcea ("net: dsa: mv88e6xxx: get STU entry on VTU GetNext")
    Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
    Link: https://lore.kernel.org/r/20201112114335.27371-1-tobias@waldekranz.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    wkz authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    9230706 View commit details
    Browse the repository at this point in the history
  6. vsock: forward all packets to the host when no H2G is registered

    Before commit c0cfa2d ("vsock: add multi-transports support"),
    if a G2H transport was loaded (e.g. virtio transport), every packets
    was forwarded to the host, regardless of the destination CID.
    The H2G transports implemented until then (vhost-vsock, VMCI) always
    responded with an error, if the destination CID was not
    VMADDR_CID_HOST.
    
    From that commit, we are using the remote CID to decide which
    transport to use, so packets with remote CID > VMADDR_CID_HOST(2)
    are sent only through H2G transport. If no H2G is available, packets
    are discarded directly in the guest.
    
    Some use cases (e.g. Nitro Enclaves [1]) rely on the old behaviour
    to implement sibling VMs communication, so we restore the old
    behavior when no H2G is registered.
    It will be up to the host to discard packets if the destination is
    not the right one. As it was already implemented before adding
    multi-transport support.
    
    Tested with nested QEMU/KVM by me and Nitro Enclaves by Andra.
    
    [1] Documentation/virt/ne_overview.rst
    
    Cc: Jorgen Hansen <jhansen@vmware.com>
    Cc: Dexuan Cui <decui@microsoft.com>
    Fixes: c0cfa2d ("vsock: add multi-transports support")
    Reported-by: Andra Paraschiv <andraprs@amazon.com>
    Tested-by: Andra Paraschiv <andraprs@amazon.com>
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Link: https://lore.kernel.org/r/20201112133837.34183-1-sgarzare@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    stefano-garzarella authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    65b422d View commit details
    Browse the repository at this point in the history
  7. sctp: change to hold/put transport for proto_unreach_timer

    A call trace was found in Hangbin's Codenomicon testing with debug kernel:
    
      [ 2615.981988] ODEBUG: free active (active state 0) object type: timer_list hint: sctp_generate_proto_unreach_event+0x0/0x3a0 [sctp]
      [ 2615.995050] WARNING: CPU: 17 PID: 0 at lib/debugobjects.c:328 debug_print_object+0x199/0x2b0
      [ 2616.095934] RIP: 0010:debug_print_object+0x199/0x2b0
      [ 2616.191533] Call Trace:
      [ 2616.194265]  <IRQ>
      [ 2616.202068]  debug_check_no_obj_freed+0x25e/0x3f0
      [ 2616.207336]  slab_free_freelist_hook+0xeb/0x140
      [ 2616.220971]  kfree+0xd6/0x2c0
      [ 2616.224293]  rcu_do_batch+0x3bd/0xc70
      [ 2616.243096]  rcu_core+0x8b9/0xd00
      [ 2616.256065]  __do_softirq+0x23d/0xacd
      [ 2616.260166]  irq_exit+0x236/0x2a0
      [ 2616.263879]  smp_apic_timer_interrupt+0x18d/0x620
      [ 2616.269138]  apic_timer_interrupt+0xf/0x20
      [ 2616.273711]  </IRQ>
    
    This is because it holds asoc when transport->proto_unreach_timer starts
    and puts asoc when the timer stops, and without holding transport the
    transport could be freed when the timer is still running.
    
    So fix it by holding/putting transport instead for proto_unreach_timer
    in transport, just like other timers in transport.
    
    v1->v2:
      - Also use sctp_transport_put() for the "out_unlock:" path in
        sctp_generate_proto_unreach_event(), as Marcelo noticed.
    
    Fixes: 50b5d6a ("sctp: Fix a race between ICMP protocol unreachable and connect()")
    Reported-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Link: https://lore.kernel.org/r/102788809b554958b13b95d33440f5448113b8d6.1605331373.git.lucien.xin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    lxin authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    057a10f View commit details
    Browse the repository at this point in the history
  8. netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()

    Static checking revealed that a previous fix to
    netlbl_unlabel_staticlist() leaves a stack variable uninitialized,
    this patches fixes that.
    
    Fixes: 866358e ("netlabel: fix our progress tracking in netlbl_unlabel_staticlist()")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Reviewed-by: James Morris <jamorris@linux.microsoft.com>
    Link: https://lore.kernel.org/r/160530304068.15651.18355773009751195447.stgit@sifl
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    pcmoore authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    1ba86d4 View commit details
    Browse the repository at this point in the history
  9. lan743x: fix issue causing intermittent kernel log warnings

    When running this chip on arm imx6, we intermittently observe
    the following kernel warning in the log, especially when the
    system is under high load:
    
    [   50.119484] ------------[ cut here ]------------
    [   50.124377] WARNING: CPU: 0 PID: 303 at kernel/softirq.c:169 __local_bh_enable_ip+0x100/0x184
    [   50.132925] IRQs not enabled as expected
    [   50.159250] CPU: 0 PID: 303 Comm: rngd Not tainted 5.7.8 #1
    [   50.164837] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
    [   50.171395] [<c0111a38>] (unwind_backtrace) from [<c010be28>] (show_stack+0x10/0x14)
    [   50.179162] [<c010be28>] (show_stack) from [<c05b9dec>] (dump_stack+0xac/0xd8)
    [   50.186408] [<c05b9dec>] (dump_stack) from [<c0122e40>] (__warn+0xd0/0x10c)
    [   50.193391] [<c0122e40>] (__warn) from [<c0123238>] (warn_slowpath_fmt+0x98/0xc4)
    [   50.200892] [<c0123238>] (warn_slowpath_fmt) from [<c012b010>] (__local_bh_enable_ip+0x100/0x184)
    [   50.209860] [<c012b010>] (__local_bh_enable_ip) from [<bf09ecbc>] (destroy_conntrack+0x48/0xd8 [nf_conntrack])
    [   50.220038] [<bf09ecbc>] (destroy_conntrack [nf_conntrack]) from [<c0ac9b58>] (nf_conntrack_destroy+0x94/0x168)
    [   50.230160] [<c0ac9b58>] (nf_conntrack_destroy) from [<c0a4aaa0>] (skb_release_head_state+0xa0/0xd0)
    [   50.239314] [<c0a4aaa0>] (skb_release_head_state) from [<c0a4aadc>] (skb_release_all+0xc/0x24)
    [   50.247946] [<c0a4aadc>] (skb_release_all) from [<c0a4b4cc>] (consume_skb+0x74/0x17c)
    [   50.255796] [<c0a4b4cc>] (consume_skb) from [<c081a2dc>] (lan743x_tx_release_desc+0x120/0x124)
    [   50.264428] [<c081a2dc>] (lan743x_tx_release_desc) from [<c081a98c>] (lan743x_tx_napi_poll+0x5c/0x18c)
    [   50.273755] [<c081a98c>] (lan743x_tx_napi_poll) from [<c0a6b050>] (net_rx_action+0x118/0x4a4)
    [   50.282306] [<c0a6b050>] (net_rx_action) from [<c0101364>] (__do_softirq+0x13c/0x53c)
    [   50.290157] [<c0101364>] (__do_softirq) from [<c012b29c>] (irq_exit+0x150/0x17c)
    [   50.297575] [<c012b29c>] (irq_exit) from [<c0196a08>] (__handle_domain_irq+0x60/0xb0)
    [   50.305423] [<c0196a08>] (__handle_domain_irq) from [<c05d44fc>] (gic_handle_irq+0x4c/0x90)
    [   50.313790] [<c05d44fc>] (gic_handle_irq) from [<c0100ed4>] (__irq_usr+0x54/0x80)
    [   50.321287] Exception stack(0xecd99fb0 to 0xecd99ff8)
    [   50.326355] 9fa0:                                     1cf1aa74 00000001 00000001 00000000
    [   50.334547] 9fc0: 00000001 00000000 00000000 00000000 00000000 00000000 00004097 b6d17d14
    [   50.342738] 9fe0: 00000001 b6d17c60 00000000 b6e71f94 800b0010 ffffffff
    [   50.349364] irq event stamp: 2525027
    [   50.352955] hardirqs last  enabled at (2525026): [<c0a6afec>] net_rx_action+0xb4/0x4a4
    [   50.360892] hardirqs last disabled at (2525027): [<c0d6d2fc>] _raw_spin_lock_irqsave+0x1c/0x50
    [   50.369517] softirqs last  enabled at (2524660): [<c01015b4>] __do_softirq+0x38c/0x53c
    [   50.377446] softirqs last disabled at (2524693): [<c012b29c>] irq_exit+0x150/0x17c
    [   50.385027] ---[ end trace c0b571db4bc8087d ]---
    
    The driver is calling dev_kfree_skb() from code inside a spinlock,
    where h/w interrupts are disabled. This is forbidden, as documented
    in include/linux/netdevice.h. The correct function to use
    dev_kfree_skb_irq(), or dev_kfree_skb_any().
    
    Fix by using the correct dev_kfree_skb_xxx() functions:
    
    in lan743x_tx_release_desc():
      called by lan743x_tx_release_completed_descriptors()
        called by in lan743x_tx_napi_poll()
        which holds a spinlock
      called by lan743x_tx_release_all_descriptors()
        called by lan743x_tx_close()
        which can-sleep
    conclusion: use dev_kfree_skb_any()
    
    in lan743x_tx_xmit_frame():
      which holds a spinlock
    conclusion: use dev_kfree_skb_irq()
    
    in lan743x_tx_close():
      which can-sleep
    conclusion: use dev_kfree_skb()
    
    in lan743x_rx_release_ring_element():
      called by lan743x_rx_close()
        which can-sleep
      called by lan743x_rx_open()
        which can-sleep
    conclusion: use dev_kfree_skb()
    
    Fixes: 23f0703 ("lan743x: Add main source files for new lan743x driver")
    Signed-off-by: Sven Van Asbroeck <thesven73@gmail.com>
    Link: https://lore.kernel.org/r/20201112185949.11315-1-TheSven73@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Sven Van Asbroeck authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    e35df62 View commit details
    Browse the repository at this point in the history
  10. lan743x: prevent entire kernel HANG on open, for some platforms

    On arm imx6, when opening the chip's netdev, the whole Linux
    kernel intermittently hangs/freezes.
    
    This is caused by a bug in the driver code which tests if pcie
    interrupts are working correctly, using the software interrupt:
    
    1. open: enable the software interrupt
    2. open: tell the chip to assert the software interrupt
    3. open: wait for flag
    4. ISR: acknowledge s/w interrupt, set flag
    5. open: notice flag, disable the s/w interrupt, continue
    
    Unfortunately the ISR only acknowledges the s/w interrupt, but
    does not disable it. This will re-trigger the ISR in a tight
    loop.
    
    On some (lucky) platforms, open proceeds to disable the s/w
    interrupt even while the ISR is 'spinning'. On arm imx6,
    the spinning ISR does not allow open to proceed, resulting
    in a hung Linux kernel.
    
    Fix minimally by disabling the s/w interrupt in the ISR, which
    will prevent it from spinning. This won't break anything because
    the s/w interrupt is used as a one-shot interrupt.
    
    Note that this is a minimal fix, overlooking many possible
    cleanups, e.g.:
    - lan743x_intr_software_isr() is completely redundant and reads
      INT_STS twice for no apparent reason
    - disabling the s/w interrupt in lan743x_intr_test_isr() is now
      redundant, but harmless
    - waiting on software_isr_flag can be converted from a sleeping
      poll loop to wait_event_timeout()
    
    Fixes: 23f0703 ("lan743x: Add main source files for new lan743x driver")
    Tested-by: Sven Van Asbroeck <thesven73@gmail.com> # arm imx6 lan7430
    Signed-off-by: Sven Van Asbroeck <thesven73@gmail.com>
    Link: https://lore.kernel.org/r/20201112204741.12375-1-TheSven73@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Sven Van Asbroeck authored and kuba-moo committed Nov 14, 2020
    Configuration menu
    Copy the full SHA
    796a266 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2020

  1. net: stmmac: dwmac_lib: enlarge dma reset timeout

    If the phy enables power saving technology, the dwmac's software reset
    needs more time to complete, enlarge dma reset timeout to 200000us.
    
    Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
    Link: https://lore.kernel.org/r/20201113090902.5c7aab1a@xhacker.debian
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jisheng Zhang authored and kuba-moo committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    56311a3 View commit details
    Browse the repository at this point in the history
  2. devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()

    If sb_occ_port_pool_get() failed in devlink_nl_sb_port_pool_fill(),
    msg should be canceled by genlmsg_cancel().
    
    Fixes: df38daf ("devlink: implement shared buffer occupancy monitoring interface")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Link: https://lore.kernel.org/r/20201113111622.11040-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Wang Hai authored and kuba-moo committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    849920c View commit details
    Browse the repository at this point in the history
  3. can: af_can: prevent potential access of uninitialized member in can_…

    …rcv()
    
    In can_rcv(), cfd->len is uninitialized when skb->len = 0, and this
    uninitialized cfd->len is accessed nonetheless by pr_warn_once().
    
    Fix this uninitialized variable access by checking cfd->len's validity
    condition (cfd->len > CAN_MAX_DLEN) separately after the skb->len's
    condition is checked, and appropriately modify the log messages that
    are generated as well.
    In case either of the required conditions fail, the skb is freed and
    NET_RX_DROP is returned, same as before.
    
    Fixes: 8cb6875 ("can: af_can: can_rcv(): replace WARN_ONCE by pr_warn_once")
    Reported-by: syzbot+9bcb0c9409066696d3aa@syzkaller.appspotmail.com
    Tested-by: Anant Thazhemadam <anant.thazhemadam@gmail.com>
    Signed-off-by: Anant Thazhemadam <anant.thazhemadam@gmail.com>
    Link: https://lore.kernel.org/r/20201103213906.24219-2-anant.thazhemadam@gmail.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    thazhemadam authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    c8c958a View commit details
    Browse the repository at this point in the history
  4. can: af_can: prevent potential access of uninitialized member in canf…

    …d_rcv()
    
    In canfd_rcv(), cfd->len is uninitialized when skb->len = 0, and this
    uninitialized cfd->len is accessed nonetheless by pr_warn_once().
    
    Fix this uninitialized variable access by checking cfd->len's validity
    condition (cfd->len > CANFD_MAX_DLEN) separately after the skb->len's
    condition is checked, and appropriately modify the log messages that
    are generated as well.
    In case either of the required conditions fail, the skb is freed and
    NET_RX_DROP is returned, same as before.
    
    Fixes: d468984 ("can: af_can: canfd_rcv(): replace WARN_ONCE by pr_warn_once")
    Reported-by: syzbot+9bcb0c9409066696d3aa@syzkaller.appspotmail.com
    Tested-by: Anant Thazhemadam <anant.thazhemadam@gmail.com>
    Signed-off-by: Anant Thazhemadam <anant.thazhemadam@gmail.com>
    Link: https://lore.kernel.org/r/20201103213906.24219-3-anant.thazhemadam@gmail.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    thazhemadam authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    9aa9379 View commit details
    Browse the repository at this point in the history
  5. can: dev: can_restart(): post buffer from the right context

    netif_rx() is meant to be called from interrupt contexts. can_restart() may be
    called by can_restart_work(), which is called from a worqueue, so it may run in
    process context. Use netif_rx_ni() instead.
    
    Fixes: 39549ee ("can: CAN Network device driver and Netlink interface")
    Co-developed-by: Loris Fauster <loris.fauster@ttcontrol.com>
    Signed-off-by: Loris Fauster <loris.fauster@ttcontrol.com>
    Signed-off-by: Alejandro Concepcion Rodriguez <alejandro@acoro.eu>
    Link: https://lore.kernel.org/r/4e84162b-fb31-3a73-fa9a-9438b4bd5234@acoro.eu
    [mkl: use netif_rx_ni() instead of netif_rx_any_context()]
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Alejandro Concepcion Rodriguez authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    a1e6540 View commit details
    Browse the repository at this point in the history
  6. can: ti_hecc: Fix memleak in ti_hecc_probe

    In the error handling, we should goto the probe_exit_candev
    to free ndev to prevent memory leak.
    
    Fixes: dabf54d ("can: ti_hecc: Convert TI HECC driver to DT only driver")
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Link: https://lore.kernel.org/r/20201114111708.3465543-1-zhangqilong3@huawei.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Zhang Qilong authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    7968c7c View commit details
    Browse the repository at this point in the history
  7. can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to ca…

    …n_put_echo_skb()
    
    The driver has to first fill the skb with data and then handle it to
    can_put_echo_skb(). This patch moves the can_put_echo_skb() down, right before
    sending the skb out via USB.
    
    Fixes: 51f3baa ("can: mcba_usb: Add support for Microchip CAN BUS Analyzer")
    Cc: Remigiusz Kołłątaj <remigiusz.kollataj@mobica.com>
    Link: https://lore.kernel.org/r/20201111221204.1639007-1-mkl@pengutronix.de
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    81c9c8e View commit details
    Browse the repository at this point in the history
  8. can: peak_usb: fix potential integer overflow on shift of a int

    The left shift of int 32 bit integer constant 1 is evaluated using 32 bit
    arithmetic and then assigned to a signed 64 bit variable. In the case where
    time_ref->adapter->ts_used_bits is 32 or more this can lead to an oveflow.
    Avoid this by shifting using the BIT_ULL macro instead.
    
    Fixes: bb47855 ("can: usb: PEAK-System Technik USB adapters driver core")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Link: https://lore.kernel.org/r/20201105112427.40688-1-colin.king@canonical.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Colin Ian King authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    8a68cc0 View commit details
    Browse the repository at this point in the history
  9. can: flexcan: flexcan_setup_stop_mode(): add missing "req_bit" to sto…

    …p mode property comment
    
    In the patch
    
        d9b081e ("can: flexcan: remove ack_grp and ack_bit handling from driver")
    
    the unused ack_grp and ack_bit were removed from the driver. However in the
    comment, the "req_bit" was accidentally removed, too.
    
    This patch adds back the "req_bit" bit.
    
    Fixes: d9b081e ("can: flexcan: remove ack_grp and ack_bit handling from driver")
    Reported-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Link: http://lore.kernel.org/r/20201014114810.2911135-1-mkl@pengutronix.de
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    499aa92 View commit details
    Browse the repository at this point in the history
  10. can: flexcan: fix failure handling of pm_runtime_get_sync()

    pm_runtime_get_sync() will increment pm usage at first and it will resume the
    device later. If runtime of the device has error or device is in inaccessible
    state(or other error state), resume operation will fail. If we do not call put
    operation to decrease the reference, it will result in reference leak in the
    two functions flexcan_get_berr_counter() and flexcan_open().
    
    Moreover, this device cannot enter the idle state and always stay busy or other
    non-idle state later. So we should fix it through adding
    pm_runtime_put_noidle().
    
    Fixes: ca10989 ("can: flexcan: implement can Runtime PM")
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Link: https://lore.kernel.org/r/20201108083000.2599705-1-zhangqilong3@huawei.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Zhang Qilong authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    b7ee5bc View commit details
    Browse the repository at this point in the history
  11. can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI

    regmap is a library function that gets selected by drivers that need it. No
    driver modules should depend on it. Instead depends on SPI and select
    REGMAP_SPI. Depending on REGMAP_SPI makes this driver only build if another
    driver already selected REGMAP_SPI, as the symbol can't be selected through the
    menu kernel configuration.
    
    Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
    Link: http://lore.kernel.org/r/20200413141013.506613-1-enric.balletbo@collabora.com
    Reviewed-by: Dan Murphy <dmurphy@ti.com>
    Fixes: 5443c22 ("can: tcan4x5x: Add tcan4x5x driver to the kernel")
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Enric Balletbo i Serra authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    3fcce13 View commit details
    Browse the repository at this point in the history
  12. can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for d…

    …evm_regmap_init()
    
    This patch adds the missing error checking when initializing the regmap
    interface fails.
    
    Fixes: 5443c22 ("can: tcan4x5x: Add tcan4x5x driver to the kernel")
    Cc: Dan Murphy <dmurphy@ti.com>
    Link: http://lore.kernel.org/r/20201019154233.1262589-7-mkl@pengutronix.de
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    1ff203b View commit details
    Browse the repository at this point in the history
  13. can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration

    Change the order in tcan4x5x_can_remove() to be the exact inverse of
    tcan4x5x_can_probe(). First m_can_class_unregister(), then power down the
    device.
    
    Fixes: 5443c22 ("can: tcan4x5x: Add tcan4x5x driver to the kernel")
    Cc: Dan Murphy <dmurphy@ti.com>
    Link: http://lore.kernel.org/r/20201019154233.1262589-10-mkl@pengutronix.de
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    c81d0b6 View commit details
    Browse the repository at this point in the history
  14. can: m_can: m_can_handle_state_change(): fix state change

    m_can_handle_state_change() is called with the new_state as an argument.
    
    In the switch statements for CAN_STATE_ERROR_ACTIVE, the comment and the
    following code indicate that a CAN_STATE_ERROR_WARNING is handled.
    
    This patch fixes this problem by changing the case to CAN_STATE_ERROR_WARNING.
    
    Signed-off-by: Wu Bo <wubo.oduw@gmail.com>
    Link: http://lore.kernel.org/r/20200129022330.21248-2-wubo.oduw@gmail.com
    Cc: Dan Murphy <dmurphy@ti.com>
    Fixes: e0d1f48 ("can: m_can: add Bosch M_CAN controller support")
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    wushifu32 authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    cd0d83e View commit details
    Browse the repository at this point in the history
  15. can: m_can: m_can_class_free_dev(): introduce new function

    This patch creates a common function that peripherials can call to free the
    netdev device when failures occur.
    
    Fixes: f524f82 ("can: m_can: Create a m_can platform framework")
    Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Dan Murphy <dmurphy@ti.com>
    Link: http://lore.kernel.org/r/20200227183829.21854-2-dmurphy@ti.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Dan Murphy authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    a8c22f5 View commit details
    Browse the repository at this point in the history
  16. can: m_can: Fix freeing of can device from peripherials

    Fix leaking netdev device from peripherial devices. The call to allocate the
    netdev device is made from and managed by the peripherial.
    
    Fixes: f524f82 ("can: m_can: Create a m_can platform framework")
    Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Dan Murphy <dmurphy@ti.com>
    Link: http://lore.kernel.org/r/20200227183829.21854-2-dmurphy@ti.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Dan Murphy authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    85816ab View commit details
    Browse the repository at this point in the history
  17. can: m_can: m_can_stop(): set device to software init mode before clo…

    …sing
    
    There might be some requests pending in the buffer when the interface close
    sequence occurs. In some devices, these pending requests might lead to the
    module not shutting down properly when m_can_clk_stop() is called.
    
    Therefore, move the device to init state before potentially powering it down.
    
    Fixes: e0d1f48 ("can: m_can: add Bosch M_CAN controller support")
    Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
    Acked-by: Dan Murphy <dmurphy@ti.com>
    Link: https://lore.kernel.org/r/20200825055442.16994-1-faiz_abbas@ti.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Faiz-Abbas authored and marckleinebudde committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    a584e9b View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2020

  1. Merge tag 'linux-can-fixes-for-5.10-20201115' of git://git.kernel.org…

    …/pub/scm/linux/kernel/git/mkl/linux-can
    
    Marc Kleine-Budde says:
    
    ====================
    pull-request: can 2020-11-15
    
    Anant Thazhemadam contributed two patches for the AF_CAN that prevent potential
    access of uninitialized member in can_rcv() and canfd_rcv().
    
    The next patch is by Alejandro Concepcion Rodriguez and changes can_restart()
    to use the correct function to push a skb into the networking stack from
    process context.
    
    Zhang Qilong's patch fixes a memory leak in the error path of the ti_hecc's
    probe function.
    
    A patch by me fixes mcba_usb_start_xmit() function in the mcba_usb driver, to
    first fill the skb and then pass it to can_put_echo_skb().
    
    Colin Ian King's patch fixes a potential integer overflow on shift in the
    peak_usb driver.
    
    The next two patches target the flexcan driver, a patch by me adds the missing
    "req_bit" to the stop mode property comment (which was broken during net-next
    for v5.10). Zhang Qilong's patch fixes the failure handling of
    pm_runtime_get_sync().
    
    The next seven patches target the m_can driver including the tcan4x5x spi
    driver glue code. Enric Balletbo i Serra's patch for the tcan4x5x Kconfig fix
    the REGMAP_SPI dependency handling. A patch by me for the tcan4x5x driver's
    probe() function adds missing error handling to for devm_regmap_init(), and in
    tcan4x5x_can_remove() the order of deregistration is fixed. Wu Bo's patch for
    the m_can driver fixes the state change handling in
    m_can_handle_state_change(). Two patches by Dan Murphy first introduce
    m_can_class_free_dev() and then make use of it to fix the freeing of the can
    device. A patch by Faiz Abbas add a missing shutdown of the CAN controller in
    the m_can_stop() function.
    
    * tag 'linux-can-fixes-for-5.10-20201115' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
      can: m_can: m_can_stop(): set device to software init mode before closing
      can: m_can: Fix freeing of can device from peripherials
      can: m_can: m_can_class_free_dev(): introduce new function
      can: m_can: m_can_handle_state_change(): fix state change
      can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration
      can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for devm_regmap_init()
      can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI
      can: flexcan: fix failure handling of pm_runtime_get_sync()
      can: flexcan: flexcan_setup_stop_mode(): add missing "req_bit" to stop mode property comment
      can: peak_usb: fix potential integer overflow on shift of a int
      can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to can_put_echo_skb()
      can: ti_hecc: Fix memleak in ti_hecc_probe
      can: dev: can_restart(): post buffer from the right context
      can: af_can: prevent potential access of uninitialized member in canfd_rcv()
      can: af_can: prevent potential access of uninitialized member in can_rcv()
    ====================
    
    Link: https://lore.kernel.org/r/20201115174131.2089251-1-mkl@pengutronix.de
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    e2142ef View commit details
    Browse the repository at this point in the history
  2. PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter

    In many case, we need to check return value of pm_runtime_get_sync, but
    it brings a trouble to the usage counter processing. Many callers forget
    to decrease the usage counter when it failed, which could resulted in
    reference leak. It has been discussed a lot[0][1]. So we add a function
    to deal with the usage counter for better coding.
    
    [0]https://lkml.org/lkml/2020/6/14/88
    [1]https://patchwork.ozlabs.org/project/linux-tegra/list/?series=178139
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Acked-by: Rafael J. Wysocki  <rafael.j.wysocki@intel.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Qilong authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    dd8088d View commit details
    Browse the repository at this point in the history
  3. net: fec: Fix reference count leak in fec series ops

    pm_runtime_get_sync() will increment pm usage at first and it will
    resume the device later. If runtime of the device has error or
    device is in inaccessible state(or other error state), resume
    operation will fail. If we do not call put operation to decrease
    the reference, it will result in reference count leak. Moreover,
    this device cannot enter the idle state and always stay busy or other
    non-idle state later. So we fixed it by replacing it with
    pm_runtime_resume_and_get.
    
    Fixes: 8fff755 ("net: fec: Ensure clocks are enabled while using mdio bus")
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Qilong authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    da875fa View commit details
    Browse the repository at this point in the history
  4. Merge branch 'fix-usage-counter-leak-by-adding-a-general-sync-ops'

    Zhang Qilong says:
    
    ====================
    Fix usage counter leak by adding a general sync ops
    
    In many case, we need to check return value of pm_runtime_get_sync,
    but it brings a trouble to the usage counter processing. Many callers
    forget to decrease the usage counter when it failed, which could
    resulted in reference leak. It has been discussed a lot[0][1]. So we
    add a function to deal with the usage counter for better coding and
    view. Then, we replace pm_runtime_resume_and_get with it in fec_main.c
    to avoid it.
    
    [0] https://lkml.org/lkml/2020/6/14/88
    [1] https://patchwork.ozlabs.org/project/linux-tegra/list/?series=178139
    ====================
    
    Link: https://lore.kernel.org/r/20201110092933.3342784-1-zhangqilong3@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    7953446 View commit details
    Browse the repository at this point in the history
  5. ipv6/netfilter: Discard first fragment not including all headers

    Packets are processed even though the first fragment don't include all
    headers through the upper layer header. This breaks TAHI IPv6 Core
    Conformance Test v6LC.1.3.6.
    
    Referring to RFC8200 SECTION 4.5: "If the first fragment does not include
    all headers through an Upper-Layer header, then that fragment should be
    discarded and an ICMP Parameter Problem, Code 3, message should be sent to
    the source of the fragment, with the Pointer field set to zero."
    
    The fragment needs to be validated the same way it is done in
    commit 2efdaaa ("IPv6: reply ICMP error if the first fragment don't
    include all headers") for ipv6. Wrap the validation into a common function,
    ipv6_frag_thdr_truncated() to check for truncation in the upper layer
    header. This validation does not fullfill all aspects of RFC 8200,
    section 4.5, but is at the moment sufficient to pass mentioned TAHI test.
    
    In netfilter, utilize the fragment offset returned by find_prev_fhdr() to
    let ipv6_frag_thdr_truncated() start it's traverse from the fragment
    header.
    
    Return 0 to drop the fragment in the netfilter. This is the same behaviour
    as used on other protocol errors in this function, e.g. when
    nf_ct_frag6_queue() returns -EPROTO. The Fragment will later be picked up
    by ipv6_frag_rcv() in reassembly.c. ipv6_frag_rcv() will then send an
    appropriate ICMP Parameter Problem message back to the source.
    
    References commit 2efdaaa ("IPv6: reply ICMP error if the first
    fragment don't include all headers")
    
    Signed-off-by: Georg Kohmann <geokohma@cisco.com>
    Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Link: https://lore.kernel.org/r/20201111115025.28879-1-geokohma@cisco.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Georg Kohmann authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    9d9e937 View commit details
    Browse the repository at this point in the history
  6. MAINTAINERS: Add Martin Schiller as a maintainer for the X.25 stack

    Martin Schiller is an active developer and reviewer for the X.25 code.
    His company is providing products based on the Linux X.25 stack.
    So he is a good candidate for maintainers of the X.25 code.
    
    The original maintainer of the X.25 network layer (Andrew Hendry) has
    not sent any email to the netdev mail list since 2013. So he is probably
    inactive now.
    
    Cc: Andrew Hendry <andrew.hendry@gmail.com>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Acked-by: Martin Schiller <ms@dev.tdt.de>
    Link: https://lore.kernel.org/r/20201114111029.326972-1-xie.he.0141@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Xie He authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    8575245 View commit details
    Browse the repository at this point in the history
  7. selftests/bpf: Fix error return code in run_getsockopt_test()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 65b4414 ("selftests/bpf: add sockopt test that exercises BPF_F_ALLOW_MULTI")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20201116101633.64627-1-wanghai38@huawei.com
    Wang Hai authored and borkmann committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    2acc3c1 View commit details
    Browse the repository at this point in the history
  8. net: lantiq: Wait for the GPHY firmware to be ready

    A user reports (slightly shortened from the original message):
      libphy: lantiq,xrx200-mdio: probed
      mdio_bus 1e108000.switch-mii: MDIO device at address 17 is missing.
      gswip 1e108000.switch lan: no phy at 2
      gswip 1e108000.switch lan: failed to connect to port 2: -19
      lantiq,xrx200-net 1e10b308.eth eth0: error -19 setting up slave phy
    
    This is a single-port board using the internal Fast Ethernet PHY. The
    user reports that switching to PHY scanning instead of configuring the
    PHY within device-tree works around this issue.
    
    The documentation for the standalone variant of the PHY11G (which is
    probably very similar to what is used inside the xRX200 SoCs but having
    the firmware burnt onto that standalone chip in the factory) states that
    the PHY needs 300ms to be ready for MDIO communication after releasing
    the reset.
    
    Add a 300ms delay after initializing all GPHYs to ensure that the GPHY
    firmware had enough time to initialize and to appear on the MDIO bus.
    Unfortunately there is no (known) documentation on what the minimum time
    to wait after releasing the reset on an internal PHY so play safe and
    take the one for the external variant. Only wait after the last GPHY
    firmware is loaded to not slow down the initialization too much (
    xRX200 has two GPHYs but newer SoCs have at least three GPHYs).
    
    Fixes: 14fceff ("net: dsa: Add Lantiq / Intel DSA driver for vrx200")
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20201115165757.552641-1-martin.blumenstingl@googlemail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    xdarklight authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    2a1828e View commit details
    Browse the repository at this point in the history
  9. MAINTAINERS: update cxgb4 and cxgb3 maintainer

    Update cxgb4 and cxgb3 driver maintainer
    
    Signed-off-by: Raju Rangoju <rajur@chelsio.com>
    Link: https://lore.kernel.org/r/20201116104322.3959-1-rajur@chelsio.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    RajuRangoju authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    794e442 View commit details
    Browse the repository at this point in the history
  10. cx82310_eth: fix error return code in cx82310_bind()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: ca139d7 ("cx82310_eth: re-enable ethernet mode after router reboot")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605247627-15385-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    cfbaa8b View commit details
    Browse the repository at this point in the history
  11. qlcnic: fix error return code in qlcnic_83xx_restart_hw()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 3ced0a8 ("qlcnic: Add support to run firmware POST")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605248186-16013-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    3beb9be View commit details
    Browse the repository at this point in the history
  12. net: stmmac: dwmac-intel-plat: fix error return code in intel_eth_pla…

    …t_probe()
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 9efc9b2 ("net: stmmac: Add dwmac-intel-plat for GBE driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605249243-17262-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    661710b View commit details
    Browse the repository at this point in the history
  13. net: ethernet: ti: cpsw: fix error return code in cpsw_probe()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 83a8471 ("net: ethernet: ti: cpsw: refactor probe to group common hw initialization")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605250173-18438-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    35f735c View commit details
    Browse the repository at this point in the history
  14. net: bridge: add missing counters to ndo_get_stats64 callback

    In br_forward.c and br_input.c fields dev->stats.tx_dropped and
    dev->stats.multicast are populated, but they are ignored in
    ndo_get_stats64.
    
    Fixes: 2817273 ("net: fix 64 bit counters on 32 bit arches")
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Link: https://lore.kernel.org/r/58ea9963-77ad-a7cf-8dfd-fc95ab95f606@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    hkallweit authored and kuba-moo committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    7a30ecc View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2020

  1. net: stmmac: Use rtnl_lock/unlock on netif_set_real_num_rx_queues() call

    Fix an issue where dump stack is printed on suspend resume flow due to
    netif_set_real_num_rx_queues() is not called with rtnl_lock held().
    
    Fixes: 686cff3 ("net: stmmac: Fix incorrect location to set real_num_rx|tx_queues")
    Reported-by: Christophe ROULLIER <christophe.roullier@st.com>
    Tested-by: Christophe ROULLIER <christophe.roullier@st.com>
    Cc: Alexandre TORGUE <alexandre.torgue@st.com>
    Reviewed-by: Ong Boon Leong <boon.leong.ong@intel.com>
    Signed-off-by: Wong Vee Khee <vee.khee.wong@intel.com>
    Link: https://lore.kernel.org/r/20201115074210.23605-1-vee.khee.wong@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    wvk86 authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    8e5debe View commit details
    Browse the repository at this point in the history
  2. net: mvneta: fix possible memory leak in mvneta_swbm_add_rx_fragment

    Recycle the page running page_pool_put_full_page() in
    mvneta_swbm_add_rx_fragment routine when the last descriptor
    contains just the FCS or if the received packet contains more than
    MAX_SKB_FRAGS fragments
    
    Fixes: ca0e014 ("net: mvneta: move skb build after descriptors processing")
    Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
    Link: https://lore.kernel.org/r/df6a2bad70323ee58d3901491ada31c1ca2a40b9.1605291228.git.lorenzo@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    LorenzoBianconi authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    9c79a8a View commit details
    Browse the repository at this point in the history
  3. net: qualcomm: rmnet: Fix incorrect receive packet handling during cl…

    …eanup
    
    During rmnet unregistration, the real device rx_handler is first cleared
    followed by the removal of rx_handler_data after the rcu synchronization.
    
    Any packets in the receive path may observe that the rx_handler is NULL.
    However, there is no check when dereferencing this value to use the
    rmnet_port information.
    
    This fixes following splat by adding the NULL check.
    
    Unable to handle kernel NULL pointer dereference at virtual
    address 000000000000000d
    pc : rmnet_rx_handler+0x124/0x284
    lr : rmnet_rx_handler+0x124/0x284
     rmnet_rx_handler+0x124/0x284
     __netif_receive_skb_core+0x758/0xd74
     __netif_receive_skb+0x50/0x17c
     process_backlog+0x15c/0x1b8
     napi_poll+0x88/0x284
     net_rx_action+0xbc/0x23c
     __do_softirq+0x20c/0x48c
    
    Fixes: ceed73a ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation")
    Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
    Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
    Link: https://lore.kernel.org/r/1605298325-3705-1-git-send-email-subashab@codeaurora.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Subash Abhinov Kasiviswanathan authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    fc70f5b View commit details
    Browse the repository at this point in the history
  4. net/tls: fix corrupted data in recvmsg

    If tcp socket has more data than Encrypted Handshake Message then
    tls_sw_recvmsg will try to decrypt next record instead of returning
    full control message to userspace as mentioned in comment. The next
    message - usually Application Data - gets corrupted because it uses
    zero copy for decryption that's why the data is not stored in skb
    for next iteration. Revert check to not decrypt next record if
    current is not Application Data.
    
    Fixes: 692d7b5 ("tls: Fix recvmsg() to be able to peek across multiple records")
    Signed-off-by: Vadim Fedorenko <vfedorenko@novek.ru>
    Link: https://lore.kernel.org/r/1605413760-21153-1-git-send-email-vfedorenko@novek.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    vvfedorenko authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    3fe16ed View commit details
    Browse the repository at this point in the history
  5. net: ipa: lock when freeing transaction

    Transactions sit on one of several lists, depending on their state
    (allocated, pending, complete, or polled).  A spinlock protects
    against concurrent access when transactions are moved between these
    lists.
    
    Transactions are also reference counted.  A newly-allocated
    transaction has an initial count of 1; a transaction is released in
    gsi_trans_free() only if its decremented reference count reaches 0.
    Releasing a transaction includes removing it from the polled (or if
    unused, allocated) list, so the spinlock is acquired when we release
    a transaction.
    
    The reference count is used to allow a caller to synchronously wait
    for a committed transaction to complete.  In this case, the waiter
    takes an extra reference to the transaction *before* committing it
    (so it won't be freed), and releases its reference (calls
    gsi_trans_free()) when it is done with it.
    
    Similarly, gsi_channel_update() takes an extra reference to ensure a
    transaction isn't released before the function is done operating on
    it.  Until the transaction is moved to the completed list (by this
    function) it won't be freed, so this reference is taken "safely."
    
    But in the quiesce path, we want to wait for the "last" transaction,
    which we find in the completed or polled list.  Transactions on
    these lists can be freed at any time, so we (try to) prevent that
    by taking the reference while holding the spinlock.
    
    Currently gsi_trans_free() decrements a transaction's reference
    count unconditionally, acquiring the lock to remove the transaction
    from its list *only* when the count reaches 0.  This does not
    protect the quiesce path, which depends on the lock to ensure its
    extra reference prevents release of the transaction.
    
    Fix this by only dropping the last reference to a transaction
    in gsi_trans_free() while holding the spinlock.
    
    Fixes: 9dd441e ("soc: qcom: ipa: GSI transactions")
    Reported-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Alex Elder <elder@linaro.org>
    Link: https://lore.kernel.org/r/20201114182017.28270-1-elder@linaro.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Alex Elder authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    064c9c3 View commit details
    Browse the repository at this point in the history
  6. bnxt_en: read EEPROM A2h address using page 0

    The module eeprom address range returned by bnxt_get_module_eeprom()
    should be 256 bytes of A0h address space, the lower half of the A2h
    address space, and page 0 for the upper half of the A2h address space.
    
    Fix the firmware call by passing page_number 0 for the A2h slave address
    space.
    
    Fixes: 42ee18f ("bnxt_en: Add Support for ETHTOOL_GMODULEINFO and ETHTOOL_GMODULEEEPRO")
    Signed-off-by: Edwin Peer <edwin.peer@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Edwin Peer authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    4260330 View commit details
    Browse the repository at this point in the history
  7. bnxt_en: Free port stats during firmware reset.

    Firmware is unable to retain the port counters during any kind of
    fatal or non-fatal resets, so we must clear the port counters to
    avoid false detection of port counter overflow.
    
    Fixes: fea6b33 ("bnxt_en: Accumulate all counters.")
    Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
    Reviewed-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Michael Chan authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    eba93de View commit details
    Browse the repository at this point in the history
  8. bnxt_en: Fix counter overflow logic.

    bnxt_add_one_ctr() adds a hardware counter to a software counter and
    adjusts for the hardware counter wraparound against the mask.  The logic
    assumes that the hardware counter is always smaller than or equal to
    the mask.
    
    This assumption is mostly correct.  But in some cases if the firmware
    is older and does not provide the accurate mask, the driver can use
    a mask that is smaller than the actual hardware mask.  This can cause
    some extra carry bits to be added to the software counter, resulting in
    counters that far exceed the actual value.  Fix it by masking the
    hardware counter with the mask passed into bnxt_add_one_ctr().
    
    Fixes: fea6b33 ("bnxt_en: Accumulate all counters.")
    Reviewed-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
    Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
    Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Michael Chan authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    fa97f30 View commit details
    Browse the repository at this point in the history
  9. bnxt_en: Avoid unnecessary NVM_GET_DEV_INFO cmd error log on VFs.

    VFs do not have access permissions to issue NVM_GET_DEV_INFO
    firmware command.
    
    Fixes: 4933f67 ("bnxt_en: Add bnxt_hwrm_nvm_get_dev_info() to query NVM info.")
    Signed-off-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Vasundhara Volam authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    0ae0a77 View commit details
    Browse the repository at this point in the history
  10. Merge branch 'bnxt_en-bug-fixes'

    Michael Chan says:
    
    ====================
    bnxt_en: Bug fixes.
    
    This first patch fixes a module eeprom A2h addressing issue.  The next
    2 patches fix counter related issues.  The last one skips an
    unsupported firmware call on the VF to avoid the error log.
    ====================
    
    Link: https://lore.kernel.org/r/1605486472-28156-1-git-send-email-michael.chan@broadcom.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    d5bd32a View commit details
    Browse the repository at this point in the history
  11. qed: fix error return code in qed_iwarp_ll2_start()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 469981b ("qed: Add unaligned and packed packet processing")
    Fixes: fcb39f6 ("qed: Add mpa buffer descriptors for storing and processing mpa fpdus")
    Fixes: 1e28eaa ("qed: Add iWARP support for fpdu spanned over more than two tcp packets")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Acked-by: Michal Kalderon <michal.kalderon@marvell.com>
    Link: https://lore.kernel.org/r/1605532033-27373-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    cb47d16 View commit details
    Browse the repository at this point in the history
  12. net: b44: fix error return code in b44_init_one()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 39a6f4b ("b44: replace the ssb_dma API with the generic DMA API")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Reviewed-by: Michael Chan <michael.chan@broadcom.com>
    Link: https://lore.kernel.org/r/1605582131-36735-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    7b027c2 View commit details
    Browse the repository at this point in the history
  13. net: ftgmac100: Fix crash when removing driver

    When removing the driver we would hit BUG_ON(!list_empty(&dev->ptype_specific))
    in net/core/dev.c due to still having the NC-SI packet handler
    registered.
    
     # echo 1e660000.ethernet > /sys/bus/platform/drivers/ftgmac100/unbind
      ------------[ cut here ]------------
      kernel BUG at net/core/dev.c:10254!
      Internal error: Oops - BUG: 0 [#1] SMP ARM
      CPU: 0 PID: 115 Comm: sh Not tainted 5.10.0-rc3-next-20201111-00007-g02e0365710c4 #46
      Hardware name: Generic DT based system
      PC is at netdev_run_todo+0x314/0x394
      LR is at cpumask_next+0x20/0x24
      pc : [<806f5830>]    lr : [<80863cb0>]    psr: 80000153
      sp : 855bbd58  ip : 00000001  fp : 855bbdac
      r10: 80c03d00  r9 : 80c06228  r8 : 81158c54
      r7 : 00000000  r6 : 80c05dec  r5 : 80c05d18  r4 : 813b9280
      r3 : 813b9054  r2 : 8122c470  r1 : 00000002  r0 : 00000002
      Flags: Nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
      Control: 00c5387d  Table: 85514008  DAC: 00000051
      Process sh (pid: 115, stack limit = 0x7cb5703d)
     ...
      Backtrace:
      [<806f551c>] (netdev_run_todo) from [<80707eec>] (rtnl_unlock+0x18/0x1c)
       r10:00000051 r9:854ed710 r8:81158c54 r7:80c76bb0 r6:81158c10 r5:8115b410
       r4:813b9000
      [<80707ed4>] (rtnl_unlock) from [<806f5db8>] (unregister_netdev+0x2c/0x30)
      [<806f5d8c>] (unregister_netdev) from [<805a8180>] (ftgmac100_remove+0x20/0xa8)
       r5:8115b410 r4:813b9000
      [<805a8160>] (ftgmac100_remove) from [<805355e4>] (platform_drv_remove+0x34/0x4c)
    
    Fixes: bd466c3 ("net/faraday: Support NCSI mode")
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Link: https://lore.kernel.org/r/20201117024448.1170761-1-joel@jms.id.au
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    shenki authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    3d51794 View commit details
    Browse the repository at this point in the history
  14. tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate

    During loss recovery, retransmitted packets are forced to use TCP
    timestamps to calculate the RTT samples, which have a millisecond
    granularity. BBR is designed using a microsecond granularity. As a
    result, multiple RTT samples could be truncated to the same RTT value
    during loss recovery. This is problematic, as BBR will not enter
    PROBE_RTT if the RTT sample is <= the current min_rtt sample, meaning
    that if there are persistent losses, PROBE_RTT will constantly be
    pushed off and potentially never re-entered. This patch makes sure
    that BBR enters PROBE_RTT by checking if RTT sample is < the current
    min_rtt sample, rather than <=.
    
    The Netflix transport/TCP team discovered this bug in the Linux TCP
    BBR code during lab tests.
    
    Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Ryan Sharpelletti <sharpelletti@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Link: https://lore.kernel.org/r/20201116174412.1433277-1-sharpelletti.kdev@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    sharpelletti authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    1b9e2a8 View commit details
    Browse the repository at this point in the history
  15. net/mlx5e: Fix refcount leak on kTLS RX resync

    On resync, the driver calls inet_lookup_established
    (__inet6_lookup_established) that increases sk_refcnt of the socket. To
    decrease it, the driver set skb->destructor to sock_edemux. However, it
    didn't work well, because the TCP stack also sets this destructor for
    early demux, and the refcount gets decreased only once, while increased
    two times (in mlx5e and in the TCP stack). It leads to a socket leak, a
    TLS context leak, which in the end leads to calling tls_dev_del twice:
    on socket close and on driver unload, which in turn leads to a crash.
    
    This commit fixes the refcount leak by calling sock_gen_put right away
    after using the socket, thus fixing all the subsequent issues.
    
    Fixes: 0419d8c ("net/mlx5e: kTLS, Add kTLS RX resync support")
    Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
    Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Maxim Mikityanskiy authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    ea63609 View commit details
    Browse the repository at this point in the history
  16. net/mlx5e: Set IPsec WAs only in IP's non checksum partial case.

    The IP's checksum partial still requires L4 csum flag on Ethernet WQE.
    Make the IPsec WAs only for the IP's non checksum partial case
    (for example icmd packet)
    
    Fixes: 5be0190 ("net/mlx5e: IPsec: Add Connect-X IPsec Tx data path offload")
    Signed-off-by: Huy Nguyen <huyn@mellanox.com>
    Reviewed-by: Raed Salem <raeds@nvidia.com>
    Reviewed-by: Alaa Hleihel <alaa@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Huy Nguyen authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    5cfb540 View commit details
    Browse the repository at this point in the history
  17. net/mlx5e: Fix IPsec packet drop by mlx5e_tc_update_skb

    Both TC and IPsec crypto offload use metadata_regB to store
    private information. Since TC does not use bit 31 of regB, IPsec
    will use bit 31 as the IPsec packet marker. The IPsec's regB usage
    is changed to:
    Bit31: IPsec marker
    Bit30-24: IPsec syndrome
    Bit23-0: IPsec obj id
    
    Fixes: b2ac754 ("net/mlx5e: IPsec: Add Connect-X IPsec Rx data path offload")
    Signed-off-by: Huy Nguyen <huyn@mellanox.com>
    Reviewed-by: Raed Salem <raeds@nvidia.com>
    Reviewed-by: Ariel Levkovich <lariel@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Huy Nguyen authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    6248ce9 View commit details
    Browse the repository at this point in the history
  18. net/mlx5e: Fix check if netdev is bond slave

    Bond events handler uses bond_slave_get_rtnl to check if net device
    is bond slave. bond_slave_get_rtnl return the rcu rx_handler pointer
    from the netdev which exists for bond slaves but also exists for
    devices that are attached to linux bridge so using it as indication
    for bond slave is wrong.
    
    Fix by using netif_is_lag_port instead.
    
    Fixes: 7e51891 ("net/mlx5e: Use netdev events to set/del egress acl forward-to-vport rule")
    Signed-off-by: Maor Dickman <maord@nvidia.com>
    Reviewed-by: Raed Salem <raeds@nvidia.com>
    Reviewed-by: Ariel Levkovich <lariel@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    dickmanmaor authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    219b326 View commit details
    Browse the repository at this point in the history
  19. net/mlx5: Add handling of port type in rule deletion

    Handle destruction of rules with port destination type to enable
    full destruction of flow.
    
    Without this handling of TX rules the deletion of these rules fails.
    Dmesg of flow destruction failure:
    
    [  203.714146] mlx5_core 0000:00:0b.0: mlx5_cmd_check:753:(pid 342): SET_FLOW_TABLE_ENTRY(0x936) op_mod(0x0) failed, status bad parameter(0x3), syndrome (0x144b7a)
    [  210.547387] ------------[ cut here ]------------
    [  210.548663] refcount_t: decrement hit 0; leaking memory.
    [  210.550651] WARNING: CPU: 4 PID: 342 at lib/refcount.c:31 refcount_warn_saturate+0x5c/0x110
    [  210.550654] Modules linked in: mlx5_ib mlx5_core ib_ipoib rdma_ucm rdma_cm iw_cm ib_cm ib_umad ib_uverbs ib_core
    [  210.550675] CPU: 4 PID: 342 Comm: test Not tainted 5.8.0-rc2+ #116
    [  210.550678] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
    [  210.550680] RIP: 0010:refcount_warn_saturate+0x5c/0x110
    [  210.550685] Code: c6 d1 1b 01 00 0f 84 ad 00 00 00 5b 5d c3 80 3d b5 d1 1b 01 00 75 f4 48 c7 c7 20 d1 15 82 c6 05 a5 d1 1b 01 01 e8 a7 eb af ff <0f> 0b eb dd 80 3d 99 d1 1b 01 00 75 d4 48 c7 c7 c0 cf 15 82 c6 05
    [  210.550687] RSP: 0018:ffff8881642e77e8 EFLAGS: 00010282
    [  210.550691] RAX: 0000000000000000 RBX: 0000000000000004 RCX: 0000000000000000
    [  210.550694] RDX: 0000000000000027 RSI: 0000000000000004 RDI: ffffed102c85ceef
    [  210.550696] RBP: ffff888161720428 R08: ffffffff8124c10e R09: ffffed103243beae
    [  210.550698] R10: ffff8881921df56b R11: ffffed103243bead R12: ffff8881841b4180
    [  210.550701] R13: ffff888161720428 R14: ffff8881616d0000 R15: ffff888161720380
    [  210.550704] FS:  00007fc27f025740(0000) GS:ffff888192000000(0000) knlGS:0000000000000000
    [  210.550706] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  210.550708] CR2: 0000557e4b41a6a0 CR3: 0000000002415004 CR4: 0000000000360ea0
    [  210.550711] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  210.550713] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [  210.550715] Call Trace:
    [  210.550717]  mlx5_del_flow_rules+0x484/0x490 [mlx5_core]
    [  210.550720]  ? mlx5_cmd_set_fte+0xa80/0xa80 [mlx5_core]
    [  210.550722]  mlx5_ib_destroy_flow+0x17f/0x280 [mlx5_ib]
    [  210.550724]  uverbs_free_flow+0x4c/0x90 [ib_uverbs]
    [  210.550726]  destroy_hw_idr_uobject+0x41/0xb0 [ib_uverbs]
    [  210.550728]  uverbs_destroy_uobject+0xaa/0x390 [ib_uverbs]
    [  210.550731]  __uverbs_cleanup_ufile+0x129/0x1b0 [ib_uverbs]
    [  210.550733]  ? uverbs_destroy_uobject+0x390/0x390 [ib_uverbs]
    [  210.550735]  uverbs_destroy_ufile_hw+0x78/0x190 [ib_uverbs]
    [  210.550737]  ib_uverbs_close+0x36/0x140 [ib_uverbs]
    [  210.550739]  __fput+0x181/0x380
    [  210.550741]  task_work_run+0x88/0xd0
    [  210.550743]  do_exit+0x5f6/0x13b0
    [  210.550745]  ? sched_clock_cpu+0x30/0x140
    [  210.550747]  ? is_current_pgrp_orphaned+0x70/0x70
    [  210.550750]  ? lock_downgrade+0x360/0x360
    [  210.550752]  ? mark_held_locks+0x1d/0x90
    [  210.550754]  do_group_exit+0x8a/0x140
    [  210.550756]  get_signal+0x20a/0xf50
    [  210.550758]  do_signal+0x8c/0xbe0
    [  210.550760]  ? hrtimer_nanosleep+0x1d8/0x200
    [  210.550762]  ? nanosleep_copyout+0x50/0x50
    [  210.550764]  ? restore_sigcontext+0x320/0x320
    [  210.550766]  ? __hrtimer_init+0xf0/0xf0
    [  210.550768]  ? timespec64_add_safe+0x150/0x150
    [  210.550770]  ? mark_held_locks+0x1d/0x90
    [  210.550772]  ? lockdep_hardirqs_on_prepare+0x14c/0x240
    [  210.550774]  __prepare_exit_to_usermode+0x119/0x170
    [  210.550776]  do_syscall_64+0x65/0x300
    [  210.550778]  ? trace_hardirqs_off+0x10/0x120
    [  210.550781]  ? mark_held_locks+0x1d/0x90
    [  210.550783]  ? asm_sysvec_apic_timer_interrupt+0xa/0x20
    [  210.550785]  ? lockdep_hardirqs_on+0x112/0x190
    [  210.550787]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [  210.550789] RIP: 0033:0x7fc27f1cd157
    [  210.550791] Code: Bad RIP value.
    [  210.550793] RSP: 002b:00007ffd4db27ea8 EFLAGS: 00000246 ORIG_RAX: 0000000000000023
    [  210.550798] RAX: fffffffffffffdfc RBX: ffffffffffffff80 RCX: 00007fc27f1cd157
    [  210.550800] RDX: 00007fc27f025740 RSI: 00007ffd4db27eb0 RDI: 00007ffd4db27eb0
    [  210.550803] RBP: 0000000000000016 R08: 0000000000000000 R09: 000000000000000e
    [  210.550805] R10: 00007ffd4db27dc7 R11: 0000000000000246 R12: 0000000000400c00
    [  210.550808] R13: 00007ffd4db285f0 R14: 0000000000000000 R15: 0000000000000000
    [  210.550809] irq event stamp: 49399
    [  210.550812] hardirqs last  enabled at (49399): [<ffffffff81172d36>] console_unlock+0x556/0x6f0
    [  210.550815] hardirqs last disabled at (49398): [<ffffffff81172897>] console_unlock+0xb7/0x6f0
    [  210.550818] softirqs last  enabled at (48706): [<ffffffff81e0037b>] __do_softirq+0x37b/0x60c
    [  210.550820] softirqs last disabled at (48697): [<ffffffff81c00e2f>] asm_call_on_stack+0xf/0x20
    [  210.550822] ---[ end trace ad18c0e6fa846454 ]---
    [  210.581862] mlx5_core 0000:00:0c.0: mlx5_destroy_flow_table:2132:(pid 342): Flow table 262150 wasn't destroyed, refcount > 1
    
    Fixes: a7ee18b ("RDMA/mlx5: Allow creating a matcher for a NIC TX flow table")
    Signed-off-by: Michael Guralnik <michaelgur@nvidia.com>
    Reviewed-by: Mark Bloch <mbloch@nvidia.com>
    Reviewed-by: Maor Gottlieb <maorg@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    mikijoy authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    8cbcc5e View commit details
    Browse the repository at this point in the history
  20. net/mlx5: Clear bw_share upon VF disable

    Currently, if user disables VFs with some min and max rates configured,
    they are cleared. But QoS data is not cleared and restored upon next VF
    enable placing limits on minimal rate for given VF, when user expects
    none.
    
    To match cleared vport->info struct with QoS-related min and max rates
    upon VF disable, clear vport->qos struct too.
    
    Fixes: 556b9d1 ("net/mlx5: Clear VF's configuration on disabling SRIOV")
    Signed-off-by: Vladyslav Tarasiuk <vladyslavt@nvidia.com>
    Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Hoommus authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    1ce5fc7 View commit details
    Browse the repository at this point in the history
  21. net/mlx5: Disable QoS when min_rates on all VFs are zero

    Currently when QoS is enabled for VF and any min_rate is configured,
    the driver sets bw_share value to at least 1 and doesn’t allow to set
    it to 0 to make minimal rate unlimited. It means there is always a
    minimal rate configured for every VF, even if user tries to remove it.
    
    In order to make QoS disable possible, check whether all vports have
    configured min_rate = 0. If this is true, set their bw_share to 0 to
    disable min_rate limitations.
    
    Fixes: c9497c9 ("net/mlx5: Add support for setting VF min rate")
    Signed-off-by: Vladyslav Tarasiuk <vladyslavt@nvidia.com>
    Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Hoommus authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    470b747 View commit details
    Browse the repository at this point in the history
  22. net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled

    Avoid calling mlx5_esw_modify_vport_rate() if qos is not enabled and
    avoid unnecessary syndrome messages from firmware.
    
    Fixes: fcb64c0 ("net/mlx5: E-Switch, add ingress rate support")
    Signed-off-by: Eli Cohen <elic@nvidia.com>
    Reviewed-by: Roi Dayan <roid@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    elic307i authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    5b8631c View commit details
    Browse the repository at this point in the history
  23. net/mlx5: fix error return code in mlx5e_tc_nic_init()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: aedd133 ("net/mlx5e: Support CT offload for tc nic flows")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Wang Hai authored and Saeed Mahameed committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    68ec32d View commit details
    Browse the repository at this point in the history
  24. enetc: Workaround for MDIO register access issue

    Due to a hardware issue, an access to MDIO registers
    that is concurrent with other ENETC register accesses
    may lead to the MDIO access being dropped or corrupted.
    The workaround introduces locking for all register accesses
    to the ENETC register space.  To reduce performance impact,
    a readers-writers locking scheme has been implemented.
    The writer in this case is the MDIO access code (irrelevant
    whether that MDIO access is a register read or write), and
    the reader is any access code to non-MDIO ENETC registers.
    Also, the datapath functions acquire the read lock fewer times
    and use _hot accessors.  All the rest of the code uses the _wa
    accessors which lock every register access.
    The commit introducing MDIO support is -
    commit ebfcb23 ("enetc: Add ENETC PF level external MDIO support")
    but due to subsequent refactoring this patch is applicable on
    top of a later commit.
    
    Fixes: 6517798 ("enetc: Make MDIO accessors more generic and export to include/linux/fsl")
    Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
    Link: https://lore.kernel.org/r/20201112182608.26177-1-claudiu.manoil@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Alex Marginean authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    fd5736b View commit details
    Browse the repository at this point in the history
  25. netdevsim: set .owner to THIS_MODULE

    If THIS_MODULE is not set, the module would be removed while debugfs is
    being used.
    It eventually makes kernel panic.
    
    Fixes: 82c93a8 ("netdevsim: implement couple of testing devlink health reporters")
    Fixes: 424be63 ("netdevsim: add UDP tunnel port offload support")
    Fixes: 4418f86 ("netdevsim: implement support for devlink region and snapshots")
    Fixes: d3cbb90 ("netdevsim: add ACL trap reporting cookie as a metadata")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Link: https://lore.kernel.org/r/20201115103041.30701-1-ap420073@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    TaeheeYoo authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    a5bbcbf View commit details
    Browse the repository at this point in the history
  26. net/tls: Fix wrong record sn in async mode of device resync

    In async_resync mode, we log the TCP seq of records until the async request
    is completed.  Later, in case one of the logged seqs matches the resync
    request, we return it, together with its record serial number.  Before this
    fix, we mistakenly returned the serial number of the current record
    instead.
    
    Fixes: ed9b764 ("net/tls: Add asynchronous resync")
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Reviewed-by: Boris Pismenny <borisp@nvidia.com>
    Link: https://lore.kernel.org/r/20201115131448.2702-1-tariqt@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Tariq Toukan authored and kuba-moo committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    138559b View commit details
    Browse the repository at this point in the history
  27. bpf, sockmap: Fix partial copy_page_to_iter so progress can still be …

    …made
    
    If copy_page_to_iter() fails or even partially completes, but with fewer
    bytes copied than expected we currently reset sg.start and return EFAULT.
    This proves problematic if we already copied data into the user buffer
    before we return an error. Because we leave the copied data in the user
    buffer and fail to unwind the scatterlist so kernel side believes data
    has been copied and user side believes data has _not_ been received.
    
    Expected behavior should be to return number of bytes copied and then
    on the next read we need to return the error assuming its still there. This
    can happen if we have a copy length spanning multiple scatterlist elements
    and one or more complete before the error is hit.
    
    The error is rare enough though that my normal testing with server side
    programs, such as nginx, httpd, envoy, etc., I have never seen this. The
    only reliable way to reproduce that I've found is to stream movies over
    my browser for a day or so and wait for it to hang. Not very scientific,
    but with a few extra WARN_ON()s in the code the bug was obvious.
    
    When we review the errors from copy_page_to_iter() it seems we are hitting
    a page fault from copy_page_to_iter_iovec() where the code checks
    fault_in_pages_writeable(buf, copy) where buf is the user buffer. It
    also seems typical server applications don't hit this case.
    
    The other way to try and reproduce this is run the sockmap selftest tool
    test_sockmap with data verification enabled, but it doesn't reproduce the
    fault. Perhaps we can trigger this case artificially somehow from the
    test tools. I haven't sorted out a way to do that yet though.
    
    Fixes: 604326b ("bpf, sockmap: convert to generic sk_msg interface")
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/bpf/160556566659.73229.15694973114605301063.stgit@john-XPS-13-9370
    jrfastab authored and borkmann committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    c9c89dc View commit details
    Browse the repository at this point in the history
  28. bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect

    Fix sockmap sk_skb programs so that they observe sk_rcvbuf limits. This
    allows users to tune SO_RCVBUF and sockmap will honor them.
    
    We can refactor the if(charge) case out in later patches. But, keep this
    fix to the point.
    
    Fixes: 5119940 ("bpf: skb_verdict, support SK_PASS on RX BPF path")
    Suggested-by: Jakub Sitnicki <jakub@cloudflare.com>
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/bpf/160556568657.73229.8404601585878439060.stgit@john-XPS-13-9370
    jrfastab authored and borkmann committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    36cd0e6 View commit details
    Browse the repository at this point in the history
  29. bpf, sockmap: Use truesize with sk_rmem_schedule()

    We use skb->size with sk_rmem_scheduled() which is not correct. Instead
    use truesize to align with socket and tcp stack usage of sk_rmem_schedule.
    
    Suggested-by: Daniel Borkman <daniel@iogearbox.net>
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/bpf/160556570616.73229.17003722112077507863.stgit@john-XPS-13-9370
    jrfastab authored and borkmann committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    70796fb View commit details
    Browse the repository at this point in the history
  30. bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self

    If a socket redirects to itself and it is under memory pressure it is
    possible to get a socket stuck so that recv() returns EAGAIN and the
    socket can not advance for some time. This happens because when
    redirecting a skb to the same socket we received the skb on we first
    check if it is OK to enqueue the skb on the receiving socket by checking
    memory limits. But, if the skb is itself the object holding the memory
    needed to enqueue the skb we will keep retrying from kernel side
    and always fail with EAGAIN. Then userspace will get a recv() EAGAIN
    error if there are no skbs in the psock ingress queue. This will continue
    until either some skbs get kfree'd causing the memory pressure to
    reduce far enough that we can enqueue the pending packet or the
    socket is destroyed. In some cases its possible to get a socket
    stuck for a noticeable amount of time if the socket is only receiving
    skbs from sk_skb verdict programs. To reproduce I make the socket
    memory limits ridiculously low so sockets are always under memory
    pressure. More often though if under memory pressure it looks like
    a spurious EAGAIN error on user space side causing userspace to retry
    and typically enough has moved on the memory side that it works.
    
    To fix skip memory checks and skb_orphan if receiving on the same
    sock as already assigned.
    
    For SK_PASS cases this is easy, its always the same socket so we
    can just omit the orphan/set_owner pair.
    
    For backlog cases we need to check skb->sk and decide if the orphan
    and set_owner pair are needed.
    
    Fixes: 5119940 ("bpf: skb_verdict, support SK_PASS on RX BPF path")
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/bpf/160556572660.73229.12566203819812939627.stgit@john-XPS-13-9370
    jrfastab authored and borkmann committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    6fa9201 View commit details
    Browse the repository at this point in the history
  31. bpf, sockmap: Handle memory acct if skb_verdict prog redirects to self

    If the skb_verdict_prog redirects an skb knowingly to itself, fix your
    BPF program this is not optimal and an abuse of the API please use
    SK_PASS. That said there may be cases, such as socket load balancing,
    where picking the socket is hashed based or otherwise picks the same
    socket it was received on in some rare cases. If this happens we don't
    want to confuse userspace giving them an EAGAIN error if we can avoid
    it.
    
    To avoid double accounting in these cases. At the moment even if the
    skb has already been charged against the sockets rcvbuf and forward
    alloc we check it again and do set_owner_r() causing it to be orphaned
    and recharged. For one this is useless work, but more importantly we
    can have a case where the skb could be put on the ingress queue, but
    because we are under memory pressure we return EAGAIN. The trouble
    here is the skb has already been accounted for so any rcvbuf checks
    include the memory associated with the packet already. This rolls
    up and can result in unnecessary EAGAIN errors in userspace read()
    calls.
    
    Fix by doing an unlikely check and skipping checks if skb->sk == sk.
    
    Fixes: 5119940 ("bpf: skb_verdict, support SK_PASS on RX BPF path")
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/bpf/160556574804.73229.11328201020039674147.stgit@john-XPS-13-9370
    jrfastab authored and borkmann committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    2443ca6 View commit details
    Browse the repository at this point in the history
  32. bpf, sockmap: Avoid failures from skb_to_sgvec when skb has frag_list

    When skb has a frag_list its possible for skb_to_sgvec() to fail. This
    happens when the scatterlist has fewer elements to store pages than would
    be needed for the initial skb plus any of its frags.
    
    This case appears rare, but is possible when running an RX parser/verdict
    programs exposed to the internet. Currently, when this happens we throw
    an error, break the pipe, and kfree the msg. This effectively breaks the
    application or forces it to do a retry.
    
    Lets catch this case and handle it by doing an skb_linearize() on any
    skb we receive with frags. At this point skb_to_sgvec should not fail
    because the failing conditions would require frags to be in place.
    
    Fixes: 604326b ("bpf, sockmap: convert to generic sk_msg interface")
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/bpf/160556576837.73229.14800682790808797635.stgit@john-XPS-13-9370
    jrfastab authored and borkmann committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    4363023 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2020

  1. tools/testing/scatterlist: Fix test to compile and run

    Add missing define of ALIGN_DOWN to make the test build and run.  In
    addition, __sg_alloc_table_from_pages now support unaligned maximum
    segment, so adapt the test result accordingly.
    
    Fixes: 07da122 ("lib/scatterlist: Add support in dynamic allocation of SG table from pages")
    Link: https://lore.kernel.org/r/20201115120623.139113-1-leon@kernel.org
    Signed-off-by: Maor Gottlieb <maorg@nvidia.com>
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    maorgottlieb authored and jgunthorpe committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    ee415d7 View commit details
    Browse the repository at this point in the history
  2. inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()

    nlmsg_cancel() needs to be called in the error path of
    inet_req_diag_fill to cancel the message.
    
    Fixes: d545cac ("net: inet: diag: expose the socket mark to privileged processes.")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Link: https://lore.kernel.org/r/20201116082018.16496-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Wang Hai authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    e33de7c View commit details
    Browse the repository at this point in the history
  3. qed: fix ILT configuration of SRC block

    The code refactoring of ILT configuration was not complete, the old
    unused variables were used for the SRC block. That could lead to the memory
    corruption by HW when rx filters are configured.
    This patch completes that refactoring.
    
    Fixes: 8a52bba (qed: Debug feature: ilt and mdump)
    Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: Dmitry Bogdanov <dbogdanov@marvell.com>
    Link: https://lore.kernel.org/r/20201116132944.2055-1-dbogdanov@marvell.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    logost authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    93be526 View commit details
    Browse the repository at this point in the history
  4. ipv4: use IS_ENABLED instead of ifdef

    Checking for ifdef CONFIG_x fails if CONFIG_x=m.
    
    Use IS_ENABLED instead, which is true for both built-ins and modules.
    
    Otherwise, a
    > ip -4 route add 1.2.3.4/32 via inet6 fe80::2 dev eth1
    fails with the message "Error: IPv6 support not enabled in kernel." if
    CONFIG_IPV6 is `m`.
    
    In the spirit of b812711.
    
    Fixes: d156626 ("ipv4: Allow ipv6 gateway with ipv4 routes")
    Cc: Kim Phillips <kim.phillips@arm.com>
    Signed-off-by: Florian Klink <flokli@flokli.de>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/20201115224509.2020651-1-flokli@flokli.de
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    flokli authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    c09c8a2 View commit details
    Browse the repository at this point in the history
  5. can: kvaser_pciefd: Fix KCAN bittiming limits

    Use correct bittiming limits for the KCAN CAN controller.
    
    Fixes: 26ad340 ("can: kvaser_pciefd: Add driver for Kvaser PCIEcan devices")
    Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
    Link: https://lore.kernel.org/r/20201115163027.16851-1-jimmyassarsson@gmail.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Jimmy Assarsson authored and marckleinebudde committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    470e14c View commit details
    Browse the repository at this point in the history
  6. can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits

    Use correct bittiming limits for the KCAN CAN controller.
    
    Fixes: aec5fb2 ("can: kvaser_usb: Add support for Kvaser USB hydra family")
    Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
    Link: https://lore.kernel.org/r/20201115163027.16851-2-jimmyassarsson@gmail.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Jimmy Assarsson authored and marckleinebudde committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    d003868 View commit details
    Browse the repository at this point in the history
  7. can: flexcan: flexcan_chip_start(): fix erroneous flexcan_transceiver…

    …_enable() during bus-off recovery
    
    If the CAN controller goes into bus off, the do_set_mode() callback with
    CAN_MODE_START can be used to recover the controller, which then calls
    flexcan_chip_start(). If configured, this is done automatically by the
    framework or manually by the user.
    
    In flexcan_chip_start() there is an explicit call to
    flexcan_transceiver_enable(), which does a regulator_enable() on the
    transceiver regulator. This results in a net usage counter increase, as there
    is no corresponding flexcan_transceiver_disable() in the bus off code path.
    This further leads to the transceiver stuck enabled, even if the CAN interface
    is shut down.
    
    To fix this problem the
    flexcan_transceiver_enable()/flexcan_transceiver_disable() are moved out of
    flexcan_chip_start()/flexcan_chip_stop() into flexcan_open()/flexcan_close().
    
    Fixes: e955cea ("CAN: Add Flexcan CAN controller driver")
    Link: https://lore.kernel.org/r/20201118150148.2664024-1-mkl@pengutronix.de
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    marckleinebudde committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    cd9f13c View commit details
    Browse the repository at this point in the history
  8. can: m_can: process interrupt only when not runtime suspended

    Avoid processing bogus interrupt statuses when the HW is runtime suspended and
    the M_CAN_IR register read may get all bits 1's. Handler can be called if the
    interrupt request is shared with other peripherals or at the end of free_irq().
    
    Therefore check the runtime suspended status before processing.
    
    Fixes: cdf8259 ("can: m_can: Add PM Support")
    Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Link: https://lore.kernel.org/r/20200915134715.696303-1-jarkko.nikula@linux.intel.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    jhnikula authored and marckleinebudde committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    a1f6344 View commit details
    Browse the repository at this point in the history
  9. net: usb: qmi_wwan: Set DTR quirk for MR400

    LTE module MR400 embedded in TL-MR6400 v4 requires DTR to be set.
    
    Signed-off-by: Filip Moc <dev@moc6.cz>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Link: https://lore.kernel.org/r/20201117173631.GA550981@moc6.cz
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Filip Moc authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    df8d85d View commit details
    Browse the repository at this point in the history
  10. ah6: fix error return code in ah6_input()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 1da177e ("Linux-2.6.12-rc2")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605581105-35295-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    a5ebcbd View commit details
    Browse the repository at this point in the history
  11. atl1c: fix error return code in atl1c_probe()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 43250dd ("atl1c: Atheros L1C Gigabit Ethernet driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605581721-36028-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    537a147 View commit details
    Browse the repository at this point in the history
  12. atl1e: fix error return code in atl1e_probe()

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: a6a5325 ("atl1e: Atheros L1E Gigabit Ethernet driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605581875-36281-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Zhang Changzhong authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    3a36060 View commit details
    Browse the repository at this point in the history
  13. net: Have netpoll bring-up DSA management interface

    DSA network devices rely on having their DSA management interface up and
    running otherwise their ndo_open() will return -ENETDOWN. Without doing
    this it would not be possible to use DSA devices as netconsole when
    configured on the command line. These devices also do not utilize the
    upper/lower linking so the check about the netpoll device having upper
    is not going to be a problem.
    
    The solution adopted here is identical to the one done for
    net/ipv4/ipconfig.c with 728c020 ("net: ipv4: handle DSA enabled
    master network devices"), with the network namespace scope being
    restricted to that of the process configuring netpoll.
    
    Fixes: 04ff53f ("net: dsa: Add netconsole support")
    Tested-by: Vladimir Oltean <olteanv@gmail.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20201117035236.22658-1-f.fainelli@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    ffainelli authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    1532b97 View commit details
    Browse the repository at this point in the history
  14. mlxsw: Fix firmware flashing

    The commit cited below moved firmware flashing functionality from
    mlxsw_spectrum to mlxsw_core, but did not adjust the Kconfig
    dependencies. This makes it possible to have mlxsw_core as built-in and
    mlxfw as a module. The mlxfw code is therefore not reachable from
    mlxsw_core and firmware flashing fails:
    
    # devlink dev flash pci/0000:01:00.0 file mellanox/mlxsw_spectrum-13.2008.1310.mfa2
    devlink answers: Operation not supported
    
    Fix by having mlxsw_core select mlxfw.
    
    Fixes: b79cb78 ("mlxsw: Move fw flashing code into core.c")
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reported-by: Vadim Pasternak <vadimp@nvidia.com>
    Tested-by: Vadim Pasternak <vadimp@nvidia.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    idosch authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    fb738b9 View commit details
    Browse the repository at this point in the history
  15. mlxsw: core: Use variable timeout for EMAD retries

    The driver sends Ethernet Management Datagram (EMAD) packets to the
    device for configuration purposes and waits for up to 200ms for a reply.
    A request is retried up to 5 times.
    
    When the system is under heavy load, replies are not always processed in
    time and EMAD transactions fail.
    
    Make the process more robust to such delays by using exponential
    backoff. First wait for up to 200ms, then retransmit and wait for up to
    400ms and so on.
    
    Fixes: caf7297 ("mlxsw: core: Introduce support for asynchronous EMAD register access")
    Reported-by: Denis Yulevich <denisyu@nvidia.com>
    Tested-by: Denis Yulevich <denisyu@nvidia.com>
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    idosch authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    1f492ea View commit details
    Browse the repository at this point in the history
  16. Merge branch 'mlxsw-couple-of-fixes'

    Ido Schimmel says:
    
    ====================
    mlxsw: Couple of fixes
    
    Patch #1 fixes firmware flashing when CONFIG_MLXSW_CORE=y and
    CONFIG_MLXFW=m.
    
    Patch #2 prevents EMAD transactions from needlessly failing when the
    system is under heavy load by using exponential backoff.
    
    Please consider patch #2 for stable.
    ====================
    
    Link: https://lore.kernel.org/r/20201117173352.288491-1-idosch@idosch.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    fc2635b View commit details
    Browse the repository at this point in the history
  17. net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset

    When the switch is hardware reset, it reads the contents of the
    EEPROM. This can contain instructions for programming values into
    registers and to perform waits between such programming. Reading the
    EEPROM can take longer than the 100ms mv88e6xxx_hardware_reset() waits
    after deasserting the reset GPIO. So poll the EEPROM done bit to
    ensure it is complete.
    
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Ruslan Sushko <rus@sushko.dev>
    Link: https://lore.kernel.org/r/20201116164301.977661-1-rus@sushko.dev
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    lunn authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    a3dcb3e View commit details
    Browse the repository at this point in the history
  18. page_frag: Recover from memory pressure

    The ethernet driver may allocate skb (and skb->data) via napi_alloc_skb().
    This ends up to page_frag_alloc() to allocate skb->data from
    page_frag_cache->va.
    
    During the memory pressure, page_frag_cache->va may be allocated as
    pfmemalloc page. As a result, the skb->pfmemalloc is always true as
    skb->data is from page_frag_cache->va. The skb will be dropped if the
    sock (receiver) does not have SOCK_MEMALLOC. This is expected behaviour
    under memory pressure.
    
    However, once kernel is not under memory pressure any longer (suppose large
    amount of memory pages are just reclaimed), the page_frag_alloc() may still
    re-use the prior pfmemalloc page_frag_cache->va to allocate skb->data. As a
    result, the skb->pfmemalloc is always true unless page_frag_cache->va is
    re-allocated, even if the kernel is not under memory pressure any longer.
    
    Here is how kernel runs into issue.
    
    1. The kernel is under memory pressure and allocation of
    PAGE_FRAG_CACHE_MAX_ORDER in __page_frag_cache_refill() will fail. Instead,
    the pfmemalloc page is allocated for page_frag_cache->va.
    
    2: All skb->data from page_frag_cache->va (pfmemalloc) will have
    skb->pfmemalloc=true. The skb will always be dropped by sock without
    SOCK_MEMALLOC. This is an expected behaviour.
    
    3. Suppose a large amount of pages are reclaimed and kernel is not under
    memory pressure any longer. We expect skb->pfmemalloc drop will not happen.
    
    4. Unfortunately, page_frag_alloc() does not proactively re-allocate
    page_frag_alloc->va and will always re-use the prior pfmemalloc page. The
    skb->pfmemalloc is always true even kernel is not under memory pressure any
    longer.
    
    Fix this by freeing and re-allocating the page instead of recycling it.
    
    References: https://lore.kernel.org/lkml/20201103193239.1807-1-dongli.zhang@oracle.com/
    References: https://lore.kernel.org/linux-mm/20201105042140.5253-1-willy@infradead.org/
    Suggested-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Cc: Aruna Ramakrishna <aruna.ramakrishna@oracle.com>
    Cc: Bert Barbe <bert.barbe@oracle.com>
    Cc: Rama Nichanamatlu <rama.nichanamatlu@oracle.com>
    Cc: Venkat Venkatsubra <venkat.x.venkatsubra@oracle.com>
    Cc: Manjunath Patil <manjunath.b.patil@oracle.com>
    Cc: Joe Jin <joe.jin@oracle.com>
    Cc: SRINIVAS <srinivas.eeda@oracle.com>
    Fixes: 79930f5 ("net: do not deplete pfmemalloc reserve")
    Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20201115201029.11903-1-dongli.zhang@oracle.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Dongli Zhang authored and kuba-moo committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    d8c1901 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2020

  1. atm: nicstar: Unmap DMA on send error

    The `skb' is mapped for DMA in ns_send() but does not unmap DMA in case
    push_scqe() fails to submit the `skb'. The memory of the `skb' is
    released so only the DMA mapping is leaking.
    
    Unmap the DMA mapping in case push_scqe() failed.
    
    Fixes: 864a3ff ("atm: [nicstar] remove virt_to_bus() and support 64-bit platforms")
    Cc: Chas Williams <3chas3@gmail.com>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Sebastian Andrzej Siewior authored and kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    6dceaa9 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'mlx5-fixes-2020-11-17' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/saeed/linux
    
    Saeed Mahameed says:
    
    ====================
    mlx5 fixes 2020-11-17
    
    This series introduces some fixes to mlx5 driver.
    
    * tag 'mlx5-fixes-2020-11-17' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
      net/mlx5: fix error return code in mlx5e_tc_nic_init()
      net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled
      net/mlx5: Disable QoS when min_rates on all VFs are zero
      net/mlx5: Clear bw_share upon VF disable
      net/mlx5: Add handling of port type in rule deletion
      net/mlx5e: Fix check if netdev is bond slave
      net/mlx5e: Fix IPsec packet drop by mlx5e_tc_update_skb
      net/mlx5e: Set IPsec WAs only in IP's non checksum partial case.
      net/mlx5e: Fix refcount leak on kTLS RX resync
    ====================
    
    Link: https://lore.kernel.org/r/20201117195702.386113-1-saeedm@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    f93e849 View commit details
    Browse the repository at this point in the history
  3. net/mlx4_core: Fix init_hca fields offset

    Slave function read the following capabilities from the wrong offset:
    1. log_mc_entry_sz
    2. fs_log_entry_sz
    3. log_mc_hash_sz
    
    Fix that by adjusting these capabilities offset to match firmware
    layout.
    
    Due to the wrong offset read, the following issues might occur:
    1+2. Negative value reported at max_mcast_qp_attach.
    3. Driver to init FW with multicast hash size of zero.
    
    Fixes: a40ded6 ("net/mlx4_core: Add masking for a few queries on HCA caps")
    Signed-off-by: Aya Levin <ayal@nvidia.com>
    Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
    Reviewed-by: Eran Ben Elisha <eranbe@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Link: https://lore.kernel.org/r/20201118081922.553-1-tariqt@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    ayalevin authored and kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    6d9c8d1 View commit details
    Browse the repository at this point in the history
  4. Merge tag 'linux-can-fixes-for-5.10-20201118' of git://git.kernel.org…

    …/pub/scm/linux/kernel/git/mkl/linux-can
    
    Marc Kleine-Budde says:
    
    ====================
    pull-request: can 2020-11-18
    
    Jimmy Assarsson provides two patches for the kvaser_pciefd and kvaser_usb
    drivers, where the can_bittiming_const are fixed.
    
    The next patch is by me and fixes an erroneous flexcan_transceiver_enable()
    during bus-off recovery in the flexcan driver.
    
    Jarkko Nikula's patch for the m_can driver fixes the IRQ handler to only
    process the interrupts if the device is not suspended.
    
    * tag 'linux-can-fixes-for-5.10-20201118' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
      can: m_can: process interrupt only when not runtime suspended
      can: flexcan: flexcan_chip_start(): fix erroneous flexcan_transceiver_enable() during bus-off recovery
      can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits
      can: kvaser_pciefd: Fix KCAN bittiming limits
    ====================
    
    Link: https://lore.kernel.org/r/20201118160414.2731659-1-mkl@pengutronix.de
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    f0b0a2d View commit details
    Browse the repository at this point in the history
  5. selftests/powerpc: rfi_flush: disable entry flush if present

    We are about to add an entry flush. The rfi (exit) flush test measures
    the number of L1D flushes over a syscall with the RFI flush enabled and
    disabled. But if the entry flush is also enabled, the effect of enabling
    and disabling the RFI flush is masked.
    
    If there is a debugfs entry for the entry flush, disable it during the RFI
    flush and restore it later.
    
    Reported-by: Spoorthy S <spoorts2@in.ibm.com>
    Signed-off-by: Russell Currey <ruscur@russell.cc>
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    ruscur authored and mpe committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    fcb4845 View commit details
    Browse the repository at this point in the history
  6. powerpc/64s: flush L1D on kernel entry

    IBM Power9 processors can speculatively operate on data in the L1 cache
    before it has been completely validated, via a way-prediction mechanism. It
    is not possible for an attacker to determine the contents of impermissible
    memory using this method, since these systems implement a combination of
    hardware and software security measures to prevent scenarios where
    protected data could be leaked.
    
    However these measures don't address the scenario where an attacker induces
    the operating system to speculatively execute instructions using data that
    the attacker controls. This can be used for example to speculatively bypass
    "kernel user access prevention" techniques, as discovered by Anthony
    Steinhauser of Google's Safeside Project. This is not an attack by itself,
    but there is a possibility it could be used in conjunction with
    side-channels or other weaknesses in the privileged code to construct an
    attack.
    
    This issue can be mitigated by flushing the L1 cache between privilege
    boundaries of concern. This patch flushes the L1 cache on kernel entry.
    
    This is part of the fix for CVE-2020-4788.
    
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    npiggin authored and mpe committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    f796437 View commit details
    Browse the repository at this point in the history
  7. powerpc/64s: flush L1D after user accesses

    IBM Power9 processors can speculatively operate on data in the L1 cache
    before it has been completely validated, via a way-prediction mechanism. It
    is not possible for an attacker to determine the contents of impermissible
    memory using this method, since these systems implement a combination of
    hardware and software security measures to prevent scenarios where
    protected data could be leaked.
    
    However these measures don't address the scenario where an attacker induces
    the operating system to speculatively execute instructions using data that
    the attacker controls. This can be used for example to speculatively bypass
    "kernel user access prevention" techniques, as discovered by Anthony
    Steinhauser of Google's Safeside Project. This is not an attack by itself,
    but there is a possibility it could be used in conjunction with
    side-channels or other weaknesses in the privileged code to construct an
    attack.
    
    This issue can be mitigated by flushing the L1 cache between privilege
    boundaries of concern. This patch flushes the L1 cache after user accesses.
    
    This is part of the fix for CVE-2020-4788.
    
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    npiggin authored and mpe committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    9a32a7e View commit details
    Browse the repository at this point in the history
  8. powerpc: Only include kup-radix.h for 64-bit Book3S

    In kup.h we currently include kup-radix.h for all 64-bit builds, which
    includes Book3S and Book3E. The latter doesn't make sense, Book3E
    never uses the Radix MMU.
    
    This has worked up until now, but almost by accident, and the recent
    uaccess flush changes introduced a build breakage on Book3E because of
    the bad structure of the code.
    
    So disentangle things so that we only use kup-radix.h for Book3S. This
    requires some more stubs in kup.h and fixing an include in
    syscall_64.c.
    
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    mpe committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    178d52c View commit details
    Browse the repository at this point in the history
  9. selftests/powerpc: entry flush test

    Add a test modelled on the RFI flush test which counts the number
    of L1D misses doing a simple syscall with the entry flush on and off.
    
    For simplicity of backporting, this test duplicates a lot of code from
    rfi_flush. We clean that up in the next patch.
    
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    daxtens authored and mpe committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    89a83a0 View commit details
    Browse the repository at this point in the history
  10. selftests/powerpc: refactor entry and rfi_flush tests

    For simplicity in backporting, the original entry_flush test contained
    a lot of duplicated code from the rfi_flush test. De-duplicate that code.
    
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    daxtens authored and mpe committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    0d239f3 View commit details
    Browse the repository at this point in the history
  11. powerpc/64s: rename pnv|pseries_setup_rfi_flush to _setup_security_mi…

    …tigations
    
    pseries|pnv_setup_rfi_flush already does the count cache flush setup, and
    we just added entry and uaccess flushes. So the name is not very accurate
    any more. In both platforms we then also immediately setup the STF flush.
    
    Rename them to _setup_security_mitigations and fold the STF flush in.
    
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    daxtens authored and mpe committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    da631f7 View commit details
    Browse the repository at this point in the history
  12. libbpf: Fix VERSIONED_SYM_COUNT number parsing

    We remove "other info" from "readelf -s --wide" output when
    parsing GLOBAL_SYM_COUNT variable, which was added in [1].
    But we don't do that for VERSIONED_SYM_COUNT and it's failing
    the check_abi target on powerpc Fedora 33.
    
    The extra "other info" wasn't problem for VERSIONED_SYM_COUNT
    parsing until commit [2] added awk in the pipe, which assumes
    that the last column is symbol, but it can be "other info".
    
    Adding "other info" removal for VERSIONED_SYM_COUNT the same
    way as we did for GLOBAL_SYM_COUNT parsing.
    
    [1] aa91593 ("libbpf: Fix readelf output parsing for Fedora")
    [2] 746f534 ("tools/libbpf: Avoid counting local symbols in ABI check")
    
    Fixes: 746f534 ("tools/libbpf: Avoid counting local symbols in ABI check")
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20201118211350.1493421-1-jolsa@kernel.org
    olsajiri authored and Alexei Starovoitov committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    1fd6cee View commit details
    Browse the repository at this point in the history
  13. ipv6: Remove dependency of ipv6_frag_thdr_truncated on ipv6 module

    IPV6=m
    NF_DEFRAG_IPV6=y
    
    ld: net/ipv6/netfilter/nf_conntrack_reasm.o: in function
    `nf_ct_frag6_gather':
    net/ipv6/netfilter/nf_conntrack_reasm.c:462: undefined reference to
    `ipv6_frag_thdr_truncated'
    
    Netfilter is depending on ipv6 symbol ipv6_frag_thdr_truncated. This
    dependency is forcing IPV6=y.
    
    Remove this dependency by moving ipv6_frag_thdr_truncated out of ipv6. This
    is the same solution as used with a similar issues: Referring to
    commit 70b095c ("ipv6: remove dependency of nf_defrag_ipv6 on ipv6
    module")
    
    Fixes: 9d9e937 ("ipv6/netfilter: Discard first fragment not including all headers")
    Reported-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Georg Kohmann <geokohma@cisco.com>
    Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
    Link: https://lore.kernel.org/r/20201119095833.8409-1-geokohma@cisco.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Georg Kohmann authored and kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    2d8f648 View commit details
    Browse the repository at this point in the history
  14. net/smc: fix matching of existing link groups

    With the multi-subnet support of SMC-Dv2 the match for existing link
    groups should not include the vlanid of the network device.
    Set ini->smcd_version accordingly before the call to smc_conn_create()
    and use this value in smc_conn_create() to skip the vlanid check.
    
    Fixes: 5c21c4c ("net/smc: determine accepted ISM devices")
    Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    karstengr authored and kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    0530bd6 View commit details
    Browse the repository at this point in the history
  15. net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_g…

    …id()
    
    Sparse complaints 3 times about:
    net/smc/smc_ib.c:203:52: warning: incorrect type in argument 1 (different address spaces)
    net/smc/smc_ib.c:203:52:    expected struct net_device const *dev
    net/smc/smc_ib.c:203:52:    got struct net_device [noderef] __rcu *const ndev
    
    Fix that by using the existing and validated ndev variable instead of
    accessing attr->ndev directly.
    
    Fixes: 5102eca ("net/smc: Use rdma_read_gid_l2_fields to L2 fields")
    Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    karstengr authored and kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    41a0be3 View commit details
    Browse the repository at this point in the history
  16. Merge branch 'net-smc-fixes-2020-11-18'

    Karsten Graul says:
    
    ====================
    net/smc: fixes 2020-11-18
    
    Patch 1 fixes the matching of link groups because with SMC-Dv2 the vlanid
    should no longer be part of this matching. Patch 2 removes a sparse message.
    ====================
    
    Link: https://lore.kernel.org/r/20201118214038.24039-1-kgraul@linux.ibm.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    90b4978 View commit details
    Browse the repository at this point in the history
  17. Merge tag 'powerpc-cve-2020-4788' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/powerpc/linux
    
    Pull powerpc fixes from Michael Ellerman:
     "Fixes for CVE-2020-4788.
    
      From Daniel's cover letter:
    
      IBM Power9 processors can speculatively operate on data in the L1
      cache before it has been completely validated, via a way-prediction
      mechanism. It is not possible for an attacker to determine the
      contents of impermissible memory using this method, since these
      systems implement a combination of hardware and software security
      measures to prevent scenarios where protected data could be leaked.
    
      However these measures don't address the scenario where an attacker
      induces the operating system to speculatively execute instructions
      using data that the attacker controls. This can be used for example to
      speculatively bypass "kernel user access prevention" techniques, as
      discovered by Anthony Steinhauser of Google's Safeside Project. This
      is not an attack by itself, but there is a possibility it could be
      used in conjunction with side-channels or other weaknesses in the
      privileged code to construct an attack.
    
      This issue can be mitigated by flushing the L1 cache between privilege
      boundaries of concern.
    
      This patch series flushes the L1 cache on kernel entry (patch 2) and
      after the kernel performs any user accesses (patch 3). It also adds a
      self-test and performs some related cleanups"
    
    * tag 'powerpc-cve-2020-4788' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
      powerpc/64s: rename pnv|pseries_setup_rfi_flush to _setup_security_mitigations
      selftests/powerpc: refactor entry and rfi_flush tests
      selftests/powerpc: entry flush test
      powerpc: Only include kup-radix.h for 64-bit Book3S
      powerpc/64s: flush L1D after user accesses
      powerpc/64s: flush L1D on kernel entry
      selftests/powerpc: rfi_flush: disable entry flush if present
    torvalds committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    dda3f42 View commit details
    Browse the repository at this point in the history
  18. lib/strncpy_from_user.c: Mask out bytes after NUL terminator.

    do_strncpy_from_user() may copy some extra bytes after the NUL
    terminator into the destination buffer. This usually does not matter for
    normal string operations. However, when BPF programs key BPF maps with
    strings, this matters a lot.
    
    A BPF program may read strings from user memory by calling the
    bpf_probe_read_user_str() helper which eventually calls
    do_strncpy_from_user(). The program can then key a map with the
    destination buffer. BPF map keys are fixed-width and string-agnostic,
    meaning that map keys are treated as a set of bytes.
    
    The issue is when do_strncpy_from_user() overcopies bytes after the NUL
    terminator, it can result in seemingly identical strings occupying
    multiple slots in a BPF map. This behavior is subtle and totally
    unexpected by the user.
    
    This commit masks out the bytes following the NUL while preserving
    long-sized stride in the fast path.
    
    Fixes: 6ae08ae ("bpf: Add probe_read_{user, kernel} and probe_read_{user, kernel}_str helpers")
    Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/21efc982b3e9f2f7b0379eed642294caaa0c27a7.1605642949.git.dxu@dxuuu.xyz
    danobi authored and Alexei Starovoitov committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    6fa6d28 View commit details
    Browse the repository at this point in the history
  19. selftest/bpf: Test bpf_probe_read_user_str() strips trailing bytes af…

    …ter NUL
    
    Previously, bpf_probe_read_user_str() could potentially overcopy the
    trailing bytes after the NUL due to how do_strncpy_from_user() does the
    copy in long-sized strides. The issue has been fixed in the previous
    commit.
    
    This commit adds a selftest that ensures we don't regress
    bpf_probe_read_user_str() again.
    
    Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Song Liu <songliubraving@fb.com>
    Acked-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/4d977508fab4ec5b7b574b85bdf8b398868b6ee9.1605642949.git.dxu@dxuuu.xyz
    danobi authored and Alexei Starovoitov committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    c8a36ae View commit details
    Browse the repository at this point in the history
  20. Merge branch 'Fix bpf_probe_read_user_str() overcopying'

    Daniel Xu says:
    
    ====================
    
    6ae08ae ("bpf: Add probe_read_{user, kernel} and probe_read_{user,
    kernel}_str helpers") introduced a subtle bug where
    bpf_probe_read_user_str() would potentially copy a few extra bytes after
    the NUL terminator.
    
    This issue is particularly nefarious when strings are used as map keys,
    as seemingly identical strings can occupy multiple entries in a map.
    
    This patchset fixes the issue and introduces a selftest to prevent
    future regressions.
    
    v6 -> v7:
    * Add comments
    
    v5 -> v6:
    * zero-pad up to sizeof(unsigned long) after NUL
    
    v4 -> v5:
    * don't read potentially uninitialized memory
    
    v3 -> v4:
    * directly pass userspace pointer to prog
    * test more strings of different length
    
    v2 -> v3:
    * set pid filter before attaching prog in selftest
    * use long instead of int as bpf_probe_read_user_str() retval
    * style changes
    
    v1 -> v2:
    * add Fixes: tag
    * add selftest
    ====================
    
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Alexei Starovoitov committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    14d6d86 View commit details
    Browse the repository at this point in the history
  21. fail_function: Remove a redundant mutex unlock

    Fix a mutex_unlock() issue where before copy_from_user() is
    not called mutex_locked.
    
    Fixes: 4b1a29a ("error-injection: Support fault injection framework")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Luo Meng <luomeng12@huawei.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Link: https://lore.kernel.org/bpf/160570737118.263807.8358435412898356284.stgit@devnote2
    Luo Meng authored and Alexei Starovoitov committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    2801a5d View commit details
    Browse the repository at this point in the history
  22. Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf

    Alexei Starovoitov says:
    
    ====================
    1) libbpf should not attempt to load unused subprogs, from Andrii.
    
    2) Make strncpy_from_user() mask out bytes after NUL terminator, from Daniel.
    
    3) Relax return code check for subprograms in the BPF verifier, from Dmitrii.
    
    4) Fix several sockmap issues, from John.
    
    * https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
      fail_function: Remove a redundant mutex unlock
      selftest/bpf: Test bpf_probe_read_user_str() strips trailing bytes after NUL
      lib/strncpy_from_user.c: Mask out bytes after NUL terminator.
      libbpf: Fix VERSIONED_SYM_COUNT number parsing
      bpf, sockmap: Avoid failures from skb_to_sgvec when skb has frag_list
      bpf, sockmap: Handle memory acct if skb_verdict prog redirects to self
      bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self
      bpf, sockmap: Use truesize with sk_rmem_schedule()
      bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect
      bpf, sockmap: Fix partial copy_page_to_iter so progress can still be made
      selftests/bpf: Fix error return code in run_getsockopt_test()
      bpf: Relax return code check for subprograms
      tools, bpftool: Add missing close before bpftool net attach exit
      MAINTAINERS/bpf: Update Andrii's entry.
      selftests/bpf: Fix unused attribute usage in subprogs_unused test
      bpf: Fix unsigned 'datasec_id' compared with zero in check_pseudo_btf_id
      bpf: Fix passing zero to PTR_ERR() in bpf_btf_printf_prepare
      libbpf: Don't attempt to load unused subprog as an entry-point BPF program
    ====================
    
    Link: https://lore.kernel.org/r/20201119200721.288-1-alexei.starovoitov@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kuba-moo committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    e6ea60b View commit details
    Browse the repository at this point in the history
  23. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/rdma/rdma
    
    Pull rdma fixes from Jason Gunthorpe:
     "The last two weeks have been quiet here, just the usual smattering of
      long standing bug fixes.
    
      A collection of error case bug fixes:
    
       - Improper nesting of spinlock types in cm
    
       - Missing error codes and kfree()
    
       - Ensure dma_virt_ops users have the right kconfig symbols to work
         properly
    
       - Compilation failure of tools/testing"
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
      tools/testing/scatterlist: Fix test to compile and run
      IB/hfi1: Fix error return code in hfi1_init_dd()
      RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs
      RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()
      RDMA/cm: Make the local_id_table xarray non-irq
    torvalds committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    3be28e9 View commit details
    Browse the repository at this point in the history
  24. Merge tag 'net-5.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/netdev/net
    
    Pull networking fixes from Jakub Kicinski:
     "Networking fixes for 5.10-rc5, including fixes from the WiFi
      (mac80211), can and bpf (including the strncpy_from_user fix).
    
      Current release - regressions:
    
       - mac80211: fix memory leak of filtered powersave frames
    
       - mac80211: free sta in sta_info_insert_finish() on errors to avoid
         sleeping in atomic context
    
       - netlabel: fix an uninitialized variable warning added in -rc4
    
      Previous release - regressions:
    
       - vsock: forward all packets to the host when no H2G is registered,
         un-breaking AWS Nitro Enclaves
    
       - net: Exempt multicast addresses from five-second neighbor lifetime
         requirement, decreasing the chances neighbor tables fill up
    
       - net/tls: fix corrupted data in recvmsg
    
       - qed: fix ILT configuration of SRC block
    
       - can: m_can: process interrupt only when not runtime suspended
    
      Previous release - always broken:
    
       - page_frag: Recover from memory pressure by not recycling pages
         allocating from the reserves
    
       - strncpy_from_user: Mask out bytes after NUL terminator
    
       - ip_tunnels: Set tunnel option flag only when tunnel metadata is
         present, always setting it confuses Open vSwitch
    
       - bpf, sockmap:
          - Fix partial copy_page_to_iter so progress can still be made
          - Fix socket memory accounting and obeying SO_RCVBUF
    
       - net: Have netpoll bring-up DSA management interface
    
       - net: bridge: add missing counters to ndo_get_stats64 callback
    
       - tcp: brr: only postpone PROBE_RTT if RTT is < current min_rtt
    
       - enetc: Workaround MDIO register access HW bug
    
       - net/ncsi: move netlink family registration to a subsystem init,
         instead of tying it to driver probe
    
       - net: ftgmac100: unregister NC-SI when removing driver to avoid
         crash
    
       - lan743x:
          - prevent interrupt storm on open
          - fix freeing skbs in the wrong context
    
       - net/mlx5e: Fix socket refcount leak on kTLS RX resync
    
       - net: dsa: mv88e6xxx: Avoid VLAN database corruption on 6097
    
       - fix 21 unset return codes and other mistakes on error paths, mostly
         detected by the Hulk Robot"
    
    * tag 'net-5.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (115 commits)
      fail_function: Remove a redundant mutex unlock
      selftest/bpf: Test bpf_probe_read_user_str() strips trailing bytes after NUL
      lib/strncpy_from_user.c: Mask out bytes after NUL terminator.
      net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()
      net/smc: fix matching of existing link groups
      ipv6: Remove dependency of ipv6_frag_thdr_truncated on ipv6 module
      libbpf: Fix VERSIONED_SYM_COUNT number parsing
      net/mlx4_core: Fix init_hca fields offset
      atm: nicstar: Unmap DMA on send error
      page_frag: Recover from memory pressure
      net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
      mlxsw: core: Use variable timeout for EMAD retries
      mlxsw: Fix firmware flashing
      net: Have netpoll bring-up DSA management interface
      atl1e: fix error return code in atl1e_probe()
      atl1c: fix error return code in atl1c_probe()
      ah6: fix error return code in ah6_input()
      net: usb: qmi_wwan: Set DTR quirk for MR400
      can: m_can: process interrupt only when not runtime suspended
      can: flexcan: flexcan_chip_start(): fix erroneous flexcan_transceiver_enable() during bus-off recovery
      ...
    torvalds committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    4d02da9 View commit details
    Browse the repository at this point in the history