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 #130

Merged
merged 210 commits into from
Sep 22, 2020
Merged

[pull] master from torvalds:master #130

merged 210 commits into from
Sep 22, 2020

Commits on Jul 21, 2020

  1. ieee802154: fix one possible memleak in ca8210_dev_com_init

    We should call destroy_workqueue to destroy mlme_workqueue in error branch.
    
    Fixes: ded845a ("ieee802154: Add CA8210 IEEE 802.15.4 device driver")
    Signed-off-by: Liu Jian <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Stefan Schmidt <[email protected]>
    liujian56 authored and Stefan-Schmidt committed Jul 21, 2020
    Configuration menu
    Copy the full SHA
    88f46b3 View commit details
    Browse the repository at this point in the history

Commits on Aug 3, 2020

  1. ieee802154/adf7242: check status of adf7242_read_reg

    Clang static analysis reports this error
    
    adf7242.c:887:6: warning: Assigned value is garbage or undefined
            len = len_u8;
                ^ ~~~~~~
    
    len_u8 is set in
           adf7242_read_reg(lp, 0, &len_u8);
    
    When this call fails, len_u8 is not set.
    
    So check the return code.
    
    Fixes: 7302b9d ("ieee802154/adf7242: Driver for ADF7242 MAC IEEE802154")
    
    Signed-off-by: Tom Rix <[email protected]>
    Acked-by: Michael Hennerich <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Stefan Schmidt <[email protected]>
    Tom Rix authored and Stefan-Schmidt committed Aug 3, 2020
    Configuration menu
    Copy the full SHA
    e3914ed View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2020

  1. brcmfmac: reserve tx credit only when txctl is ready to send

    The 4329 throughput drops from 40.2 Mbits/sec to 190 Kbits/sec in 2G
    11n mode because the commit b41c232 ("brcmfmac: reserve 2 credits
    for host tx control path"). To fix the issue, host driver only reserves
    tx control credit when there is a txctl frame is pending to send. And
    we also check available credit by using "not equal to 0" instead of
    "greater than 0" because tx_max and tx_seq are circled positive numbers.
    
    Reported-by: Dmitry Osipenko <[email protected]>
    Fixes: b41c232 ("brcmfmac: reserve 2 credits for host tx control path")
    Signed-off-by: Wright Feng <[email protected]>
    Tested-by: Dmitry Osipenko <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    WenChieh-Feng authored and Kalle Valo committed Aug 18, 2020
    Configuration menu
    Copy the full SHA
    9a2a086 View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2020

  1. vboxsf: Fix the check for the old binary mount-arguments struct

    Fix the check for the mainline vboxsf code being used with the old
    mount.vboxsf mount binary from the out-of-tree vboxsf version doing
    a comparison between signed and unsigned data types.
    
    This fixes the following smatch warnings:
    
    fs/vboxsf/super.c:390 vboxsf_parse_monolithic() warn: impossible condition '(options[1] == (255)) => ((-128)-127 == 255)'
    fs/vboxsf/super.c:391 vboxsf_parse_monolithic() warn: impossible condition '(options[2] == (254)) => ((-128)-127 == 254)'
    fs/vboxsf/super.c:392 vboxsf_parse_monolithic() warn: impossible condition '(options[3] == (253)) => ((-128)-127 == 253)'
    
    Reported-by: kernel test robot <[email protected]>
    Reported-by: Dan Carpenter <[email protected]>
    Signed-off-by: Hans de Goede <[email protected]>
    Signed-off-by: Al Viro <[email protected]>
    jwrdegoede authored and Al Viro committed Aug 25, 2020
    Configuration menu
    Copy the full SHA
    9d682ea View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2020

  1. mt76: mt7615: use v1 MCU API on MT7615 to fix issues with adding/remo…

    …ving stations
    
    The implementation of embedding WTBL update inside the STA_REC update is buggy
    on the MT7615 v2 firmware. This leads to connection issues after a station has
    connected and disconnected again.
    
    Switch to the v1 MCU API ops, since they have received much more testing and
    should be more stable.
    
    On MT7622 and later, the v2 API is more actively used, so we should keep using
    it as well.
    
    Fixes: 6849e29 ("mt76: mt7615: add starec operating flow for firmware v2")
    Cc: [email protected]
    Signed-off-by: Felix Fietkau <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    nbd168 authored and Kalle Valo committed Aug 27, 2020
    Configuration menu
    Copy the full SHA
    d1c9da9 View commit details
    Browse the repository at this point in the history
  2. mt76: mt7915: use ieee80211_free_txskb to free tx skbs

    Using dev_kfree_skb for tx skbs breaks AQL. This worked until now only
    by accident, because a mac80211 issue breaks AQL on drivers with firmware
    rate control that report the rate via ieee80211_tx_status_ext as struct
    rate_info.
    
    Signed-off-by: Felix Fietkau <[email protected]>
    Acked-by: Toke Høiland-Jørgensen <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    nbd168 authored and Kalle Valo committed Aug 27, 2020
    Configuration menu
    Copy the full SHA
    b4be5a5 View commit details
    Browse the repository at this point in the history
  3. mwifiex: Increase AES key storage size to 256 bits

    Following commit e186967 ("mwifiex: Prevent memory corruption
    handling keys") the mwifiex driver fails to authenticate with certain
    networks, specifically networks with 256 bit keys, and repeatedly asks
    for the password. The kernel log repeats the following lines (id and
    bssid redacted):
    
        mwifiex_pcie 0000:01:00.0: info: trying to associate to '<id>' bssid <bssid>
        mwifiex_pcie 0000:01:00.0: info: associated to bssid <bssid> successfully
        mwifiex_pcie 0000:01:00.0: crypto keys added
        mwifiex_pcie 0000:01:00.0: info: successfully disconnected from <bssid>: reason code 3
    
    Tracking down this problem lead to the overflow check introduced by the
    aforementioned commit into mwifiex_ret_802_11_key_material_v2(). This
    check fails on networks with 256 bit keys due to the current storage
    size for AES keys in struct mwifiex_aes_param being only 128 bit.
    
    To fix this issue, increase the storage size for AES keys to 256 bit.
    
    Fixes: e186967 ("mwifiex: Prevent memory corruption handling keys")
    Signed-off-by: Maximilian Luz <[email protected]>
    Reported-by: Kaloyan Nikolov <[email protected]>
    Tested-by: Kaloyan Nikolov <[email protected]>
    Reviewed-by: Dan Carpenter <[email protected]>
    Reviewed-by: Brian Norris <[email protected]>
    Tested-by: Brian Norris <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    qzed authored and Kalle Valo committed Aug 27, 2020
    Configuration menu
    Copy the full SHA
    4afc850 View commit details
    Browse the repository at this point in the history
  4. batman-adv: bla: fix type misuse for backbone_gw hash indexing

    It seems that due to a copy & paste error the void pointer
    in batadv_choose_backbone_gw() is cast to the wrong type.
    
    Fixing this by using "struct batadv_bla_backbone_gw" instead of "struct
    batadv_bla_claim" which better matches the caller's side.
    
    For now it seems that we were lucky because the two structs both have
    their orig/vid and addr/vid in the beginning. However I stumbled over
    this issue when I was trying to add some debug variables in front of
    "orig" in batadv_backbone_gw, which caused hash lookups to fail.
    
    Fixes: 07568d0 ("batman-adv: don't rely on positions in struct for hashing")
    Signed-off-by: Linus Lüssing <[email protected]>
    Signed-off-by: Sven Eckelmann <[email protected]>
    T-X authored and simonwunderlich committed Aug 27, 2020
    Configuration menu
    Copy the full SHA
    097930e View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2020

  1. libbpf: Fix build failure from uninitialized variable warning

    While compiling libbpf, some GCC versions (at least 8.4.0) have difficulty
    determining control flow and a emit warning for potentially uninitialized
    usage of 'map', which results in a build error if using "-Werror":
    
    In file included from libbpf.c:56:
    libbpf.c: In function '__bpf_object__open':
    libbpf_internal.h:59:2: warning: 'map' may be used uninitialized in this function [-Wmaybe-uninitialized]
      libbpf_print(level, "libbpf: " fmt, ##__VA_ARGS__); \
      ^~~~~~~~~~~~
    libbpf.c:5032:18: note: 'map' was declared here
      struct bpf_map *map, *targ_map;
                      ^~~
    
    The warning/error is false based on code inspection, so silence it with a
    NULL initialization.
    
    Fixes: 646f02f ("libbpf: Add BTF-defined map-in-map support")
    Reference: 063e688 ("libbpf: Fix false uninitialized variable warning")
    Signed-off-by: Tony Ambardar <[email protected]>
    Signed-off-by: Daniel Borkmann <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    Tony Ambardar authored and borkmann committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    3168c15 View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2020

  1. tools/bpf: build: Make sure resolve_btfids cleans up after itself

    The new resolve_btfids tool did not clean up the feature detection folder
    on 'make clean', and also was not called properly from the clean rule in
    tools/make/ folder on its 'make clean'. This lead to stale objects being
    left around, which could cause feature detection to fail on subsequent
    builds.
    
    Fixes: fbbb68d ("bpf: Add resolve_btfids tool to resolve BTF IDs in ELF object")
    Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
    Signed-off-by: Daniel Borkmann <[email protected]>
    Acked-by: Jiri Olsa <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    tohojo authored and borkmann committed Sep 1, 2020
    Configuration menu
    Copy the full SHA
    1eb832a View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2020

  1. libbpf: Remove arch-specific include path in Makefile

    Ubuntu mainline builds for ppc64le are failing with the below error (*):
        CALL    /home/kernel/COD/linux/scripts/atomic/check-atomics.sh
        DESCEND  bpf/resolve_btfids
    
      Auto-detecting system features:
      ...                        libelf: [ [32mon[m  ]
      ...                          zlib: [ [32mon[m  ]
      ...                           bpf: [ [31mOFF[m ]
    
      BPF API too old
      make[6]: *** [Makefile:295: bpfdep] Error 1
      make[5]: *** [Makefile:54: /home/kernel/COD/linux/debian/build/build-generic/tools/bpf/resolve_btfids//libbpf.a] Error 2
      make[4]: *** [Makefile:71: bpf/resolve_btfids] Error 2
      make[3]: *** [/home/kernel/COD/linux/Makefile:1890: tools/bpf/resolve_btfids] Error 2
      make[2]: *** [/home/kernel/COD/linux/Makefile:335: __build_one_by_one] Error 2
      make[2]: Leaving directory '/home/kernel/COD/linux/debian/build/build-generic'
      make[1]: *** [Makefile:185: __sub-make] Error 2
      make[1]: Leaving directory '/home/kernel/COD/linux'
    
    resolve_btfids needs to be build as a host binary and it needs libbpf.
    However, libbpf Makefile hardcodes an include path utilizing $(ARCH).
    This results in mixing of cross-architecture headers resulting in a
    build failure.
    
    The specific header include path doesn't seem necessary for a libbpf
    build. Hence, remove the same.
    
    (*) https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9-rc3/ppc64el/log
    
    Reported-by: Vaidyanathan Srinivasan <[email protected]>
    Signed-off-by: Naveen N. Rao <[email protected]>
    Signed-off-by: Daniel Borkmann <[email protected]>
    Acked-by: Andrii Nakryiko <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    rnav authored and borkmann committed Sep 3, 2020
    Configuration menu
    Copy the full SHA
    21e9ba5 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2020

  1. bpf: Do not use bucket_lock for hashmap iterator

    Currently, for hashmap, the bpf iterator will grab a bucket lock, a
    spinlock, before traversing the elements in the bucket. This can ensure
    all bpf visted elements are valid. But this mechanism may cause
    deadlock if update/deletion happens to the same bucket of the
    visited map in the program. For example, if we added bpf_map_update_elem()
    call to the same visited element in selftests bpf_iter_bpf_hash_map.c,
    we will have the following deadlock:
    
      ============================================
      WARNING: possible recursive locking detected
      5.9.0-rc1+ #841 Not tainted
      --------------------------------------------
      test_progs/1750 is trying to acquire lock:
      ffff9a5bb73c5e70 (&htab->buckets[i].raw_lock){....}-{2:2}, at: htab_map_update_elem+0x1cf/0x410
    
      but task is already holding lock:
      ffff9a5bb73c5e20 (&htab->buckets[i].raw_lock){....}-{2:2}, at: bpf_hash_map_seq_find_next+0x94/0x120
    
      other info that might help us debug this:
       Possible unsafe locking scenario:
    
             CPU0
             ----
        lock(&htab->buckets[i].raw_lock);
        lock(&htab->buckets[i].raw_lock);
    
       *** DEADLOCK ***
       ...
      Call Trace:
       dump_stack+0x78/0xa0
       __lock_acquire.cold.74+0x209/0x2e3
       lock_acquire+0xba/0x380
       ? htab_map_update_elem+0x1cf/0x410
       ? __lock_acquire+0x639/0x20c0
       _raw_spin_lock_irqsave+0x3b/0x80
       ? htab_map_update_elem+0x1cf/0x410
       htab_map_update_elem+0x1cf/0x410
       ? lock_acquire+0xba/0x380
       bpf_prog_ad6dab10433b135d_dump_bpf_hash_map+0x88/0xa9c
       ? find_held_lock+0x34/0xa0
       bpf_iter_run_prog+0x81/0x16e
       __bpf_hash_map_seq_show+0x145/0x180
       bpf_seq_read+0xff/0x3d0
       vfs_read+0xad/0x1c0
       ksys_read+0x5f/0xe0
       do_syscall_64+0x33/0x40
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
      ...
    
    The bucket_lock first grabbed in seq_ops->next() called by bpf_seq_read(),
    and then grabbed again in htab_map_update_elem() in the bpf program, causing
    deadlocks.
    
    Actually, we do not need bucket_lock here, we can just use rcu_read_lock()
    similar to netlink iterator where the rcu_read_{lock,unlock} likes below:
     seq_ops->start():
         rcu_read_lock();
     seq_ops->next():
         rcu_read_unlock();
         /* next element */
         rcu_read_lock();
     seq_ops->stop();
         rcu_read_unlock();
    
    Compared to old bucket_lock mechanism, if concurrent updata/delete happens,
    we may visit stale elements, miss some elements, or repeat some elements.
    I think this is a reasonable compromise. For users wanting to avoid
    stale, missing/repeated accesses, bpf_map batch access syscall interface
    can be used.
    
    Signed-off-by: Yonghong Song <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    yonghong-song authored and Alexei Starovoitov committed Sep 4, 2020
    Configuration menu
    Copy the full SHA
    dc0988b View commit details
    Browse the repository at this point in the history
  2. selftests/bpf: Add bpf_{update, delete}_map_elem in hashmap iter program

    Added bpf_{updata,delete}_map_elem to the very map element the
    iter program is visiting. Due to rcu protection, the visited map
    elements, although stale, should still contain correct values.
      $ ./test_progs -n 4/18
      #4/18 bpf_hash_map:OK
      #4 bpf_iter:OK
      Summary: 1/1 PASSED, 0 SKIPPED, 0 FAILED
    
    Signed-off-by: Yonghong Song <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    yonghong-song authored and Alexei Starovoitov committed Sep 4, 2020
    Configuration menu
    Copy the full SHA
    4daab71 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'hashmap_iter_bucket_lock_fix'

    Yonghong Song says:
    
    ====================
    Currently, the bpf hashmap iterator takes a bucket_lock, a spin_lock,
    before visiting each element in the bucket. This will cause a deadlock
    if a map update/delete operates on an element with the same
    bucket id of the visited map.
    
    To avoid the deadlock, let us just use rcu_read_lock instead of
    bucket_lock. This may result in visiting stale elements, missing some elements,
    or repeating some elements, if concurrent map delete/update happens for the
    same map. I think using rcu_read_lock is a reasonable compromise.
    For users caring stale/missing/repeating element issues, bpf map batch
    access syscall interface can be used.
    
    Note that another approach is during bpf_iter link stage, we check
    whether the iter program might be able to do update/delete to the visited
    map. If it is, reject the link_create. Verifier needs to record whether
    an update/delete operation happens for each map for this approach.
    I just feel this checking is too specialized, hence still prefer
    rcu_read_lock approach.
    
    Patch #1 has the kernel implementation and Patch #2 added a selftest
    which can trigger deadlock without Patch #1.
    ====================
    
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Alexei Starovoitov committed Sep 4, 2020
    Configuration menu
    Copy the full SHA
    e6135df View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2020

  1. drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices

    PVC devices are virtual devices in this driver stacked on top of the
    actual HDLC device. They are the devices normal users would use.
    PVC devices have two types: normal PVC devices and Ethernet-emulating
    PVC devices.
    
    When transmitting data with PVC devices, the ndo_start_xmit function
    will prepend a header of 4 or 10 bytes. Currently this driver requests
    this headroom to be reserved for normal PVC devices by setting their
    hard_header_len to 10. However, this does not work when these devices
    are used with AF_PACKET/RAW sockets. Also, this driver does not request
    this headroom for Ethernet-emulating PVC devices (but deals with this
    problem by reallocating the skb when needed, which is not optimal).
    
    This patch replaces hard_header_len with needed_headroom, and set
    needed_headroom for Ethernet-emulating PVC devices, too. This makes
    the driver to request headroom for all PVC devices in all cases.
    
    Cc: Krzysztof Halasa <[email protected]>
    Cc: Martin Schiller <[email protected]>
    Signed-off-by: Xie He <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    Xie He authored and kuba-moo committed Sep 5, 2020
    Configuration menu
    Copy the full SHA
    44a049c View commit details
    Browse the repository at this point in the history
  2. atm: eni: fix the missed pci_disable_device() for eni_init_one()

    eni_init_one() misses to call pci_disable_device() in an error path.
    Jump to err_disable to fix it.
    
    Fixes: ede58ef ("atm: remove deprecated use of pci api")
    Signed-off-by: Jing Xiangfeng <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    hiss2018 authored and kuba-moo committed Sep 5, 2020
    Configuration menu
    Copy the full SHA
    c2b9478 View commit details
    Browse the repository at this point in the history
  3. act_ife: load meta modules before tcf_idr_check_alloc()

    The following deadlock scenario is triggered by syzbot:
    
    Thread A:				Thread B:
    tcf_idr_check_alloc()
    ...
    populate_metalist()
      rtnl_unlock()
    					rtnl_lock()
    					...
      request_module()			tcf_idr_check_alloc()
      rtnl_lock()
    
    At this point, thread A is waiting for thread B to release RTNL
    lock, while thread B is waiting for thread A to commit the IDR
    change with tcf_idr_insert() later.
    
    Break this deadlock situation by preloading ife modules earlier,
    before tcf_idr_check_alloc(), this is fine because we only need
    to load modules we need potentially.
    
    Reported-and-tested-by: [email protected]
    Fixes: 0190c1d ("net: sched: atomically check-allocate action")
    Cc: Jamal Hadi Salim <[email protected]>
    Cc: Vlad Buslov <[email protected]>
    Cc: Jiri Pirko <[email protected]>
    Signed-off-by: Cong Wang <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    congwang authored and kuba-moo committed Sep 5, 2020
    Configuration menu
    Copy the full SHA
    cc8e58f View commit details
    Browse the repository at this point in the history
  4. batman-adv: mcast/TT: fix wrongly dropped or rerouted packets

    The unicast packet rerouting code makes several assumptions. For
    instance it assumes that there is always exactly one destination in the
    TT. This breaks for multicast frames in a unicast packets in several ways:
    
    For one thing if there is actually no TT entry and the destination node
    was selected due to the multicast tvlv flags it announced. Then an
    intermediate node will wrongly drop the packet.
    
    For another thing if there is a TT entry but the TTVN of this entry is
    newer than the originally addressed destination node: Then the
    intermediate node will wrongly redirect the packet, leading to
    duplicated multicast packets at a multicast listener and missing
    packets at other multicast listeners or multicast routers.
    
    Fixing this by not applying the unicast packet rerouting to batman-adv
    unicast packets with a multicast payload. We are not able to detect a
    roaming multicast listener at the moment and will just continue to send
    the multicast frame to both the new and old destination for a while in
    case of such a roaming multicast listener.
    
    Fixes: a73105b ("batman-adv: improved client announcement mechanism")
    Signed-off-by: Linus Lüssing <[email protected]>
    Signed-off-by: Sven Eckelmann <[email protected]>
    Signed-off-by: Simon Wunderlich <[email protected]>
    T-X authored and simonwunderlich committed Sep 5, 2020
    Configuration menu
    Copy the full SHA
    7dda5b3 View commit details
    Browse the repository at this point in the history
  5. hinic: bump up the timeout of SET_FUNC_STATE cmd

    We free memory regardless of the return value of SET_FUNC_STATE
    cmd in hinic_close function to avoid memory leak and this cmd may
    timeout when fw is busy with handling other cmds, so we bump up the
    timeout of this cmd to ensure it won't return failure.
    
    Fixes: 00e57a6 ("net-next/hinic: Add Tx operation")
    Signed-off-by: Luo bin <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    Luo bin authored and kuba-moo committed Sep 5, 2020
    Configuration menu
    Copy the full SHA
    4e4269e View commit details
    Browse the repository at this point in the history
  6. hinic: bump up the timeout of UPDATE_FW cmd

    Firmware erases the entire flash region which may take several
    seconds before flashing, so we bump up the timeout to ensure this
    cmd won't return failure.
    
    Fixes: 5e126e7 ("hinic: add firmware update support")
    Signed-off-by: Luo bin <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    Luo bin authored and kuba-moo committed Sep 5, 2020
    Configuration menu
    Copy the full SHA
    0c97ee5 View commit details
    Browse the repository at this point in the history
  7. Merge branch 'hinic-BugFixes'

    Luo bin says:
    
    ====================
    hinic: BugFixes
    
    The bugs fixed in this patchset have been present since the following
    commits:
    patch #1: Fixes: 00e57a6 ("net-next/hinic: Add Tx operation")
    patch #2: Fixes: 5e126e7 ("hinic: add firmware update support")
    ====================
    
    Signed-off-by: Jakub Kicinski <[email protected]>
    kuba-moo committed Sep 5, 2020
    Configuration menu
    Copy the full SHA
    02146a9 View commit details
    Browse the repository at this point in the history
  8. cxgb4: Fix offset when clearing filter byte counters

    Pass the correct offset to clear the stale filter hit
    bytes counter. Otherwise, the counter starts incrementing
    from the stale information, instead of 0.
    
    Fixes: 12b276f ("cxgb4: add support to create hash filters")
    Signed-off-by: Ganji Aravind <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    Ganji Aravind authored and kuba-moo committed Sep 5, 2020
    Configuration menu
    Copy the full SHA
    94cc242 View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2020

  1. net: macb: fix for pause frame receive enable bit

    PAE bit of NCFGR register, when set, pauses transmission
    if a non-zero 802.3 classic pause frame is received.
    
    Fixes: 7897b07 ("net: macb: convert to phylink")
    Signed-off-by: Parshuram Thombare <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    pthombarcdns authored and kuba-moo committed Sep 6, 2020
    Configuration menu
    Copy the full SHA
    d7739b0 View commit details
    Browse the repository at this point in the history
  2. net: dsa: rtl8366: Properly clear member config

    When removing a port from a VLAN we are just erasing the
    member config for the VLAN, which is wrong: other ports
    can be using it.
    
    Just mask off the port and only zero out the rest of the
    member config once ports using of the VLAN are removed
    from it.
    
    Reported-by: Florian Fainelli <[email protected]>
    Fixes: d865295 ("net: dsa: realtek-smi: Add Realtek SMI driver")
    Signed-off-by: Linus Walleij <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    linusw authored and kuba-moo committed Sep 6, 2020
    Configuration menu
    Copy the full SHA
    4ddcaf1 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2020

  1. Revert "wlcore: Adding suppoprt for IGTK key in wlcore driver"

    This patch causes a regression betwen Kernel 5.7 and 5.8 at wlcore:
    with it applied, WiFi stops working, and the Kernel starts printing
    this message every second:
    
       wlcore: PHY firmware version: Rev 8.2.0.0.242
       wlcore: firmware booted (Rev 8.9.0.0.79)
       wlcore: ERROR command execute failure 14
       ------------[ cut here ]------------
       WARNING: CPU: 0 PID: 133 at drivers/net/wireless/ti/wlcore/main.c:795 wl12xx_queue_recovery_work.part.0+0x6c/0x74 [wlcore]
       Modules linked in: wl18xx wlcore mac80211 libarc4 cfg80211 rfkill snd_soc_hdmi_codec crct10dif_ce wlcore_sdio adv7511 cec kirin9xx_drm(C) kirin9xx_dw_drm_dsi(C) drm_kms_helper drm ip_tables x_tables ipv6 nf_defrag_ipv6
       CPU: 0 PID: 133 Comm: kworker/0:1 Tainted: G        WC        5.8.0+ #186
       Hardware name: HiKey970 (DT)
       Workqueue: events_freezable ieee80211_restart_work [mac80211]
       pstate: 60000005 (nZCv daif -PAN -UAO BTYPE=--)
       pc : wl12xx_queue_recovery_work.part.0+0x6c/0x74 [wlcore]
       lr : wl12xx_queue_recovery_work+0x24/0x30 [wlcore]
       sp : ffff8000126c3a60
       x29: ffff8000126c3a60 x28: 00000000000025de
       x27: 0000000000000010 x26: 0000000000000005
       x25: ffff0001a5d49e80 x24: ffff8000092cf580
       x23: ffff0001b7c12623 x22: ffff0001b6fcf2e8
       x21: ffff0001b7e46200 x20: 00000000fffffffb
       x19: ffff0001a78e6400 x18: 0000000000000030
       x17: 0000000000000001 x16: 0000000000000001
       x15: ffff0001b7e46670 x14: ffffffffffffffff
       x13: ffff8000926c37d7 x12: ffff8000126c37e0
       x11: ffff800011e01000 x10: ffff8000120526d0
       x9 : 0000000000000000 x8 : 3431206572756c69
       x7 : 6166206574756365 x6 : 0000000000000c2c
       x5 : 0000000000000000 x4 : ffff0001bf1361e8
       x3 : ffff0001bf1790b0 x2 : 0000000000000000
       x1 : ffff0001a5d49e80 x0 : 0000000000000001
       Call trace:
        wl12xx_queue_recovery_work.part.0+0x6c/0x74 [wlcore]
        wl12xx_queue_recovery_work+0x24/0x30 [wlcore]
        wl1271_cmd_set_sta_key+0x258/0x25c [wlcore]
        wl1271_set_key+0x7c/0x2dc [wlcore]
        wlcore_set_key+0xe4/0x360 [wlcore]
        wl18xx_set_key+0x48/0x1d0 [wl18xx]
        wlcore_op_set_key+0xa4/0x180 [wlcore]
        ieee80211_key_enable_hw_accel+0xb0/0x2d0 [mac80211]
        ieee80211_reenable_keys+0x70/0x110 [mac80211]
        ieee80211_reconfig+0xa00/0xca0 [mac80211]
        ieee80211_restart_work+0xc4/0xfc [mac80211]
        process_one_work+0x1cc/0x350
        worker_thread+0x13c/0x470
        kthread+0x154/0x160
        ret_from_fork+0x10/0x30
       ---[ end trace b1f722abf9af5919 ]---
       wlcore: WARNING could not set keys
       wlcore: ERROR Could not add or replace key
       wlan0: failed to set key (4, ff:ff:ff:ff:ff:ff) to hardware (-5)
       wlcore: Hardware recovery in progress. FW ver: Rev 8.9.0.0.79
       wlcore: pc: 0x0, hint_sts: 0x00000040 count: 39
       wlcore: down
       wlcore: down
       ieee80211 phy0: Hardware restart was requested
       mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
       mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
       wlcore: PHY firmware version: Rev 8.2.0.0.242
       wlcore: firmware booted (Rev 8.9.0.0.79)
       wlcore: ERROR command execute failure 14
       ------------[ cut here ]------------
    
    Tested on Hikey 970.
    
    This reverts commit 2b7aadd.
    
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Link: https://lore.kernel.org/r/f0a2cb7ea606f1a284d4c23cbf983da2954ce9b6.1598420968.git.mchehab+huawei@kernel.org
    mchehab authored and Kalle Valo committed Sep 7, 2020
    Configuration menu
    Copy the full SHA
    1264c1e View commit details
    Browse the repository at this point in the history
  2. bnxt_en: Avoid sending firmware messages when AER error is detected.

    When the driver goes through PCIe AER reset in error state, all
    firmware messages will timeout because the PCIe bus is no longer
    accessible.  This can lead to AER reset taking many minutes to
    complete as each firmware command takes time to timeout.
    
    Define a new macro BNXT_NO_FW_ACCESS() to skip these firmware messages
    when either firmware is in fatal error state or when
    pci_channel_offline() is true.  It now takes a more reasonable 20 to
    30 seconds to complete AER recovery.
    
    Fixes: b4fff20 ("bnxt_en: Do not send firmware messages if firmware is in error state.")
    Signed-off-by: Vasundhara Volam <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    Vasundhara Volam authored and kuba-moo committed Sep 7, 2020
    Configuration menu
    Copy the full SHA
    b340dc6 View commit details
    Browse the repository at this point in the history
  3. bnxt_en: Fix NULL ptr dereference crash in bnxt_fw_reset_task()

    bnxt_fw_reset_task() which runs from a workqueue can race with
    bnxt_remove_one().  For example, if firmware reset and VF FLR are
    happening at about the same time.
    
    bnxt_remove_one() already cancels the workqueue and waits for it
    to finish, but we need to do this earlier before the devlink
    reporters are destroyed.  This will guarantee that
    the devlink reporters will always be valid when bnxt_fw_reset_task()
    is still running.
    
    Fixes: b148bb2 ("bnxt_en: Fix possible crash in bnxt_fw_reset_task().")
    Reviewed-by: Edwin Peer <[email protected]>
    Signed-off-by: Vasundhara Volam <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    Vasundhara Volam authored and kuba-moo committed Sep 7, 2020
    Configuration menu
    Copy the full SHA
    b16939b View commit details
    Browse the repository at this point in the history
  4. Merge branch 'bnxt_en-Two-bug-fixes'

    Michael Chan says:
    
    ====================
    bnxt_en: Two bug fixes.
    
    The first patch fixes AER recovery by reducing the time from several
    minutes to a more reasonable 20 - 30 seconds.  The second patch fixes
    a possible NULL pointer crash during firmware reset.
    ====================
    
    Signed-off-by: Jakub Kicinski <[email protected]>
    kuba-moo committed Sep 7, 2020
    Configuration menu
    Copy the full SHA
    72bbee2 View commit details
    Browse the repository at this point in the history
  5. netdevice.h: fix proto_down_reason kernel-doc warning

    Fix kernel-doc warning in <linux/netdevice.h>:
    
    ../include/linux/netdevice.h:2158: warning: Function parameter or member 'proto_down_reason' not described in 'net_device'
    
    Fixes: 829eb20 ("rtnetlink: add support for protodown reason")
    Signed-off-by: Randy Dunlap <[email protected]>
    Acked-by: Roopa Prabhu <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    rddunlap authored and kuba-moo committed Sep 7, 2020
    Configuration menu
    Copy the full SHA
    eb02d39 View commit details
    Browse the repository at this point in the history
  6. netdevice.h: fix xdp_state kernel-doc warning

    Fix kernel-doc warning in <linux/netdevice.h>:
    
    ../include/linux/netdevice.h:2158: warning: Function parameter or member 'xdp_state' not described in 'net_device'
    
    Fixes: 7f0a838 ("bpf, xdp: Maintain info on attached XDP BPF programs in net_device")
    Signed-off-by: Randy Dunlap <[email protected]>
    Cc: Andrii Nakryiko <[email protected]>
    Cc: Alexei Starovoitov <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    rddunlap authored and kuba-moo committed Sep 7, 2020
    Configuration menu
    Copy the full SHA
    ffa59b0 View commit details
    Browse the repository at this point in the history
  7. ibmvnic: add missing parenthesis in do_reset()

    Indentation and logic clearly show that this code is missing
    parenthesis.
    
    Fixes: 9f13457 ("ibmvnic fix NULL tx_pools and rx_tools issue at do_reset")
    Signed-off-by: Jakub Kicinski <[email protected]>
    kuba-moo committed Sep 7, 2020
    Configuration menu
    Copy the full SHA
    8ae4dff View commit details
    Browse the repository at this point in the history
  8. Revert "netns: don't disable BHs when locking "nsid_lock""

    This reverts commit 8d7e5de.
    
    To protect netns id, the nsid_lock is used when netns id is being
    allocated and removed by peernet2id_alloc() and unhash_nsid().
    The nsid_lock can be used in BH context but only spin_lock() is used
    in this code.
    Using spin_lock() instead of spin_lock_bh() can result in a deadlock in
    the following scenario reported by the lockdep.
    In order to avoid a deadlock, the spin_lock_bh() should be used instead
    of spin_lock() to acquire nsid_lock.
    
    Test commands:
        ip netns del nst
        ip netns add nst
        ip link add veth1 type veth peer name veth2
        ip link set veth1 netns nst
        ip netns exec nst ip link add name br1 type bridge vlan_filtering 1
        ip netns exec nst ip link set dev br1 up
        ip netns exec nst ip link set dev veth1 master br1
        ip netns exec nst ip link set dev veth1 up
        ip netns exec nst ip link add macvlan0 link br1 up type macvlan
    
    Splat looks like:
    [   33.615860][  T607] WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
    [   33.617194][  T607] 5.9.0-rc1+ #665 Not tainted
    [ ... ]
    [   33.670615][  T607] Chain exists of:
    [   33.670615][  T607]   &mc->mca_lock --> &bridge_netdev_addr_lock_key --> &net->nsid_lock
    [   33.670615][  T607]
    [   33.673118][  T607]  Possible interrupt unsafe locking scenario:
    [   33.673118][  T607]
    [   33.674599][  T607]        CPU0                    CPU1
    [   33.675557][  T607]        ----                    ----
    [   33.676516][  T607]   lock(&net->nsid_lock);
    [   33.677306][  T607]                                local_irq_disable();
    [   33.678517][  T607]                                lock(&mc->mca_lock);
    [   33.679725][  T607]                                lock(&bridge_netdev_addr_lock_key);
    [   33.681166][  T607]   <Interrupt>
    [   33.681791][  T607]     lock(&mc->mca_lock);
    [   33.682579][  T607]
    [   33.682579][  T607]  *** DEADLOCK ***
    [ ... ]
    [   33.922046][  T607] stack backtrace:
    [   33.922999][  T607] CPU: 3 PID: 607 Comm: ip Not tainted 5.9.0-rc1+ #665
    [   33.924099][  T607] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    [   33.925714][  T607] Call Trace:
    [   33.926238][  T607]  dump_stack+0x78/0xab
    [   33.926905][  T607]  check_irq_usage+0x70b/0x720
    [   33.927708][  T607]  ? iterate_chain_key+0x60/0x60
    [   33.928507][  T607]  ? check_path+0x22/0x40
    [   33.929201][  T607]  ? check_noncircular+0xcf/0x180
    [   33.930024][  T607]  ? __lock_acquire+0x1952/0x1f20
    [   33.930860][  T607]  __lock_acquire+0x1952/0x1f20
    [   33.931667][  T607]  lock_acquire+0xaf/0x3a0
    [   33.932366][  T607]  ? peernet2id_alloc+0x3a/0x170
    [   33.933147][  T607]  ? br_port_fill_attrs+0x54c/0x6b0 [bridge]
    [   33.934140][  T607]  ? br_port_fill_attrs+0x5de/0x6b0 [bridge]
    [   33.935113][  T607]  ? kvm_sched_clock_read+0x14/0x30
    [   33.935974][  T607]  _raw_spin_lock+0x30/0x70
    [   33.936728][  T607]  ? peernet2id_alloc+0x3a/0x170
    [   33.937523][  T607]  peernet2id_alloc+0x3a/0x170
    [   33.938313][  T607]  rtnl_fill_ifinfo+0xb5e/0x1400
    [   33.939091][  T607]  rtmsg_ifinfo_build_skb+0x8a/0xf0
    [   33.939953][  T607]  rtmsg_ifinfo_event.part.39+0x17/0x50
    [   33.940863][  T607]  rtmsg_ifinfo+0x1f/0x30
    [   33.941571][  T607]  __dev_notify_flags+0xa5/0xf0
    [   33.942376][  T607]  ? __irq_work_queue_local+0x49/0x50
    [   33.943249][  T607]  ? irq_work_queue+0x1d/0x30
    [   33.943993][  T607]  ? __dev_set_promiscuity+0x7b/0x1a0
    [   33.944878][  T607]  __dev_set_promiscuity+0x7b/0x1a0
    [   33.945758][  T607]  dev_set_promiscuity+0x1e/0x50
    [   33.946582][  T607]  br_port_set_promisc+0x1f/0x40 [bridge]
    [   33.947487][  T607]  br_manage_promisc+0x8b/0xe0 [bridge]
    [   33.948388][  T607]  __dev_set_promiscuity+0x123/0x1a0
    [   33.949244][  T607]  __dev_set_rx_mode+0x68/0x90
    [   33.950021][  T607]  dev_uc_add+0x50/0x60
    [   33.950720][  T607]  macvlan_open+0x18e/0x1f0 [macvlan]
    [   33.951601][  T607]  __dev_open+0xd6/0x170
    [   33.952269][  T607]  __dev_change_flags+0x181/0x1d0
    [   33.953056][  T607]  rtnl_configure_link+0x2f/0xa0
    [   33.953884][  T607]  __rtnl_newlink+0x6b9/0x8e0
    [   33.954665][  T607]  ? __lock_acquire+0x95d/0x1f20
    [   33.955450][  T607]  ? lock_acquire+0xaf/0x3a0
    [   33.956193][  T607]  ? is_bpf_text_address+0x5/0xe0
    [   33.956999][  T607]  rtnl_newlink+0x47/0x70
    
    Acked-by: Guillaume Nault <[email protected]>
    Fixes: 8d7e5de ("netns: don't disable BHs when locking "nsid_lock"")
    Reported-by: [email protected]
    Signed-off-by: Taehee Yoo <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    TaeheeYoo authored and kuba-moo committed Sep 7, 2020
    Configuration menu
    Copy the full SHA
    e1f469c View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2020

  1. hv_netvsc: Fix hibernation for mlx5 VF driver

    mlx5_suspend()/resume() keep the network interface, so during hibernation
    netvsc_unregister_vf() and netvsc_register_vf() are not called, and hence
    netvsc_resume() should call netvsc_vf_changed() to switch the data path
    back to the VF after hibernation. Note: after we close and re-open the
    vmbus channel of the netvsc NIC in netvsc_suspend() and netvsc_resume(),
    the data path is implicitly switched to the netvsc NIC. Similarly,
    netvsc_suspend() should not call netvsc_unregister_vf(), otherwise the VF
    can no longer be used after hibernation.
    
    For mlx4, since the VF network interafce is explicitly destroyed and
    re-created during hibernation (see mlx4_suspend()/resume()), hv_netvsc
    already explicitly switches the data path from and to the VF automatically
    via netvsc_register_vf() and netvsc_unregister_vf(), so mlx4 doesn't need
    this fix. Note: mlx4 can still work with the fix because in
    netvsc_suspend()/resume() ndev_ctx->vf_netdev is NULL for mlx4.
    
    Fixes: 0efeea5 ("hv_netvsc: Add the support of hibernation")
    Signed-off-by: Dexuan Cui <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    dcui authored and kuba-moo committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    19162fd View commit details
    Browse the repository at this point in the history
  2. netfilter: ctnetlink: add a range check for l3/l4 protonum

    The indexes to the nf_nat_l[34]protos arrays come from userspace. So
    check the tuple's family, e.g. l3num, when creating the conntrack in
    order to prevent an OOB memory access during setup.  Here is an example
    kernel panic on 4.14.180 when userspace passes in an index greater than
    NFPROTO_NUMPROTO.
    
    Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
    Modules linked in:...
    Process poc (pid: 5614, stack limit = 0x00000000a3933121)
    CPU: 4 PID: 5614 Comm: poc Tainted: G S      W  O    4.14.180-g051355490483
    Hardware name: Qualcomm Technologies, Inc. SM8150 V2 PM8150 Google Inc. MSM
    task: 000000002a3dfffe task.stack: 00000000a3933121
    pc : __cfi_check_fail+0x1c/0x24
    lr : __cfi_check_fail+0x1c/0x24
    ...
    Call trace:
    __cfi_check_fail+0x1c/0x24
    name_to_dev_t+0x0/0x468
    nfnetlink_parse_nat_setup+0x234/0x258
    ctnetlink_parse_nat_setup+0x4c/0x228
    ctnetlink_new_conntrack+0x590/0xc40
    nfnetlink_rcv_msg+0x31c/0x4d4
    netlink_rcv_skb+0x100/0x184
    nfnetlink_rcv+0xf4/0x180
    netlink_unicast+0x360/0x770
    netlink_sendmsg+0x5a0/0x6a4
    ___sys_sendmsg+0x314/0x46c
    SyS_sendmsg+0xb4/0x108
    el0_svc_naked+0x34/0x38
    
    This crash is not happening since 5.4+, however, ctnetlink still
    allows for creating entries with unsupported layer 3 protocol number.
    
    Fixes: c1d10ad ("[NETFILTER]: Add ctnetlink port for nf_conntrack")
    Signed-off-by: Will McVicker <[email protected]>
    [[email protected]: rebased original patch on top of nf.git]
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Will McVicker authored and ummakynes committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    1cc5ef9 View commit details
    Browse the repository at this point in the history
  3. netfilter: nf_tables: coalesce multiple notifications into one skbuff

    On x86_64, each notification results in one skbuff allocation which
    consumes at least 768 bytes due to the skbuff overhead.
    
    This patch coalesces several notifications into one single skbuff, so
    each notification consumes at least ~211 bytes, that ~3.5 times less
    memory consumption. As a result, this is reducing the chances to exhaust
    the netlink socket receive buffer.
    
    Rule of thumb is that each notification batch only contains netlink
    messages whose report flag is the same, nfnetlink_send() requires this
    to do appropriate delivery to userspace, either via unicast (echo
    mode) or multicast (monitor mode).
    
    The skbuff control buffer is used to annotate the report flag for later
    handling at the new coalescing routine.
    
    The batch skbuff notification size is NLMSG_GOODSIZE, using a larger
    skbuff would allow for more socket receiver buffer savings (to amortize
    the cost of the skbuff even more), however, going over that size might
    break userspace applications, so let's be conservative and stick to
    NLMSG_GOODSIZE.
    
    Reported-by: Phil Sutter <[email protected]>
    Acked-by: Phil Sutter <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    ummakynes committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    67cc570 View commit details
    Browse the repository at this point in the history
  4. netfilter: ctnetlink: fix mark based dump filtering regression

    conntrack mark based dump filtering may falsely skip entries if a mask
    is given: If the mask-based check does not filter out the entry, the
    else-if check is always true and compares the mark without considering
    the mask. The if/else-if logic seems wrong.
    
    Given that the mask during filter setup is implicitly set to 0xffffffff
    if not specified explicitly, the mark filtering flags seem to just
    complicate things. Restore the previously used approach by always
    matching against a zero mask is no filter mark is given.
    
    Fixes: cb8aa9a ("netfilter: ctnetlink: add kernel side filtering for dump")
    Signed-off-by: Martin Willi <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    martinwilli authored and ummakynes committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    6c0d95d View commit details
    Browse the repository at this point in the history
  5. netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled

    The openvswitch module fails initialization when used in a kernel
    without IPv6 enabled. nf_conncount_init() fails because the ct code
    unconditionally tries to initialize the netns IPv6 related bit,
    regardless of the build option. The change below ignores the IPv6
    part if not enabled.
    
    Note that the corresponding _put() function already has this IPv6
    configuration check.
    
    Fixes: 11efd5c ("openvswitch: Support conntrack zone limit")
    Signed-off-by: Eelco Chaudron <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    chaudron authored and ummakynes committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    526e81b View commit details
    Browse the repository at this point in the history
  6. netfilter: nft_meta: use socket user_ns to retrieve skuid and skgid

    ... instead of using init_user_ns.
    
    Fixes: 9651851 ("netfilter: add nftables")
    Tested-by: Phil Sutter <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    ummakynes committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    0c92411 View commit details
    Browse the repository at this point in the history
  7. mac802154: tx: fix use-after-free

    syzbot reported a bug in ieee802154_tx() [1]
    
    A similar issue in ieee802154_xmit_worker() is also fixed in this patch.
    
    [1]
    BUG: KASAN: use-after-free in ieee802154_tx+0x3d2/0x480 net/mac802154/tx.c:88
    Read of size 4 at addr ffff8880251a8c70 by task syz-executor.3/928
    
    CPU: 0 PID: 928 Comm: syz-executor.3 Not tainted 5.9.0-rc3-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x198/0x1fd lib/dump_stack.c:118
     print_address_description.constprop.0.cold+0xae/0x497 mm/kasan/report.c:383
     __kasan_report mm/kasan/report.c:513 [inline]
     kasan_report.cold+0x1f/0x37 mm/kasan/report.c:530
     ieee802154_tx+0x3d2/0x480 net/mac802154/tx.c:88
     ieee802154_subif_start_xmit+0xbe/0xe4 net/mac802154/tx.c:130
     __netdev_start_xmit include/linux/netdevice.h:4634 [inline]
     netdev_start_xmit include/linux/netdevice.h:4648 [inline]
     dev_direct_xmit+0x4e9/0x6e0 net/core/dev.c:4203
     packet_snd net/packet/af_packet.c:2989 [inline]
     packet_sendmsg+0x2413/0x5290 net/packet/af_packet.c:3014
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:671
     ____sys_sendmsg+0x6e8/0x810 net/socket.c:2353
     ___sys_sendmsg+0xf3/0x170 net/socket.c:2407
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2440
     do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x45d5b9
    Code: 5d b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 2b b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007fc98e749c78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 000000000002ccc0 RCX: 000000000045d5b9
    RDX: 0000000000000000 RSI: 0000000020007780 RDI: 000000000000000b
    RBP: 000000000118d020 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 000000000118cfec
    R13: 00007fff690c720f R14: 00007fc98e74a9c0 R15: 000000000118cfec
    
    Allocated by task 928:
     kasan_save_stack+0x1b/0x40 mm/kasan/common.c:48
     kasan_set_track mm/kasan/common.c:56 [inline]
     __kasan_kmalloc.constprop.0+0xbf/0xd0 mm/kasan/common.c:461
     slab_post_alloc_hook mm/slab.h:518 [inline]
     slab_alloc_node mm/slab.c:3254 [inline]
     kmem_cache_alloc_node+0x136/0x3e0 mm/slab.c:3574
     __alloc_skb+0x71/0x550 net/core/skbuff.c:198
     alloc_skb include/linux/skbuff.h:1094 [inline]
     alloc_skb_with_frags+0x92/0x570 net/core/skbuff.c:5771
     sock_alloc_send_pskb+0x72a/0x880 net/core/sock.c:2348
     packet_alloc_skb net/packet/af_packet.c:2837 [inline]
     packet_snd net/packet/af_packet.c:2932 [inline]
     packet_sendmsg+0x19fb/0x5290 net/packet/af_packet.c:3014
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:671
     ____sys_sendmsg+0x6e8/0x810 net/socket.c:2353
     ___sys_sendmsg+0xf3/0x170 net/socket.c:2407
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2440
     do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Freed by task 928:
     kasan_save_stack+0x1b/0x40 mm/kasan/common.c:48
     kasan_set_track+0x1c/0x30 mm/kasan/common.c:56
     kasan_set_free_info+0x1b/0x30 mm/kasan/generic.c:355
     __kasan_slab_free+0xd8/0x120 mm/kasan/common.c:422
     __cache_free mm/slab.c:3418 [inline]
     kmem_cache_free.part.0+0x74/0x1e0 mm/slab.c:3693
     kfree_skbmem+0xef/0x1b0 net/core/skbuff.c:622
     __kfree_skb net/core/skbuff.c:679 [inline]
     consume_skb net/core/skbuff.c:838 [inline]
     consume_skb+0xcf/0x160 net/core/skbuff.c:832
     __dev_kfree_skb_any+0x9c/0xc0 net/core/dev.c:3107
     fakelb_hw_xmit+0x20e/0x2a0 drivers/net/ieee802154/fakelb.c:81
     drv_xmit_async net/mac802154/driver-ops.h:16 [inline]
     ieee802154_tx+0x282/0x480 net/mac802154/tx.c:81
     ieee802154_subif_start_xmit+0xbe/0xe4 net/mac802154/tx.c:130
     __netdev_start_xmit include/linux/netdevice.h:4634 [inline]
     netdev_start_xmit include/linux/netdevice.h:4648 [inline]
     dev_direct_xmit+0x4e9/0x6e0 net/core/dev.c:4203
     packet_snd net/packet/af_packet.c:2989 [inline]
     packet_sendmsg+0x2413/0x5290 net/packet/af_packet.c:3014
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:671
     ____sys_sendmsg+0x6e8/0x810 net/socket.c:2353
     ___sys_sendmsg+0xf3/0x170 net/socket.c:2407
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2440
     do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    The buggy address belongs to the object at ffff8880251a8c00
     which belongs to the cache skbuff_head_cache of size 224
    The buggy address is located 112 bytes inside of
     224-byte region [ffff8880251a8c00, ffff8880251a8ce0)
    The buggy address belongs to the page:
    page:0000000062b6a4f1 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x251a8
    flags: 0xfffe0000000200(slab)
    raw: 00fffe0000000200 ffffea0000435c88 ffffea00028b6c08 ffff8880a9055d00
    raw: 0000000000000000 ffff8880251a80c0 000000010000000c 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff8880251a8b00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff8880251a8b80: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc
    >ffff8880251a8c00: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                                                 ^
     ffff8880251a8c80: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc
     ffff8880251a8d00: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb
    
    Fixes: 409c3b0 ("mac802154: tx: move stats tx increment")
    Signed-off-by: Eric Dumazet <[email protected]>
    Reported-by: syzbot <[email protected]>
    Cc: Alexander Aring <[email protected]>
    Cc: Stefan Schmidt <[email protected]>
    Cc: [email protected]
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Stefan Schmidt <[email protected]>
    Eric Dumazet authored and Stefan-Schmidt committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    0ff4628 View commit details
    Browse the repository at this point in the history
  8. bpf: Fix clobbering of r2 in bpf_gen_ld_abs

    Bryce reported that he saw the following with:
    
      0:  r6 = r1
      1:  r1 = 12
      2:  r0 = *(u16 *)skb[r1]
    
    The xlated sequence was incorrectly clobbering r2 with pointer
    value of r6 ...
    
      0: (bf) r6 = r1
      1: (b7) r1 = 12
      2: (bf) r1 = r6
      3: (bf) r2 = r1
      4: (85) call bpf_skb_load_helper_16_no_cache#7692160
    
    ... and hence call to the load helper never succeeded given the
    offset was too high. Fix it by reordering the load of r6 to r1.
    
    Other than that the insn has similar calling convention than BPF
    helpers, that is, r0 - r5 are scratch regs, so nothing else
    affected after the insn.
    
    Fixes: e0cea7c ("bpf: implement ld_abs/ld_ind in native bpf")
    Reported-by: Bryce Kahle <[email protected]>
    Signed-off-by: Daniel Borkmann <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Link: https://lore.kernel.org/bpf/cace836e4d07bb63b1a53e49c5dfb238a040c298.1599512096.git.daniel@iogearbox.net
    borkmann authored and Alexei Starovoitov committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    e6a18d3 View commit details
    Browse the repository at this point in the history
  9. tools/libbpf: Avoid counting local symbols in ABI check

    Encountered the following failure building libbpf from kernel 5.8.5 sources
    with GCC 8.4.0 and binutils 2.34: (long paths shortened)
    
      Warning: Num of global symbols in sharedobjs/libbpf-in.o (234) does NOT
      match with num of versioned symbols in libbpf.so (236). Please make sure
      all LIBBPF_API symbols are versioned in libbpf.map.
      --- libbpf_global_syms.tmp    2020-09-02 07:30:58.920084380 +0000
      +++ libbpf_versioned_syms.tmp 2020-09-02 07:30:58.924084388 +0000
      @@ -1,3 +1,5 @@
      +_fini
      +_init
       bpf_btf_get_fd_by_id
       bpf_btf_get_next_id
       bpf_create_map
      make[4]: *** [Makefile:210: check_abi] Error 1
    
    Investigation shows _fini and _init are actually local symbols counted
    amongst global ones:
    
      $ readelf --dyn-syms --wide libbpf.so|head -10
    
      Symbol table '.dynsym' contains 343 entries:
         Num:    Value  Size Type    Bind   Vis      Ndx Name
           0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
           1: 00004098     0 SECTION LOCAL  DEFAULT   11
           2: 00004098     8 FUNC    LOCAL  DEFAULT   11 _init@@LIBBPF_0.0.1
           3: 00023040     8 FUNC    LOCAL  DEFAULT   14 _fini@@LIBBPF_0.0.1
           4: 00000000     0 OBJECT  GLOBAL DEFAULT  ABS LIBBPF_0.0.4
           5: 00000000     0 OBJECT  GLOBAL DEFAULT  ABS LIBBPF_0.0.1
           6: 0000ffa4     8 FUNC    GLOBAL DEFAULT   12 bpf_object__find_map_by_offset@@LIBBPF_0.0.1
    
    A previous commit filtered global symbols in sharedobjs/libbpf-in.o. Do the
    same with the libbpf.so DSO for consistent comparison.
    
    Fixes: 306b267 ("libbpf: Verify versioned symbols")
    Signed-off-by: Tony Ambardar <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Acked-by: Andrii Nakryiko <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    Tony Ambardar authored and Alexei Starovoitov committed Sep 8, 2020
    Configuration menu
    Copy the full SHA
    746f534 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2020

  1. net: dsa: link interfaces with the DSA master to get rid of lockdep w…

    …arnings
    
    Since commit 845e0eb ("net: change addr_list_lock back to static
    key"), cascaded DSA setups (DSA switch port as DSA master for another
    DSA switch port) are emitting this lockdep warning:
    
    ============================================
    WARNING: possible recursive locking detected
    5.8.0-rc1-00133-g923e4b5032dd-dirty #208 Not tainted
    --------------------------------------------
    dhcpcd/323 is trying to acquire lock:
    ffff000066dd4268 (&dsa_master_addr_list_lock_key/1){+...}-{2:2}, at: dev_mc_sync+0x44/0x90
    
    but task is already holding lock:
    ffff00006608c268 (&dsa_master_addr_list_lock_key/1){+...}-{2:2}, at: dev_mc_sync+0x44/0x90
    
    other info that might help us debug this:
     Possible unsafe locking scenario:
    
           CPU0
           ----
      lock(&dsa_master_addr_list_lock_key/1);
      lock(&dsa_master_addr_list_lock_key/1);
    
     *** DEADLOCK ***
    
     May be due to missing lock nesting notation
    
    3 locks held by dhcpcd/323:
     #0: ffffdbd1381dda18 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock+0x24/0x30
     #1: ffff00006614b268 (_xmit_ETHER){+...}-{2:2}, at: dev_set_rx_mode+0x28/0x48
     #2: ffff00006608c268 (&dsa_master_addr_list_lock_key/1){+...}-{2:2}, at: dev_mc_sync+0x44/0x90
    
    stack backtrace:
    Call trace:
     dump_backtrace+0x0/0x1e0
     show_stack+0x20/0x30
     dump_stack+0xec/0x158
     __lock_acquire+0xca0/0x2398
     lock_acquire+0xe8/0x440
     _raw_spin_lock_nested+0x64/0x90
     dev_mc_sync+0x44/0x90
     dsa_slave_set_rx_mode+0x34/0x50
     __dev_set_rx_mode+0x60/0xa0
     dev_mc_sync+0x84/0x90
     dsa_slave_set_rx_mode+0x34/0x50
     __dev_set_rx_mode+0x60/0xa0
     dev_set_rx_mode+0x30/0x48
     __dev_open+0x10c/0x180
     __dev_change_flags+0x170/0x1c8
     dev_change_flags+0x2c/0x70
     devinet_ioctl+0x774/0x878
     inet_ioctl+0x348/0x3b0
     sock_do_ioctl+0x50/0x310
     sock_ioctl+0x1f8/0x580
     ksys_ioctl+0xb0/0xf0
     __arm64_sys_ioctl+0x28/0x38
     el0_svc_common.constprop.0+0x7c/0x180
     do_el0_svc+0x2c/0x98
     el0_sync_handler+0x9c/0x1b8
     el0_sync+0x158/0x180
    
    Since DSA never made use of the netdev API for describing links between
    upper devices and lower devices, the dev->lower_level value of a DSA
    switch interface would be 1, which would warn when it is a DSA master.
    
    We can use netdev_upper_dev_link() to describe the relationship between
    a DSA slave and a DSA master. To be precise, a DSA "slave" (switch port)
    is an "upper" to a DSA "master" (host port). The relationship is "many
    uppers to one lower", like in the case of VLAN. So, for that reason, we
    use the same function as VLAN uses.
    
    There might be a chance that somebody will try to take hold of this
    interface and use it immediately after register_netdev() and before
    netdev_upper_dev_link(). To avoid that, we do the registration and
    linkage while holding the RTNL, and we use the RTNL-locked cousin of
    register_netdev(), which is register_netdevice().
    
    Since this warning was not there when lockdep was using dynamic keys for
    addr_list_lock, we are blaming the lockdep patch itself. The network
    stack _has_ been using static lockdep keys before, and it _is_ likely
    that stacked DSA setups have been triggering these lockdep warnings
    since forever, however I can't test very old kernels on this particular
    stacked DSA setup, to ensure I'm not in fact introducing regressions.
    
    Fixes: 845e0eb ("net: change addr_list_lock back to static key")
    Suggested-by: Cong Wang <[email protected]>
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    2f1e8ea View commit details
    Browse the repository at this point in the history
  2. ipv6: avoid lockdep issue in fib6_del()

    syzbot reported twice a lockdep issue in fib6_del() [1]
    which I think is caused by net->ipv6.fib6_null_entry
    having a NULL fib6_table pointer.
    
    fib6_del() already checks for fib6_null_entry special
    case, we only need to return earlier.
    
    Bug seems to occur very rarely, I have thus chosen
    a 'bug origin' that makes backports not too complex.
    
    [1]
    WARNING: suspicious RCU usage
    5.9.0-rc4-syzkaller #0 Not tainted
    -----------------------------
    net/ipv6/ip6_fib.c:1996 suspicious rcu_dereference_protected() usage!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    4 locks held by syz-executor.5/8095:
     #0: ffffffff8a7ea708 (rtnl_mutex){+.+.}-{3:3}, at: ppp_release+0x178/0x240 drivers/net/ppp/ppp_generic.c:401
     #1: ffff88804c422dd8 (&net->ipv6.fib6_gc_lock){+.-.}-{2:2}, at: spin_trylock_bh include/linux/spinlock.h:414 [inline]
     #1: ffff88804c422dd8 (&net->ipv6.fib6_gc_lock){+.-.}-{2:2}, at: fib6_run_gc+0x21b/0x2d0 net/ipv6/ip6_fib.c:2312
     #2: ffffffff89bd6a40 (rcu_read_lock){....}-{1:2}, at: __fib6_clean_all+0x0/0x290 net/ipv6/ip6_fib.c:2613
     #3: ffff8880a82e6430 (&tb->tb6_lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:359 [inline]
     #3: ffff8880a82e6430 (&tb->tb6_lock){+.-.}-{2:2}, at: __fib6_clean_all+0x107/0x290 net/ipv6/ip6_fib.c:2245
    
    stack backtrace:
    CPU: 1 PID: 8095 Comm: syz-executor.5 Not tainted 5.9.0-rc4-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x198/0x1fd lib/dump_stack.c:118
     fib6_del+0x12b4/0x1630 net/ipv6/ip6_fib.c:1996
     fib6_clean_node+0x39b/0x570 net/ipv6/ip6_fib.c:2180
     fib6_walk_continue+0x4aa/0x8e0 net/ipv6/ip6_fib.c:2102
     fib6_walk+0x182/0x370 net/ipv6/ip6_fib.c:2150
     fib6_clean_tree+0xdb/0x120 net/ipv6/ip6_fib.c:2230
     __fib6_clean_all+0x120/0x290 net/ipv6/ip6_fib.c:2246
     fib6_clean_all net/ipv6/ip6_fib.c:2257 [inline]
     fib6_run_gc+0x113/0x2d0 net/ipv6/ip6_fib.c:2320
     ndisc_netdev_event+0x217/0x350 net/ipv6/ndisc.c:1805
     notifier_call_chain+0xb5/0x200 kernel/notifier.c:83
     call_netdevice_notifiers_info+0xb5/0x130 net/core/dev.c:2033
     call_netdevice_notifiers_extack net/core/dev.c:2045 [inline]
     call_netdevice_notifiers net/core/dev.c:2059 [inline]
     dev_close_many+0x30b/0x650 net/core/dev.c:1634
     rollback_registered_many+0x3a8/0x1210 net/core/dev.c:9261
     rollback_registered net/core/dev.c:9329 [inline]
     unregister_netdevice_queue+0x2dd/0x570 net/core/dev.c:10410
     unregister_netdevice include/linux/netdevice.h:2774 [inline]
     ppp_release+0x216/0x240 drivers/net/ppp/ppp_generic.c:403
     __fput+0x285/0x920 fs/file_table.c:281
     task_work_run+0xdd/0x190 kernel/task_work.c:141
     tracehook_notify_resume include/linux/tracehook.h:188 [inline]
     exit_to_user_mode_loop kernel/entry/common.c:163 [inline]
     exit_to_user_mode_prepare+0x1e1/0x200 kernel/entry/common.c:190
     syscall_exit_to_user_mode+0x7e/0x2e0 kernel/entry/common.c:265
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 421842e ("net/ipv6: Add fib6_null_entry")
    Signed-off-by: Eric Dumazet <[email protected]>
    Cc: David Ahern <[email protected]>
    Reviewed-by: David Ahern <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Eric Dumazet authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    843d926 View commit details
    Browse the repository at this point in the history
  3. Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf

    Pablo Neira Ayuso says:
    
    ===================
    Netfilter fixes for net
    
    The following patchset contains Netfilter fixes for net:
    
    1) Allow conntrack entries with l3num == NFPROTO_IPV4 or == NFPROTO_IPV6
       only via ctnetlink, from Will McVicker.
    
    2) Batch notifications to userspace to improve netlink socket receive
       utilization.
    
    3) Restore mark based dump filtering via ctnetlink, from Martin Willi.
    
    4) nf_conncount_init() fails with -EPROTO with CONFIG_IPV6, from
       Eelco Chaudron.
    
    5) Containers fail to match on meta skuid and skgid, use socket user_ns
       to retrieve meta skuid and skgid.
    ===================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    2650be2 View commit details
    Browse the repository at this point in the history
  4. fib: fix fib_rule_ops indirect call wrappers when CONFIG_IPV6=m

    If CONFIG_IPV6=m, the IPV6 functions won't be found by the linker:
    
    ld: net/core/fib_rules.o: in function `fib_rules_lookup':
    fib_rules.c:(.text+0x606): undefined reference to `fib6_rule_match'
    ld: fib_rules.c:(.text+0x611): undefined reference to `fib6_rule_match'
    ld: fib_rules.c:(.text+0x68c): undefined reference to `fib6_rule_action'
    ld: fib_rules.c:(.text+0x693): undefined reference to `fib6_rule_action'
    ld: fib_rules.c:(.text+0x6aa): undefined reference to `fib6_rule_suppress'
    ld: fib_rules.c:(.text+0x6bc): undefined reference to `fib6_rule_suppress'
    make: *** [Makefile:1166: vmlinux] Error 1
    
    Reported-by: Sven Joachim <[email protected]>
    Fixes: b9aaec8 ("fib: use indirect call wrappers in the most common fib_rules_ops")
    Acked-by: Randy Dunlap <[email protected]> # build-tested
    Signed-off-by: Brian Vazquez <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Brian Vazquez authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    923f614 View commit details
    Browse the repository at this point in the history
  5. MAINTAINERS: remove John Allen from ibmvnic

    John's email has bounced and Thomas confirms he no longer
    works on ibmvnic.
    
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    kuba-moo authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    2a15498 View commit details
    Browse the repository at this point in the history
  6. Merge tag 'ieee802154-for-davem-2020-09-08' of git://git.kernel.org/p…

    …ub/scm/linux/kernel/git/sschmidt/wpan
    
    Stefan Schmidt says:
    
    ====================
    pull-request: ieee802154 for net 2020-09-08
    
    An update from ieee802154 for your *net* tree.
    
    A potential memory leak fix for ca8210 from Liu Jian,
    a check on the return for a register read in adf7242
    and finally a user after free fix in the softmac tx
    function from Eric found by syzkaller.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    6fd40d3 View commit details
    Browse the repository at this point in the history
  7. ip: fix tos reflection in ack and reset packets

    Currently, in tcp_v4_reqsk_send_ack() and tcp_v4_send_reset(), we
    echo the TOS value of the received packets in the response.
    However, we do not want to echo the lower 2 ECN bits in accordance
    with RFC 3168 6.1.5 robustness principles.
    
    Fixes: 1da177e ("Linux-2.6.12-rc2")
    
    Signed-off-by: Wei Wang <[email protected]>
    Signed-off-by: Eric Dumazet <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    tracywwnj authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    ba9e04a View commit details
    Browse the repository at this point in the history
  8. net: qrtr: check skb_put_padto() return value

    If skb_put_padto() returns an error, skb has been freed.
    Better not touch it anymore, as reported by syzbot [1]
    
    Note to qrtr maintainers : this suggests qrtr_sendmsg()
    should adjust sock_alloc_send_skb() second parameter
    to account for the potential added alignment to avoid
    reallocation.
    
    [1]
    
    BUG: KASAN: use-after-free in __skb_insert include/linux/skbuff.h:1907 [inline]
    BUG: KASAN: use-after-free in __skb_queue_before include/linux/skbuff.h:2016 [inline]
    BUG: KASAN: use-after-free in __skb_queue_tail include/linux/skbuff.h:2049 [inline]
    BUG: KASAN: use-after-free in skb_queue_tail+0x6b/0x120 net/core/skbuff.c:3146
    Write of size 8 at addr ffff88804d8ab3c0 by task syz-executor.4/4316
    
    CPU: 1 PID: 4316 Comm: syz-executor.4 Not tainted 5.9.0-rc4-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x1d6/0x29e lib/dump_stack.c:118
     print_address_description+0x66/0x620 mm/kasan/report.c:383
     __kasan_report mm/kasan/report.c:513 [inline]
     kasan_report+0x132/0x1d0 mm/kasan/report.c:530
     __skb_insert include/linux/skbuff.h:1907 [inline]
     __skb_queue_before include/linux/skbuff.h:2016 [inline]
     __skb_queue_tail include/linux/skbuff.h:2049 [inline]
     skb_queue_tail+0x6b/0x120 net/core/skbuff.c:3146
     qrtr_tun_send+0x1a/0x40 net/qrtr/tun.c:23
     qrtr_node_enqueue+0x44f/0xc00 net/qrtr/qrtr.c:364
     qrtr_bcast_enqueue+0xbe/0x140 net/qrtr/qrtr.c:861
     qrtr_sendmsg+0x680/0x9c0 net/qrtr/qrtr.c:960
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg net/socket.c:671 [inline]
     sock_write_iter+0x317/0x470 net/socket.c:998
     call_write_iter include/linux/fs.h:1882 [inline]
     new_sync_write fs/read_write.c:503 [inline]
     vfs_write+0xa96/0xd10 fs/read_write.c:578
     ksys_write+0x11b/0x220 fs/read_write.c:631
     do_syscall_64+0x31/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x45d5b9
    Code: 5d b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 2b b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007f84b5b81c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
    RAX: ffffffffffffffda RBX: 0000000000038b40 RCX: 000000000045d5b9
    RDX: 0000000000000055 RSI: 0000000020001240 RDI: 0000000000000003
    RBP: 00007f84b5b81ca0 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000000f
    R13: 00007ffcbbf86daf R14: 00007f84b5b829c0 R15: 000000000118cf4c
    
    Allocated by task 4316:
     kasan_save_stack mm/kasan/common.c:48 [inline]
     kasan_set_track mm/kasan/common.c:56 [inline]
     __kasan_kmalloc+0x100/0x130 mm/kasan/common.c:461
     slab_post_alloc_hook+0x3e/0x290 mm/slab.h:518
     slab_alloc mm/slab.c:3312 [inline]
     kmem_cache_alloc+0x1c1/0x2d0 mm/slab.c:3482
     skb_clone+0x1b2/0x370 net/core/skbuff.c:1449
     qrtr_bcast_enqueue+0x6d/0x140 net/qrtr/qrtr.c:857
     qrtr_sendmsg+0x680/0x9c0 net/qrtr/qrtr.c:960
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg net/socket.c:671 [inline]
     sock_write_iter+0x317/0x470 net/socket.c:998
     call_write_iter include/linux/fs.h:1882 [inline]
     new_sync_write fs/read_write.c:503 [inline]
     vfs_write+0xa96/0xd10 fs/read_write.c:578
     ksys_write+0x11b/0x220 fs/read_write.c:631
     do_syscall_64+0x31/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Freed by task 4316:
     kasan_save_stack mm/kasan/common.c:48 [inline]
     kasan_set_track+0x3d/0x70 mm/kasan/common.c:56
     kasan_set_free_info+0x17/0x30 mm/kasan/generic.c:355
     __kasan_slab_free+0xdd/0x110 mm/kasan/common.c:422
     __cache_free mm/slab.c:3418 [inline]
     kmem_cache_free+0x82/0xf0 mm/slab.c:3693
     __skb_pad+0x3f5/0x5a0 net/core/skbuff.c:1823
     __skb_put_padto include/linux/skbuff.h:3233 [inline]
     skb_put_padto include/linux/skbuff.h:3252 [inline]
     qrtr_node_enqueue+0x62f/0xc00 net/qrtr/qrtr.c:360
     qrtr_bcast_enqueue+0xbe/0x140 net/qrtr/qrtr.c:861
     qrtr_sendmsg+0x680/0x9c0 net/qrtr/qrtr.c:960
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg net/socket.c:671 [inline]
     sock_write_iter+0x317/0x470 net/socket.c:998
     call_write_iter include/linux/fs.h:1882 [inline]
     new_sync_write fs/read_write.c:503 [inline]
     vfs_write+0xa96/0xd10 fs/read_write.c:578
     ksys_write+0x11b/0x220 fs/read_write.c:631
     do_syscall_64+0x31/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    The buggy address belongs to the object at ffff88804d8ab3c0
     which belongs to the cache skbuff_head_cache of size 224
    The buggy address is located 0 bytes inside of
     224-byte region [ffff88804d8ab3c0, ffff88804d8ab4a0)
    The buggy address belongs to the page:
    page:00000000ea8cccfb refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff88804d8abb40 pfn:0x4d8ab
    flags: 0xfffe0000000200(slab)
    raw: 00fffe0000000200 ffffea0002237ec8 ffffea00029b3388 ffff88821bb66800
    raw: ffff88804d8abb40 ffff88804d8ab000 000000010000000b 0000000000000000
    page dumped because: kasan: bad access detected
    
    Fixes: ce57785 ("net: qrtr: fix len of skb_put_padto in qrtr_node_enqueue")
    Signed-off-by: Eric Dumazet <[email protected]>
    Reported-by: syzbot <[email protected]>
    Cc: Carl Huang <[email protected]>
    Cc: Wen Gong <[email protected]>
    Cc: Bjorn Andersson <[email protected]>
    Cc: Manivannan Sadhasivam <[email protected]>
    Acked-by: Manivannan Sadhasivam <[email protected]>
    Reviewed-by: Bjorn Andersson <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Eric Dumazet authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    3ca1a42 View commit details
    Browse the repository at this point in the history
  9. net: add __must_check to skb_put_padto()

    skb_put_padto() and __skb_put_padto() callers
    must check return values or risk use-after-free.
    
    Signed-off-by: Eric Dumazet <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Eric Dumazet authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    4a009cb View commit details
    Browse the repository at this point in the history
  10. Merge branch 'net-skb_put_padto-fixes'

    Eric Dumazet says:
    
    ====================
    net: skb_put_padto() fixes
    
    sysbot reported a bug in qrtr leading to use-after-free.
    
    First patch fixes the issue.
    
    Second patch addes __must_check attribute to avoid similar
    issues in the future.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    0ddaa27 View commit details
    Browse the repository at this point in the history
  11. hsr: avoid newline at end of message in NL_SET_ERR_MSG_MOD

    clean follow coccicheck warning:
    net//hsr/hsr_netlink.c:94:8-42: WARNING avoid newline at end of message
    in NL_SET_ERR_MSG_MOD
    net//hsr/hsr_netlink.c:87:30-57: WARNING avoid newline at end of message
    in NL_SET_ERR_MSG_MOD
    net//hsr/hsr_netlink.c:79:29-53: WARNING avoid newline at end of message
    in NL_SET_ERR_MSG_MOD
    
    Signed-off-by: Ye Bin <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Ye Bin authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    b87f9fe View commit details
    Browse the repository at this point in the history
  12. wireguard: noise: take lock when removing handshake entry from table

    Eric reported that syzkaller found a race of this variety:
    
    CPU 1                                       CPU 2
    -------------------------------------------|---------------------------------------
    wg_index_hashtable_replace(old, ...)       |
      if (hlist_unhashed(&old->index_hash))    |
                                               | wg_index_hashtable_remove(old)
                                               |   hlist_del_init_rcu(&old->index_hash)
    				           |     old->index_hash.pprev = NULL
      hlist_replace_rcu(&old->index_hash, ...) |
        *old->index_hash.pprev                 |
    
    Syzbot wasn't actually able to reproduce this more than once or create a
    reproducer, because the race window between checking "hlist_unhashed" and
    calling "hlist_replace_rcu" is just so small. Adding an mdelay(5) or
    similar there helps make this demonstrable using this simple script:
    
        #!/bin/bash
        set -ex
        trap 'kill $pid1; kill $pid2; ip link del wg0; ip link del wg1' EXIT
        ip link add wg0 type wireguard
        ip link add wg1 type wireguard
        wg set wg0 private-key <(wg genkey) listen-port 9999
        wg set wg1 private-key <(wg genkey) peer $(wg show wg0 public-key) endpoint 127.0.0.1:9999 persistent-keepalive 1
        wg set wg0 peer $(wg show wg1 public-key)
        ip link set wg0 up
        yes link set wg1 up | ip -force -batch - &
        pid1=$!
        yes link set wg1 down | ip -force -batch - &
        pid2=$!
        wait
    
    The fundumental underlying problem is that we permit calls to wg_index_
    hashtable_remove(handshake.entry) without requiring the caller to take
    the handshake mutex that is intended to protect members of handshake
    during mutations. This is consistently the case with calls to wg_index_
    hashtable_insert(handshake.entry) and wg_index_hashtable_replace(
    handshake.entry), but it's missing from a pertinent callsite of wg_
    index_hashtable_remove(handshake.entry). So, this patch makes sure that
    mutex is taken.
    
    The original code was a little bit funky though, in the form of:
    
        remove(handshake.entry)
        lock(), memzero(handshake.some_members), unlock()
        remove(handshake.entry)
    
    The original intention of that double removal pattern outside the lock
    appears to be some attempt to prevent insertions that might happen while
    locks are dropped during expensive crypto operations, but actually, all
    callers of wg_index_hashtable_insert(handshake.entry) take the write
    lock and then explicitly check handshake.state, as they should, which
    the aforementioned memzero clears, which means an insertion should
    already be impossible. And regardless, the original intention was
    necessarily racy, since it wasn't guaranteed that something else would
    run after the unlock() instead of after the remove(). So, from a
    soundness perspective, it seems positive to remove what looks like a
    hack at best.
    
    The crash from both syzbot and from the script above is as follows:
    
      general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
      KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
      CPU: 0 PID: 7395 Comm: kworker/0:3 Not tainted 5.9.0-rc4-syzkaller #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      Workqueue: wg-kex-wg1 wg_packet_handshake_receive_worker
      RIP: 0010:hlist_replace_rcu include/linux/rculist.h:505 [inline]
      RIP: 0010:wg_index_hashtable_replace+0x176/0x330 drivers/net/wireguard/peerlookup.c:174
      Code: 00 fc ff df 48 89 f9 48 c1 e9 03 80 3c 01 00 0f 85 44 01 00 00 48 b9 00 00 00 00 00 fc ff df 48 8b 45 10 48 89 c6 48 c1 ee 03 <80> 3c 0e 00 0f 85 06 01 00 00 48 85 d2 4c 89 28 74 47 e8 a3 4f b5
      RSP: 0018:ffffc90006a97bf8 EFLAGS: 00010246
      RAX: 0000000000000000 RBX: ffff888050ffc4f8 RCX: dffffc0000000000
      RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88808e04e010
      RBP: ffff88808e04e000 R08: 0000000000000001 R09: ffff8880543d0000
      R10: ffffed100a87a000 R11: 000000000000016e R12: ffff8880543d0000
      R13: ffff88808e04e008 R14: ffff888050ffc508 R15: ffff888050ffc500
      FS:  0000000000000000(0000) GS:ffff8880ae600000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00000000f5505db0 CR3: 0000000097cf7000 CR4: 00000000001526f0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
      wg_noise_handshake_begin_session+0x752/0xc9a drivers/net/wireguard/noise.c:820
      wg_receive_handshake_packet drivers/net/wireguard/receive.c:183 [inline]
      wg_packet_handshake_receive_worker+0x33b/0x730 drivers/net/wireguard/receive.c:220
      process_one_work+0x94c/0x1670 kernel/workqueue.c:2269
      worker_thread+0x64c/0x1120 kernel/workqueue.c:2415
      kthread+0x3b5/0x4a0 kernel/kthread.c:292
      ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294
    
    Reported-by: syzbot <[email protected]>
    Reported-by: Eric Dumazet <[email protected]>
    Link: https://lore.kernel.org/wireguard/[email protected]/
    Fixes: e7096c1 ("net: WireGuard secure network tunnel")
    Signed-off-by: Jason A. Donenfeld <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    zx2c4 authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    9179ba3 View commit details
    Browse the repository at this point in the history
  13. wireguard: peerlookup: take lock before checking hash in replace oper…

    …ation
    
    Eric's suggested fix for the previous commit's mentioned race condition
    was to simply take the table->lock in wg_index_hashtable_replace(). The
    table->lock of the hash table is supposed to protect the bucket heads,
    not the entires, but actually, since all the mutator functions are
    already taking it, it makes sense to take it too for the test to
    hlist_unhashed, as a defense in depth measure, so that it no longer
    races with deletions, regardless of what other locks are protecting
    individual entries. This is sensible from a performance perspective
    because, as Eric pointed out, the case of being unhashed is already the
    unlikely case, so this won't add common contention. And comparing
    instructions, this basically doesn't make much of a difference other
    than pushing and popping %r13, used by the new `bool ret`. More
    generally, I like the idea of locking consistency across table mutator
    functions, and this might let me rest slightly easier at night.
    
    Suggested-by: Eric Dumazet <[email protected]>
    Link: https://lore.kernel.org/wireguard/[email protected]/
    Fixes: e7096c1 ("net: WireGuard secure network tunnel")
    Signed-off-by: Jason A. Donenfeld <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    zx2c4 authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    6147f7b View commit details
    Browse the repository at this point in the history
  14. Merge branch 'wireguard-fixes'

    Jason A. Donenfeld says:
    
    ====================
    wireguard fixes for 5.9-rc5
    
    Yesterday, Eric reported a race condition found by syzbot. This series
    contains two commits, one that fixes the direct issue, and another that
    addresses the more general issue, as a defense in depth.
    
    1) The basic problem syzbot unearthed was that one particular mutation
       of handshake->entry was not protected by the handshake mutex like the
       other cases, so this patch basically just reorders a line to make
       sure the mutex is actually taken at the right point. Most of the work
       here went into making sure the race was fully understood and making a
       reproducer (which syzbot was unable to do itself, due to the rarity
       of the race).
    
    2) Eric's initial suggestion for fixing this was taking a spinlock
       around the hash table replace function where the null ptr deref was
       happening. This doesn't address the main problem in the most precise
       possible way like (1) does, but it is a good suggestion for
       defense-in-depth, in case related issues come up in the future, and
       basically costs nothing from a performance perspective. I thought it
       aided in implementing a good general rule: all mutators of that hash
       table take the table lock. So that's part of this series as a
       companion.
    
    Both of these contain Fixes: tags and are good candidates for stable.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    99dc4a5 View commit details
    Browse the repository at this point in the history
  15. Merge tag 'wireless-drivers-2020-09-09' of git://git.kernel.org/pub/s…

    …cm/linux/kernel/git/kvalo/wireless-drivers
    
    Kalle Valo says:
    
    ====================
    wireless-drivers fixes for v5.9
    
    First set of fixes for v5.9, small but important.
    
    brcmfmac
    
    * fix a throughput regression on bcm4329
    
    mt76
    
    * fix a regression with stations reconnecting on mt7616
    
    * properly free tx skbs, it was working by accident before
    
    mwifiex
    
    * fix a regression with 256 bit encryption keys
    
    wlcore
    
    * revert AES CMAC support as it caused a regression
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    a19454b View commit details
    Browse the repository at this point in the history
  16. net: qed: Disable aRFS for NPAR and 100G

    In CMT and NPAR the PF is unknown when the GFS block processes the
    packet. Therefore cannot use searcher as it has a per PF database,
    and thus ARFS must be disabled.
    
    Fixes: d51e4af ("qed: aRFS infrastructure support")
    Signed-off-by: Manish Chopra <[email protected]>
    Signed-off-by: Igor Russkikh <[email protected]>
    Signed-off-by: Michal Kalderon <[email protected]>
    Signed-off-by: Dmitry Bogdanov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    logost authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    2d2fe84 View commit details
    Browse the repository at this point in the history
  17. net: qede: Disable aRFS for NPAR and 100G

    In some configurations ARFS cannot be used, so disable it if device
    is not capable.
    
    Fixes: e4917d4 ("qede: Add aRFS support")
    Signed-off-by: Manish Chopra <[email protected]>
    Signed-off-by: Igor Russkikh <[email protected]>
    Signed-off-by: Michal Kalderon <[email protected]>
    Signed-off-by: Dmitry Bogdanov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    logost authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    0367f05 View commit details
    Browse the repository at this point in the history
  18. net: qed: RDMA personality shouldn't fail VF load

    Fix the assert during VF driver installation when the personality is iWARP
    
    Fixes: 1fe614d ("qed: Relax VF firmware requirements")
    Signed-off-by: Igor Russkikh <[email protected]>
    Signed-off-by: Michal Kalderon <[email protected]>
    Signed-off-by: Dmitry Bogdanov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    logost authored and davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    ce1cf9e View commit details
    Browse the repository at this point in the history
  19. Merge branch 'net-qed-disable-aRFS-in-NPAR-and-100G'

    Igor Russkikh says:
    
    ====================
    net: qed disable aRFS in NPAR and 100G
    
    This patchset fixes some recent issues found by customers.
    
    v3:
      resending on Dmitry's behalf
    
    v2:
      correct hash in Fixes tag
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    9b29e26 View commit details
    Browse the repository at this point in the history
  20. i40e: fix return of uninitialized aq_ret in i40e_set_vsi_promisc

    drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function ‘i40e_set_vsi_promisc’:
    drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:1176:14: error: ‘aq_ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
      i40e_status aq_ret;
    
    In case the code inside the if statement and the for loop does not get
    executed aq_ret will be uninitialized when the variable gets returned at
    the end of the function.
    
    Avoid this by changing num_vlans from int to u16, so aq_ret always gets
    set. Making this change in additional places as num_vlans should never
    be negative.
    
    Fixes: 37d318d ("i40e: Remove scheduling while atomic possibility")
    Signed-off-by: Stefan Assmann <[email protected]>
    Acked-by: Jakub Kicinski <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Tony Nguyen <[email protected]>
    sassmann authored and anguy11 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    e1e1b53 View commit details
    Browse the repository at this point in the history
  21. i40e: always propagate error value in i40e_set_vsi_promisc()

    The for loop in i40e_set_vsi_promisc() reports errors via dev_err() but
    does not propagate the error up the call chain. Instead it continues the
    loop and potentially overwrites the reported error value.
    This results in the error being recorded in the log buffer, but the
    caller might never know anything went the wrong way.
    
    To avoid this situation i40e_set_vsi_promisc() needs to temporarily store
    the error after reporting it. This is still not optimal as multiple
    different errors may occur, so store the first error and hope that's
    the main issue.
    
    Fixes: 37d318d (i40e: Remove scheduling while atomic possibility)
    Reported-by: Michal Schmidt <[email protected]>
    Signed-off-by: Stefan Assmann <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Tony Nguyen <[email protected]>
    sassmann authored and anguy11 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    b6f23d3 View commit details
    Browse the repository at this point in the history
  22. igc: Fix wrong timestamp latency numbers

    The previous timestamping latency numbers were obtained by
    interpolating the i210 numbers with the i225 crystal clock value. That
    calculation was wrong.
    
    Use the correct values from real measurements.
    
    Fixes: 81b0552 ("igc: Add support for RX timestamping")
    Signed-off-by: Vinicius Costa Gomes <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Tony Nguyen <[email protected]>
    vcgomes authored and anguy11 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    f03369b View commit details
    Browse the repository at this point in the history
  23. igc: Fix not considering the TX delay for timestamps

    When timestamping a packet there's a delay between the start of the
    packet and the point where the hardware actually captures the
    timestamp. This difference needs to be considered if we want accurate
    timestamps.
    
    This was done on the RX side, but not on the TX side.
    
    Fixes: 2c344ae ("igc: Add support for TX timestamping")
    Signed-off-by: Vinicius Costa Gomes <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Tony Nguyen <[email protected]>
    vcgomes authored and anguy11 committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    4406e97 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2020

  1. connector: Move maintainence under networking drivers umbrella.

    Evgeniy does not have the time nor capacity to maintain the
    connector subsystem any longer, so just move it under networking
    as that is effectively what has been happening lately.
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    46cf789 View commit details
    Browse the repository at this point in the history
  2. tipc: fix shutdown() of connection oriented socket

    I confirmed that the problem fixed by commit 2a63866 ("tipc: fix
    shutdown() of connectionless socket") also applies to stream socket.
    
    ----------
    #include <sys/socket.h>
    #include <unistd.h>
    #include <sys/wait.h>
    
    int main(int argc, char *argv[])
    {
            int fds[2] = { -1, -1 };
            socketpair(PF_TIPC, SOCK_STREAM /* or SOCK_DGRAM */, 0, fds);
            if (fork() == 0)
                    _exit(read(fds[0], NULL, 1));
            shutdown(fds[0], SHUT_RDWR); /* This must make read() return. */
            wait(NULL); /* To be woken up by _exit(). */
            return 0;
    }
    ----------
    
    Since shutdown(SHUT_RDWR) should affect all processes sharing that socket,
    unconditionally setting sk->sk_shutdown to SHUTDOWN_MASK will be the right
    behavior.
    
    Signed-off-by: Tetsuo Handa <[email protected]>
    Acked-by: Ying Xue <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Tetsuo Handa authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    a4b5cc9 View commit details
    Browse the repository at this point in the history
  3. mptcp: fix subflow's local_id issues

    In mptcp_pm_nl_get_local_id, skc_local is the same as msk_local, so it
    always return 0. Thus every subflow's local_id is 0. It's incorrect.
    
    This patch fixed this issue.
    
    Also, we need to ignore the zero address here, like 0.0.0.0 in IPv4. When
    we use the zero address as a local address, it means that we can use any
    one of the local addresses. The zero address is not a new address, we don't
    need to add it to PM, so this patch added a new function address_zero to
    check whether an address is the zero address, if it is, we ignore this
    address.
    
    Fixes: 01cacb0 ("mptcp: add netlink-based PM")
    Signed-off-by: Geliang Tang <[email protected]>
    Reviewed-by: Matthieu Baerts <[email protected]>
    Reported-by: kernel test robot <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    geliangtang authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    5702581 View commit details
    Browse the repository at this point in the history
  4. mptcp: fix subflow's remote_id issues

    This patch set the init remote_id to zero, otherwise it will be a random
    number.
    
    Then it added the missing subflow's remote_id setting code both in
    __mptcp_subflow_connect and in subflow_ulp_clone.
    
    Fixes: 01cacb0 ("mptcp: add netlink-based PM")
    Fixes: ec3edaa ("mptcp: Add handling of outgoing MP_JOIN requests")
    Fixes: f296234 ("mptcp: Add handling of incoming MP_JOIN requests")
    Signed-off-by: Geliang Tang <[email protected]>
    Reviewed-by: Matthieu Baerts <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    geliangtang authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    2ff0e56 View commit details
    Browse the repository at this point in the history
  5. Merge branch 'mptcp-fix-subflow-s-local_id-remote_id-issues'

    Geliang Tang says:
    
    ====================
    mptcp: fix subflow's local_id/remote_id issues
    
    v2:
     - add Fixes tags;
     - simply with 'return addresses_equal';
     - use 'reversed Xmas tree' way.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    d697f42 View commit details
    Browse the repository at this point in the history
  6. mptcp: fix kmalloc flag in mptcp_pm_nl_get_local_id

    mptcp_pm_nl_get_local_id may be called in interrupt context, so we need to
    use GFP_ATOMIC flag to allocate memory to avoid sleeping in atomic context.
    
    [  280.209809] BUG: sleeping function called from invalid context at mm/slab.h:498
    [  280.209812] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1680, name: kworker/1:3
    [  280.209814] INFO: lockdep is turned off.
    [  280.209816] CPU: 1 PID: 1680 Comm: kworker/1:3 Tainted: G        W         5.9.0-rc3-mptcp+ #146
    [  280.209818] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
    [  280.209820] Workqueue: events mptcp_worker
    [  280.209822] Call Trace:
    [  280.209824]  <IRQ>
    [  280.209826]  dump_stack+0x77/0xa0
    [  280.209829]  ___might_sleep.cold+0xa6/0xb6
    [  280.209832]  kmem_cache_alloc_trace+0x1d1/0x290
    [  280.209835]  mptcp_pm_nl_get_local_id+0x23c/0x410
    [  280.209840]  subflow_init_req+0x1e9/0x2ea
    [  280.209843]  ? inet_reqsk_alloc+0x1c/0x120
    [  280.209845]  ? kmem_cache_alloc+0x264/0x290
    [  280.209849]  tcp_conn_request+0x303/0xae0
    [  280.209854]  ? printk+0x53/0x6a
    [  280.209857]  ? tcp_rcv_state_process+0x28f/0x1374
    [  280.209859]  tcp_rcv_state_process+0x28f/0x1374
    [  280.209864]  ? tcp_v4_do_rcv+0xb3/0x1f0
    [  280.209866]  tcp_v4_do_rcv+0xb3/0x1f0
    [  280.209869]  tcp_v4_rcv+0xed6/0xfa0
    [  280.209873]  ip_protocol_deliver_rcu+0x28/0x270
    [  280.209875]  ip_local_deliver_finish+0x89/0x120
    [  280.209877]  ip_local_deliver+0x180/0x220
    [  280.209881]  ip_rcv+0x166/0x210
    [  280.209885]  __netif_receive_skb_one_core+0x82/0x90
    [  280.209888]  process_backlog+0xd6/0x230
    [  280.209891]  net_rx_action+0x13a/0x410
    [  280.209895]  __do_softirq+0xcf/0x468
    [  280.209899]  asm_call_on_stack+0x12/0x20
    [  280.209901]  </IRQ>
    [  280.209903]  ? ip_finish_output2+0x240/0x9a0
    [  280.209906]  do_softirq_own_stack+0x4d/0x60
    [  280.209908]  do_softirq.part.0+0x2b/0x60
    [  280.209911]  __local_bh_enable_ip+0x9a/0xa0
    [  280.209913]  ip_finish_output2+0x264/0x9a0
    [  280.209916]  ? rcu_read_lock_held+0x4d/0x60
    [  280.209920]  ? ip_output+0x7a/0x250
    [  280.209922]  ip_output+0x7a/0x250
    [  280.209925]  ? __ip_finish_output+0x330/0x330
    [  280.209928]  __ip_queue_xmit+0x1dc/0x5a0
    [  280.209931]  __tcp_transmit_skb+0xa0f/0xc70
    [  280.209937]  tcp_connect+0xb03/0xff0
    [  280.209939]  ? lockdep_hardirqs_on_prepare+0xe7/0x190
    [  280.209942]  ? ktime_get_with_offset+0x125/0x150
    [  280.209944]  ? trace_hardirqs_on+0x1c/0xe0
    [  280.209948]  tcp_v4_connect+0x449/0x550
    [  280.209953]  __inet_stream_connect+0xbb/0x320
    [  280.209955]  ? mark_held_locks+0x49/0x70
    [  280.209958]  ? lockdep_hardirqs_on_prepare+0xe7/0x190
    [  280.209960]  ? __local_bh_enable_ip+0x6b/0xa0
    [  280.209963]  inet_stream_connect+0x32/0x50
    [  280.209966]  __mptcp_subflow_connect+0x1fd/0x242
    [  280.209972]  mptcp_pm_create_subflow_or_signal_addr+0x2db/0x600
    [  280.209975]  mptcp_worker+0x543/0x7a0
    [  280.209980]  process_one_work+0x26d/0x5b0
    [  280.209984]  ? process_one_work+0x5b0/0x5b0
    [  280.209987]  worker_thread+0x48/0x3d0
    [  280.209990]  ? process_one_work+0x5b0/0x5b0
    [  280.209993]  kthread+0x117/0x150
    [  280.209996]  ? kthread_park+0x80/0x80
    [  280.209998]  ret_from_fork+0x22/0x30
    
    Fixes: 01cacb0 ("mptcp: add netlink-based PM")
    Signed-off-by: Geliang Tang <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    geliangtang authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    f612eb7 View commit details
    Browse the repository at this point in the history
  7. net: dsa: microchip: look for phy-mode in port nodes

    Documentation/devicetree/bindings/net/dsa/dsa.txt says that the phy-mode
    property should be specified on port nodes. However, the microchip
    drivers read it from the switch node.
    
    Let the driver use the per-port property and fall back to the old
    location with a warning.
    
    Fix in-tree users.
    
    Signed-off-by: Helmut Grohne <[email protected]>
    Link: https://lore.kernel.org/netdev/20200617082235.GA1523@laureti-dev/
    Acked-by: Alexandre Belloni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Helmut Grohne authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    edecfa9 View commit details
    Browse the repository at this point in the history
  8. net: sch_generic: aviod concurrent reset and enqueue op for lockless …

    …qdisc
    
    Currently there is concurrent reset and enqueue operation for the
    same lockless qdisc when there is no lock to synchronize the
    q->enqueue() in __dev_xmit_skb() with the qdisc reset operation in
    qdisc_deactivate() called by dev_deactivate_queue(), which may cause
    out-of-bounds access for priv->ring[] in hns3 driver if user has
    requested a smaller queue num when __dev_xmit_skb() still enqueue a
    skb with a larger queue_mapping after the corresponding qdisc is
    reset, and call hns3_nic_net_xmit() with that skb later.
    
    Reused the existing synchronize_net() in dev_deactivate_many() to
    make sure skb with larger queue_mapping enqueued to old qdisc(which
    is saved in dev_queue->qdisc_sleeping) will always be reset when
    dev_reset_queue() is called.
    
    Fixes: 6b3ba91 ("net: sched: allow qdiscs to handle locking")
    Signed-off-by: Yunsheng Lin <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Yunsheng Lin authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    2fb541c View commit details
    Browse the repository at this point in the history
  9. hv_netvsc: Switch the data path at the right time during hibernation

    When netvsc_resume() is called, the mlx5 VF NIC has not been resumed yet,
    so in the future the host might sliently fail the call netvsc_vf_changed()
    -> netvsc_switch_datapath() there, even if the call works now.
    
    Call netvsc_vf_changed() in the NETDEV_CHANGE event handler: at that time
    the mlx5 VF NIC has been resumed.
    
    Fixes: 19162fd ("hv_netvsc: Fix hibernation for mlx5 VF driver")
    Signed-off-by: Dexuan Cui <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    dcui authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    de214e5 View commit details
    Browse the repository at this point in the history
  10. hv_netvsc: Cache the current data path to avoid duplicate call and me…

    …ssage
    
    The previous change "hv_netvsc: Switch the data path at the right time
    during hibernation" adds the call of netvsc_vf_changed() upon
    NETDEV_CHANGE, so it's necessary to avoid the duplicate call and message
    when the VF is brought UP or DOWN.
    
    Signed-off-by: Dexuan Cui <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    dcui authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    da26658 View commit details
    Browse the repository at this point in the history
  11. net: phy: call phy_disable_interrupts() in phy_attach_direct() instead

    Since the micrel phy driver calls phy_init_hw() as a workaround,
    the commit 9886a4d ("net: phy: call phy_disable_interrupts()
    in phy_init_hw()") disables the interrupt unexpectedly. So,
    call phy_disable_interrupts() in phy_attach_direct() instead.
    Otherwise, the phy cannot link up after the ethernet cable was
    disconnected.
    
    Note that other drivers (like at803x.c) also calls phy_init_hw().
    So, perhaps, the driver caused a similar issue too.
    
    Fixes: 9886a4d ("net: phy: call phy_disable_interrupts() in phy_init_hw()")
    Signed-off-by: Yoshihiro Shimoda <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    shimoday authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    7d3ba93 View commit details
    Browse the repository at this point in the history
  12. hdlc_ppp: add range checks in ppp_cp_parse_cr()

    There are a couple bugs here:
    1) If opt[1] is zero then this results in a forever loop.  If the value
       is less than 2 then it is invalid.
    2) It assumes that "len" is more than sizeof(valid_accm) or 6 which can
       result in memory corruption.
    
    In the case of LCP_OPTION_ACCM, then  we should check "opt[1]" instead
    of "len" because, if "opt[1]" is less than sizeof(valid_accm) then
    "nak_len" gets out of sync and it can lead to memory corruption in the
    next iterations through the loop.  In case of LCP_OPTION_MAGIC, the
    only valid value for opt[1] is 6, but the code is trying to log invalid
    data so we should only discard the data when "len" is less than 6
    because that leads to a read overflow.
    
    Reported-by: ChenNan Of Chaitin Security Research Lab  <[email protected]>
    Fixes: e022c2f ("WAN: new synchronous PPP implementation for generic HDLC.")
    Signed-off-by: Dan Carpenter <[email protected]>
    Reviewed-by: Eric Dumazet <[email protected]>
    Reviewed-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Dan Carpenter authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    66d42ed View commit details
    Browse the repository at this point in the history
  13. net: Correct the comment of dst_dev_put()

    Since commit 8d7017f ("blackhole_netdev: use blackhole_netdev to
    invalidate dst entries"), we use blackhole_netdev to invalidate dst entries
    instead of loopback device anymore.
    
    Signed-off-by: Miaohe Lin <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    MiaoheLin authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    1be107d View commit details
    Browse the repository at this point in the history
  14. net: Fix broken NETIF_F_CSUM_MASK spell in netdev_features.h

    Remove the weird space inside the NETIF_F_CSUM_MASK.
    
    Signed-off-by: Miaohe Lin <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    MiaoheLin authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    83896b0 View commit details
    Browse the repository at this point in the history
  15. s390/qeth: delay draining the TX buffers

    Wait until the QDIO data connection is severed. Otherwise the device
    might still be processing the buffers, and end up accessing skb data
    that we already freed.
    
    Fixes: 8b5026b ("s390/qeth: fix qdio teardown after early init error")
    Signed-off-by: Julian Wiedmann <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    julianwiedmann authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    5bf490e View commit details
    Browse the repository at this point in the history
  16. net: mvneta: fix possible use-after-free in mvneta_xdp_put_buff

    Release first buffer as last one since it contains references
    to subsequent fragments. This code will be optimized introducing
    multi-buffer bit in xdp_buff structure.
    
    Fixes: ca0e014 ("net: mvneta: move skb build after descriptors processing")
    Signed-off-by: Lorenzo Bianconi <[email protected]>
    Acked-by: Jesper Dangaard Brouer <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    LorenzoBianconi authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    9d3b2d3 View commit details
    Browse the repository at this point in the history
  17. net: Fix bridge enslavement failure

    When a netdev is enslaved to a bridge, its parent identifier is queried.
    This is done so that packets that were already forwarded in hardware
    will not be forwarded again by the bridge device between netdevs
    belonging to the same hardware instance.
    
    The operation fails when the netdev is an upper of netdevs with
    different parent identifiers.
    
    Instead of failing the enslavement, have dev_get_port_parent_id() return
    '-EOPNOTSUPP' which will signal the bridge to skip the query operation.
    Other callers of the function are not affected by this change.
    
    Fixes: 7e1146e ("net: devlink: introduce devlink_compat_switch_id_get() helper")
    Signed-off-by: Ido Schimmel <[email protected]>
    Reported-by: Vasundhara Volam <[email protected]>
    Reviewed-by: Jiri Pirko <[email protected]>
    Reviewed-by: Nikolay Aleksandrov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    idosch authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    e1b9efe View commit details
    Browse the repository at this point in the history
  18. selftests: rtnetlink: Test bridge enslavement with different parent IDs

    Test that an upper device of netdevs with different parent IDs can be
    enslaved to a bridge.
    
    The test fails without previous commit.
    
    Signed-off-by: Ido Schimmel <[email protected]>
    Reviewed-by: Jiri Pirko <[email protected]>
    Reviewed-by: Nikolay Aleksandrov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    idosch authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    6374a56 View commit details
    Browse the repository at this point in the history
  19. Merge branch 'net-Fix-bridge-enslavement-failure'

    Ido Schimmel says:
    
    ====================
    net: Fix bridge enslavement failure
    
    Patch #1 fixes an issue in which an upper netdev cannot be enslaved to a
    bridge when it has multiple netdevs with different parent identifiers
    beneath it.
    
    Patch #2 adds a test case using two netdevsim instances.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    cdaa7a7 View commit details
    Browse the repository at this point in the history
  20. net: DCB: Validate DCB_ATTR_DCB_BUFFER argument

    The parameter passed via DCB_ATTR_DCB_BUFFER is a struct dcbnl_buffer. The
    field prio2buffer is an array of IEEE_8021Q_MAX_PRIORITIES bytes, where
    each value is a number of a buffer to direct that priority's traffic to.
    That value is however never validated to lie within the bounds set by
    DCBX_MAX_BUFFERS. The only driver that currently implements the callback is
    mlx5 (maintainers CCd), and that does not do any validation either, in
    particual allowing incorrect configuration if the prio2buffer value does
    not fit into 4 bits.
    
    Instead of offloading the need to validate the buffer index to drivers, do
    it right there in core, and bounce the request if the value is too large.
    
    CC: Parav Pandit <[email protected]>
    CC: Saeed Mahameed <[email protected]>
    Fixes: e549f6f ("net/dcb: Add dcbnl buffer attribute")
    Signed-off-by: Petr Machata <[email protected]>
    Reviewed-by: Ido Schimmel <[email protected]>
    Reviewed-by: Jiri Pirko <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    pmachata authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    297e77e View commit details
    Browse the repository at this point in the history
  21. netlink: fix doc about nlmsg_parse/nla_validate

    There is no @Validate argument.
    
    CC: Johannes Berg <[email protected]>
    Fixes: 3de6440 ("netlink: re-add parse/validate functions in strict mode")
    Signed-off-by: Nicolas Dichtel <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    NicolasDichtel authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    553d87b View commit details
    Browse the repository at this point in the history
  22. net: dec: de2104x: Increase receive ring size for Tulip

    Increase Rx ring size to address issue where hardware is reaching
    the receive work limit.
    
    Before:
    
    [  102.223342] de2104x 0000:17:00.0 eth0: rx work limit reached
    [  102.245695] de2104x 0000:17:00.0 eth0: rx work limit reached
    [  102.251387] de2104x 0000:17:00.0 eth0: rx work limit reached
    [  102.267444] de2104x 0000:17:00.0 eth0: rx work limit reached
    
    Signed-off-by: Lucy Yan <[email protected]>
    Reviewed-by: Moritz Fischer <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    lucydyan authored and davem330 committed Sep 10, 2020
    Configuration menu
    Copy the full SHA
    ee46041 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2020

  1. docs/bpf: Fix ringbuf documentation

    Remove link to litmus tests that didn't make it to upstream. Fix ringbuf
    benchmark link.
    
    I wasn't able to test this with `make htmldocs`, unfortunately, because of
    Sphinx dependencies. But bench_ringbufs.c path is certainly correct now.
    
    Fixes: 97abb2b ("docs/bpf: Add BPF ring buffer design notes")
    Reported-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Andrii Nakryiko <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    anakryiko authored and Alexei Starovoitov committed Sep 11, 2020
    Configuration menu
    Copy the full SHA
    fde6ded View commit details
    Browse the repository at this point in the history
  2. enetc: Fix mdio bus removal on PF probe bailout

    This is the correct resolution for the conflict from
    merging the "net" tree fix:
    commit 26cb708 ("enetc: Remove the mdio bus on PF probe bailout")
    with the "net-next" new work:
    commit 07095c0 ("net: enetc: Use DT protocol information to set up the ports")
    that moved mdio bus allocation to an ealier stage of
    the PF probing routine.
    
    Fixes: a57066b ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
    Signed-off-by: Claudiu Manoil <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    claudiu-m authored and davem330 committed Sep 11, 2020
    Configuration menu
    Copy the full SHA
    cdb0e6d View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2020

  1. Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/jkirsher/net-queue
    
    Tony Nguyen says:
    
    ====================
    Intel Wired LAN Driver Updates 2020-09-09
    
    This series contains updates to i40e and igc drivers.
    
    Stefan Assmann changes num_vlans to u16 to fix may be used uninitialized
    error and propagates error in i40_set_vsi_promisc() for i40e.
    
    Vinicius corrects timestamping latency values for i225 devices and
    accounts for TX timestamping delay for igc.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 12, 2020
    Configuration menu
    Copy the full SHA
    53467ec View commit details
    Browse the repository at this point in the history
  2. taprio: Fix allowing too small intervals

    It's possible that the user specifies an interval that couldn't allow
    any packet to be transmitted. This also avoids the issue of the
    hrtimer handler starving the other threads because it's running too
    often.
    
    The solution is to reject interval sizes that according to the current
    link speed wouldn't allow any packet to be transmitted.
    
    Reported-by: [email protected]
    Fixes: 5a781cc ("tc: Add support for configuring the taprio scheduler")
    Signed-off-by: Vinicius Costa Gomes <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vcgomes authored and davem330 committed Sep 12, 2020
    Configuration menu
    Copy the full SHA
    b5b73b2 View commit details
    Browse the repository at this point in the history
  3. hinic: fix rewaking txq after netif_tx_disable

    When calling hinic_close in hinic_set_channels, all queues are
    stopped after netif_tx_disable, but some queue may be rewaken in
    free_tx_poll by mistake while drv is handling tx irq. If one queue
    is rewaken core may call hinic_xmit_frame to send pkt after
    netif_tx_disable within a short time which may results in accessing
    memory that has been already freed in hinic_close. So we call
    napi_disable before netif_tx_disable in hinic_close to fix this bug.
    
    Fixes: 2eed5a8 ("hinic: add set_channels ethtool_ops support")
    Signed-off-by: Luo bin <[email protected]>
    Reviewed-by: Jakub Kicinski <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Luo bin authored and davem330 committed Sep 12, 2020
    Configuration menu
    Copy the full SHA
    a1b80e0 View commit details
    Browse the repository at this point in the history
  4. net: ipa: fix u32_replace_bits by u32p_xxx version

    Looks like u32p_replace_bits() should be used instead of
    u32_replace_bits() which does not modifies the value but returns the
    modified version.
    
    Fixes: 2b9feef ("soc: qcom: ipa: filter and routing tables")
    Signed-off-by: Vadym Kochan <[email protected]>
    Reviewed-by: Alex Elder <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vkochan-plv authored and davem330 committed Sep 12, 2020
    Configuration menu
    Copy the full SHA
    c047dc1 View commit details
    Browse the repository at this point in the history
  5. net: ethernet: ti: cpsw_new: fix suspend/resume

    Add missed suspend/resume callbacks to properly restore networking after
    suspend/resume cycle.
    
    Fixes: ed3525e ("net: ethernet: ti: introduce cpsw switchdev based driver part 1 - dual-emac")
    Signed-off-by: Grygorii Strashko <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    grygoriyS authored and davem330 committed Sep 12, 2020
    Configuration menu
    Copy the full SHA
    5760d9a View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2020

  1. io_uring: grab any needed state during defer prep

    Always grab work environment for deferred links. The assumption that we
    will be running it always from the task in question is false, as exiting
    tasks may mean that we're deferring this one to a thread helper. And at
    that point it's too late to grab the work environment.
    
    Fixes: debb85f ("io_uring: factor out grab_env() from defer_prep()")
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Sep 13, 2020
    Configuration menu
    Copy the full SHA
    202700e View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2020

  1. io_uring: drop 'ctx' ref on task work cancelation

    If task_work ends up being marked for cancelation, we go through a
    cancelation helper instead of the queue path. In converting task_work to
    always hold a ctx reference, this path was missed. Make sure that
    io_req_task_cancel() puts the reference that is being held against the
    ctx.
    
    Fixes: 6d816e0 ("io_uring: hold 'ctx' reference around task_work queue + execute")
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    87ceb6a View commit details
    Browse the repository at this point in the history
  2. io_uring: don't run task work on an exiting task

    This isn't safe, and isn't needed either. We are guaranteed that any
    work we queue is on a live task (and will be run), or it goes to
    our backup io-wq threads if the task is exiting.
    
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    6200b0a View commit details
    Browse the repository at this point in the history
  3. batman-adv: Add missing include for in_interrupt()

    The fix for receiving (internally generated) bla packets outside the
    interrupt context introduced the usage of in_interrupt(). But this
    functionality is only defined in linux/preempt.h which was not included
    with the same patch.
    
    Fixes: 279e89b ("batman-adv: bla: use netif_rx_ni when not in interrupt context")
    Signed-off-by: Sven Eckelmann <[email protected]>
    Signed-off-by: Simon Wunderlich <[email protected]>
    ecsv authored and simonwunderlich committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    4bba9da View commit details
    Browse the repository at this point in the history
  4. rndis_host: increase sleep time in the query-response loop

    Some WinCE devices face connectivity issues via the NDIS interface. They
    fail to register, resulting in -110 timeout errors and failures during the
    probe procedure.
    
    In this kind of WinCE devices, the Windows-side ndis driver needs quite
    more time to be loaded and configured, so that the linux rndis host queries
    to them fail to be responded correctly on time.
    
    More specifically, when INIT is called on the WinCE side - no other
    requests can be served by the Client and this results in a failed QUERY
    afterwards.
    
    The increase of the waiting time on the side of the linux rndis host in
    the command-response loop leaves the INIT process to complete and respond
    to a QUERY, which comes afterwards. The WinCE devices with this special
    "feature" in their ndis driver are satisfied by this fix.
    
    Signed-off-by: Olympia Giannou <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    doga22 authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    4202c9f View commit details
    Browse the repository at this point in the history
  5. net: lantiq: Wake TX queue again

    The call to netif_wake_queue() when the TX descriptors were freed was
    missing. When there are no TX buffers available the TX queue will be
    stopped, but it was not started again when they are available again,
    this is fixed in this patch.
    
    Fixes: fe1a564 ("net: lantiq: Add Lantiq / Intel VRX200 Ethernet driver")
    Signed-off-by: Hauke Mehrtens <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    hauke authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    dea3663 View commit details
    Browse the repository at this point in the history
  6. net: lantiq: use netif_tx_napi_add() for TX NAPI

    netif_tx_napi_add() should be used for NAPI in the TX direction instead
    of the netif_napi_add() function.
    
    Signed-off-by: Hauke Mehrtens <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    hauke authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    74c7b80 View commit details
    Browse the repository at this point in the history
  7. net: lantiq: Use napi_complete_done()

    Use napi_complete_done() and activate the interrupts when this function
    returns true. This way the generic NAPI code can take care of activating
    the interrupts.
    
    Signed-off-by: Hauke Mehrtens <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    hauke authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    c582a7f View commit details
    Browse the repository at this point in the history
  8. net: lantiq: Disable IRQs only if NAPI gets scheduled

    The napi_schedule() call will only schedule the NAPI if it is not
    already running. To make sure that we do not deactivate interrupts
    without scheduling NAPI only deactivate the interrupts in case NAPI also
    gets scheduled.
    
    Signed-off-by: Hauke Mehrtens <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    hauke authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    9423361 View commit details
    Browse the repository at this point in the history
  9. Merge branch 'net-lantiq-Fix-bugs-in-NAPI-handling'

    Hauke Mehrtens says:
    
    ====================
    net: lantiq: Fix bugs in NAPI handling
    
    This fixes multiple bugs in the NAPI handling.
    
    Changes since:
    v1:
     - removed stable tag from "net: lantiq: use netif_tx_napi_add() for TX NAPI"
     - Check the NAPI budged in "net: lantiq: Use napi_complete_done()"
     - Add extra fix "net: lantiq: Disable IRQs only if NAPI gets scheduled"
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    9d6e0c8 View commit details
    Browse the repository at this point in the history
  10. ipv4: Initialize flowi4_multipath_hash in data path

    flowi4_multipath_hash was added by the commit referenced below for
    tunnels. Unfortunately, the patch did not initialize the new field
    for several fast path lookups that do not initialize the entire flow
    struct to 0. Fix those locations. Currently, flowi4_multipath_hash
    is random garbage and affects the hash value computed by
    fib_multipath_hash for multipath selection.
    
    Fixes: 24ba144 ("route: Add multipath_hash in flowi_common to make user-define hash")
    Signed-off-by: David Ahern <[email protected]>
    Cc: wenxu <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    dsahern authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    1869e22 View commit details
    Browse the repository at this point in the history
  11. tipc: Fix memory leak in tipc_group_create_member()

    tipc_group_add_to_tree() returns silently if `key` matches `nkey` of an
    existing node, causing tipc_group_create_member() to leak memory. Let
    tipc_group_add_to_tree() return an error in such a case, so that
    tipc_group_create_member() can handle it properly.
    
    Fixes: 75da216 ("tipc: introduce communication groups")
    Reported-and-tested-by: [email protected]
    Cc: Hillf Danton <[email protected]>
    Link: https://syzkaller.appspot.com/bug?id=048390604fe1b60df34150265479202f10e13aff
    Signed-off-by: Peilin Ye <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    peilin-ye authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    bb3a420 View commit details
    Browse the repository at this point in the history
  12. tipc: use skb_unshare() instead in tipc_buf_append()

    In tipc_buf_append() it may change skb's frag_list, and it causes
    problems when this skb is cloned. skb_unclone() doesn't really
    make this skb's flag_list available to change.
    
    Shuang Li has reported an use-after-free issue because of this
    when creating quite a few macvlan dev over the same dev, where
    the broadcast packets will be cloned and go up to the stack:
    
     [ ] BUG: KASAN: use-after-free in pskb_expand_head+0x86d/0xea0
     [ ] Call Trace:
     [ ]  dump_stack+0x7c/0xb0
     [ ]  print_address_description.constprop.7+0x1a/0x220
     [ ]  kasan_report.cold.10+0x37/0x7c
     [ ]  check_memory_region+0x183/0x1e0
     [ ]  pskb_expand_head+0x86d/0xea0
     [ ]  process_backlog+0x1df/0x660
     [ ]  net_rx_action+0x3b4/0xc90
     [ ]
     [ ] Allocated by task 1786:
     [ ]  kmem_cache_alloc+0xbf/0x220
     [ ]  skb_clone+0x10a/0x300
     [ ]  macvlan_broadcast+0x2f6/0x590 [macvlan]
     [ ]  macvlan_process_broadcast+0x37c/0x516 [macvlan]
     [ ]  process_one_work+0x66a/0x1060
     [ ]  worker_thread+0x87/0xb10
     [ ]
     [ ] Freed by task 3253:
     [ ]  kmem_cache_free+0x82/0x2a0
     [ ]  skb_release_data+0x2c3/0x6e0
     [ ]  kfree_skb+0x78/0x1d0
     [ ]  tipc_recvmsg+0x3be/0xa40 [tipc]
    
    So fix it by using skb_unshare() instead, which would create a new
    skb for the cloned frag and it'll be safe to change its frag_list.
    The similar things were also done in sctp_make_reassembled_event(),
    which is using skb_copy().
    
    Reported-by: Shuang Li <[email protected]>
    Fixes: 37e2216 ("tipc: rename and move message reassembly function")
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    lxin authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    ff48b62 View commit details
    Browse the repository at this point in the history
  13. net: sched: only keep the available bits when setting vxlan md->gbp

    As we can see from vxlan_build/parse_gbp_hdr(), when processing metadata
    on vxlan rx/tx path, only dont_learn/policy_applied/policy_id fields can
    be set to or parse from the packet for vxlan gbp option.
    
    So we'd better do the mask when set it in act_tunnel_key and cls_flower.
    Otherwise, when users don't know these bits, they may configure with a
    value which can never be matched.
    
    Reported-by: Shuang Li <[email protected]>
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    lxin authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    13e6ce9 View commit details
    Browse the repository at this point in the history
  14. lwtunnel: only keep the available bits when setting vxlan md->gbp

    As we can see from vxlan_build/parse_gbp_hdr(), when processing metadata
    on vxlan rx/tx path, only dont_learn/policy_applied/policy_id fields can
    be set to or parse from the packet for vxlan gbp option.
    
    So do the mask when set it in lwtunnel, as it does in act_tunnel_key and
    cls_flower.
    
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    lxin authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    681d2cf View commit details
    Browse the repository at this point in the history
  15. Merge branch 'net-improve-vxlan-option-process-in-net_sched-and-lwtun…

    …nel'
    
    Xin Long says:
    
    ====================
    net: improve vxlan option process in net_sched and lwtunnel
    
    This patch is to do some mask when setting vxlan option in net_sched
    and lwtunnel, so that only available bits can be set on vxlan md gbp.
    
    This would help when users don't know exactly vxlan's gbp bits, and
    avoid some mismatch because of some unavailable bits set by users.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    ad7b27c View commit details
    Browse the repository at this point in the history
  16. net: sched: initialize with 0 before setting erspan md->u

    In fl_set_erspan_opt(), all bits of erspan md was set 1, as this
    function is also used to set opt MASK. However, when setting for
    md->u.index for opt VALUE, the rest bits of the union md->u will
    be left 1. It would cause to fail the match of the whole md when
    version is 1 and only index is set.
    
    This patch is to fix by initializing with 0 before setting erspan
    md->u.
    
    Reported-by: Shuang Li <[email protected]>
    Fixes: 79b1011 ("net: sched: allow flower to match erspan options")
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    lxin authored and davem330 committed Sep 14, 2020
    Configuration menu
    Copy the full SHA
    8e1b3ac View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2020

  1. xsk: Fix number of pinned pages/umem size discrepancy

    For AF_XDP sockets, there was a discrepancy between the number of of
    pinned pages and the size of the umem region.
    
    The size of the umem region is used to validate the AF_XDP descriptor
    addresses. The logic that pinned the pages covered by the region only
    took whole pages into consideration, creating a mismatch between the
    size and pinned pages. A user could then pass AF_XDP addresses outside
    the range of pinned pages, but still within the size of the region,
    crashing the kernel.
    
    This change correctly calculates the number of pages to be
    pinned. Further, the size check for the aligned mode is
    simplified. Now the code simply checks if the size is divisible by the
    chunk size.
    
    Fixes: bbff2f3 ("xsk: new descriptor addressing scheme")
    Reported-by: Ciara Loftus <[email protected]>
    Signed-off-by: Björn Töpel <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Tested-by: Ciara Loftus <[email protected]>
    Acked-by: Song Liu <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    Björn Töpel authored and Alexei Starovoitov committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    2b1667e View commit details
    Browse the repository at this point in the history
  2. s390/dasd: Fix zero write for FBA devices

    A discard request that writes zeros using the global kernel internal
    ZERO_PAGE will fail for machines with more than 2GB of memory due to the
    location of the ZERO_PAGE.
    
    Fix this by using a driver owned global zero page allocated with GFP_DMA
    flag set.
    
    Fixes: 28b841b ("s390/dasd: Add discard support for FBA devices")
    Signed-off-by: Jan Höppner <[email protected]>
    Reviewed-by: Stefan Haberland <[email protected]>
    Cc: <[email protected]> # 4.14+
    Signed-off-by: Jens Axboe <[email protected]>
    hoeppnerj authored and axboe committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    709192d View commit details
    Browse the repository at this point in the history
  3. docs/bpf: Remove source code links

    Make path to bench_ringbufs.c just a text, not a special link.
    
    Fixes: 97abb2b ("docs/bpf: Add BPF ring buffer design notes")
    Reported-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Andrii Nakryiko <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    anakryiko authored and Alexei Starovoitov committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    65dce59 View commit details
    Browse the repository at this point in the history
  4. nvme-pci: disable the write zeros command for Intel 600P/P3100

    The write zeros command does not work with 4k range.
    
    bash-4.4# ./blkdiscard /dev/nvme0n1p2
    bash-4.4# strace -efallocate xfs_io -c "fzero 536895488 2048" /dev/nvme0n1p2
    fallocate(3, FALLOC_FL_ZERO_RANGE, 536895488, 2048) = 0
    +++ exited with 0 +++
    bash-4.4# dd bs=1 if=/dev/nvme0n1p2 skip=536895488 count=512 | hexdump -C
    00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    00000200
    
    bash-4.4# ./blkdiscard /dev/nvme0n1p2
    bash-4.4# strace -efallocate xfs_io -c "fzero 536895488 4096" /dev/nvme0n1p2
    fallocate(3, FALLOC_FL_ZERO_RANGE, 536895488, 4096) = 0
    +++ exited with 0 +++
    bash-4.4# dd bs=1 if=/dev/nvme0n1p2 skip=536895488 count=512 | hexdump -C
    00000000  5c 61 5c b0 96 21 1b 5e  85 0c 07 32 9c 8c eb 3c  |\a\..!.^...2...<|
    00000010  4a a2 06 ca 67 15 2d 8e  29 8d a8 a0 7e 46 8c 62  |J...g.-.)...~F.b|
    00000020  bb 4c 6c c1 6b f5 ae a5  e4 a9 bc 93 4f 60 ff 7a  |.Ll.k.......O`.z|
    
    Reported-by: Eric Sandeen <[email protected]>
    Signed-off-by: David Milburn <[email protected]>
    Tested-by: Eric Sandeen <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    David Milburn authored and Christoph Hellwig committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    ce4cc31 View commit details
    Browse the repository at this point in the history
  5. nvme-tcp: fix kconfig dependency warning when !CRYPTO

    When NVME_TCP is enabled and CRYPTO is disabled, it results in the
    following Kbuild warning:
    
    WARNING: unmet direct dependencies detected for CRYPTO_CRC32C
      Depends on [n]: CRYPTO [=n]
      Selected by [y]:
      - NVME_TCP [=y] && INET [=y] && BLK_DEV_NVME [=y]
    
    The reason is that NVME_TCP selects CRYPTO_CRC32C without depending on or
    selecting CRYPTO while CRYPTO_CRC32C is subordinate to CRYPTO.
    
    Honor the kconfig menu hierarchy to remove kconfig dependency warnings.
    
    Fixes: 79fd751 ("nvme: tcp: selects CRYPTO_CRC32C for nvme-tcp")
    Signed-off-by: Necip Fazil Yildiran <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    necipfazil authored and Christoph Hellwig committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    af5ad17 View commit details
    Browse the repository at this point in the history
  6. batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN

    Scenario:
    * Multicast frame send from a BLA backbone (multiple nodes with
      their bat0 bridged together, with BLA enabled)
    
    Issue:
    * BLA backbone nodes receive the frame multiple times on bat0
    
    For multicast frames received via batman-adv broadcast packets the
    originator of the broadcast packet is checked before decapsulating and
    forwarding the frame to bat0 (batadv_bla_is_backbone_gw()->
    batadv_recv_bcast_packet()). If it came from a node which shares the
    same BLA backbone with us then it is not forwarded to bat0 to avoid a
    loop.
    
    When sending a multicast frame in a non-4-address batman-adv unicast
    packet we are currently missing this check - and cannot do so because
    the batman-adv unicast packet has no originator address field.
    
    However, we can simply fix this on the sender side by only sending the
    multicast frame via unicasts to interested nodes which do not share the
    same BLA backbone with us. This also nicely avoids some unnecessary
    transmissions on mesh side.
    
    Note that no infinite loop was observed, probably because of dropping
    via batadv_interface_tx()->batadv_bla_tx(). However the duplicates still
    utterly confuse switches/bridges, ICMPv6 duplicate address detection and
    neighbor discovery and therefore leads to long delays before being able
    to establish TCP connections, for instance. And it also leads to the Linux
    bridge printing messages like:
    "br-lan: received packet on eth1 with own address as source address ..."
    
    Fixes: 2d3f6cc ("batman-adv: Modified forwarding behaviour for multicast packets")
    Signed-off-by: Linus Lüssing <[email protected]>
    Signed-off-by: Sven Eckelmann <[email protected]>
    Signed-off-by: Simon Wunderlich <[email protected]>
    T-X authored and simonwunderlich committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    3236d21 View commit details
    Browse the repository at this point in the history
  7. batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh

    Scenario:
    * Multicast frame send from mesh to a BLA backbone (multiple nodes
      with their bat0 bridged together, with BLA enabled)
    
    Issue:
    * BLA backbone nodes receive the frame multiple times on bat0,
      once from mesh->bat0 and once from each backbone_gw from LAN
    
    For unicast, a node will send only to the best backbone gateway
    according to the TQ. However for multicast we currently cannot determine
    if multiple destination nodes share the same backbone if they don't share
    the same backbone with us. So we need to keep sending the unicasts to
    all backbone gateways and let the backbone gateways decide which one
    will forward the frame. We can use the CLAIM mechanism to make this
    decision.
    
    One catch: The batman-adv gateway feature for DHCP packets potentially
    sends multicast packets in the same batman-adv unicast header as the
    multicast optimizations code. And we are not allowed to drop those even
    if we did not claim the source address of the sender, as for such
    packets there is only this one multicast-in-unicast packet.
    
    How can we distinguish the two cases?
    
    The gateway feature uses a batman-adv unicast 4 address header. While
    the multicast-to-unicasts feature uses a simple, 3 address batman-adv
    unicast header. So let's use this to distinguish.
    
    Fixes: fe2da6f ("batman-adv: check incoming packet type for bla")
    Signed-off-by: Linus Lüssing <[email protected]>
    Signed-off-by: Sven Eckelmann <[email protected]>
    Signed-off-by: Simon Wunderlich <[email protected]>
    T-X authored and simonwunderlich committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    74c09b7 View commit details
    Browse the repository at this point in the history
  8. batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh

    Scenario:
    * Multicast frame send from BLA backbone gateways (multiple nodes
      with their bat0 bridged together, with BLA enabled) sharing the same
      LAN to nodes in the mesh
    
    Issue:
    * Nodes receive the frame multiple times on bat0 from the mesh,
      once from each foreign BLA backbone gateway which shares the same LAN
      with another
    
    For multicast frames via batman-adv broadcast packets coming from the
    same BLA backbone but from different backbone gateways duplicates are
    currently detected via a CRC history of previously received packets.
    
    However this CRC so far was not performed for multicast frames received
    via batman-adv unicast packets. Fixing this by appyling the same check
    for such packets, too.
    
    Room for improvements in the future: Ideally we would introduce the
    possibility to not only claim a client, but a complete originator, too.
    This would allow us to only send a multicast-in-unicast packet from a BLA
    backbone gateway claiming the node and by that avoid potential redundant
    transmissions in the first place.
    
    Fixes: 279e89b ("batman-adv: add broadcast duplicate check")
    Signed-off-by: Linus Lüssing <[email protected]>
    Signed-off-by: Sven Eckelmann <[email protected]>
    Signed-off-by: Simon Wunderlich <[email protected]>
    T-X authored and simonwunderlich committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    2369e82 View commit details
    Browse the repository at this point in the history
  9. ibmvnic: update MAINTAINERS

    Update supporters for IBM Power SRIOV Virtual NIC Device Driver.
    Thomas Falcon is moving on to other works. Dany Madden, Lijun Pan
    and Sukadev Bhattiprolu are the current supporters.
    
    Signed-off-by: Dany Madden <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Dany Madden authored and davem330 committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    d3f2ef1 View commit details
    Browse the repository at this point in the history
  10. net: tipc: kerneldoc fixes

    Fix parameter description of tipc_link_bc_create()
    
    Reported-by: Hulk Robot <[email protected]>
    Fixes: 16ad3f4 ("tipc: introduce variable window congestion control")
    Signed-off-by: Lu Wei <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Lu Wei authored and davem330 committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    2e5117b View commit details
    Browse the repository at this point in the history
  11. ipv4: Update exception handling for multipath routes via same device

    Kfir reported that pmtu exceptions are not created properly for
    deployments where multipath routes use the same device.
    
    After some digging I see 2 compounding problems:
    1. ip_route_output_key_hash_rcu is updating the flowi4_oif *after*
       the route lookup. This is the second use case where this has
       been a problem (the first is related to use of vti devices with
       VRF). I can not find any reason for the oif to be changed after the
       lookup; the code goes back to the start of git. It does not seem
       logical so remove it.
    
    2. fib_lookups for exceptions do not call fib_select_path to handle
       multipath route selection based on the hash.
    
    The end result is that the fib_lookup used to add the exception
    always creates it based using the first leg of the route.
    
    An example topology showing the problem:
    
                     |  host1
                 +------+
                 | eth0 |  .209
                 +------+
                     |
                 +------+
         switch  | br0  |
                 +------+
                     |
           +---------+---------+
           | host2             |  host3
       +------+             +------+
       | eth0 | .250        | eth0 | 192.168.252.252
       +------+             +------+
    
       +-----+             +-----+
       | vti | .2          | vti | 192.168.247.3
       +-----+             +-----+
           \                  /
     =================================
     tunnels
             192.168.247.1/24
    
    for h in host1 host2 host3; do
            ip netns add ${h}
            ip -netns ${h} link set lo up
            ip netns exec ${h} sysctl -wq net.ipv4.ip_forward=1
    done
    
    ip netns add switch
    ip -netns switch li set lo up
    ip -netns switch link add br0 type bridge stp 0
    ip -netns switch link set br0 up
    
    for n in 1 2 3; do
            ip -netns switch link add eth-sw type veth peer name eth-h${n}
            ip -netns switch li set eth-h${n} master br0 up
            ip -netns switch li set eth-sw netns host${n} name eth0
    done
    
    ip -netns host1 addr add 192.168.252.209/24 dev eth0
    ip -netns host1 link set dev eth0 up
    ip -netns host1 route add 192.168.247.0/24 \
            nexthop via 192.168.252.250 dev eth0 nexthop via 192.168.252.252 dev eth0
    
    ip -netns host2 addr add 192.168.252.250/24 dev eth0
    ip -netns host2 link set dev eth0 up
    
    ip -netns host2 addr add 192.168.252.252/24 dev eth0
    ip -netns host3 link set dev eth0 up
    
    ip netns add tunnel
    ip -netns tunnel li set lo up
    ip -netns tunnel li add br0 type bridge
    ip -netns tunnel li set br0 up
    for n in $(seq 11 20); do
            ip -netns tunnel addr add dev br0 192.168.247.${n}/24
    done
    
    for n in 2 3
    do
            ip -netns tunnel link add vti${n} type veth peer name eth${n}
            ip -netns tunnel link set eth${n} mtu 1360 master br0 up
            ip -netns tunnel link set vti${n} netns host${n} mtu 1360 up
            ip -netns host${n} addr add dev vti${n} 192.168.247.${n}/24
    done
    ip -netns tunnel ro add default nexthop via 192.168.247.2 nexthop via 192.168.247.3
    
    ip netns exec host1 ping -M do -s 1400 -c3 -I 192.168.252.209 192.168.247.11
    ip netns exec host1 ping -M do -s 1400 -c3 -I 192.168.252.209 192.168.247.15
    ip -netns host1 ro ls cache
    
    Before this patch the cache always shows exceptions against the first
    leg in the multipath route; 192.168.252.250 per this example. Since the
    hash has an initial random seed, you may need to vary the final octet
    more than what is listed. In my tests, using addresses between 11 and 19
    usually found 1 that used both legs.
    
    With this patch, the cache will have exceptions for both legs.
    
    Fixes: 4895c77 ("ipv4: Add FIB nexthop exceptions")
    Reported-by: Kfir Itzhak <[email protected]>
    Signed-off-by: David Ahern <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    dsahern authored and davem330 committed Sep 15, 2020
    Configuration menu
    Copy the full SHA
    2fbc6e8 View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2020

  1. bpf: Bpf_skc_to_* casting helpers require a NULL check on sk

    The bpf_skc_to_* type casting helpers are available to
    BPF_PROG_TYPE_TRACING.  The traced PTR_TO_BTF_ID may be NULL.
    For example, the skb->sk may be NULL.  Thus, these casting helpers
    need to check "!sk" also and this patch fixes them.
    
    Fixes: 0d4fad3 ("bpf: Add bpf_skc_to_udp6_sock() helper")
    Fixes: 478cfbd ("bpf: Add bpf_skc_to_{tcp, tcp_timewait, tcp_request}_sock() helpers")
    Fixes: af7ec13 ("bpf: Add bpf_skc_to_tcp6_sock() helper")
    Signed-off-by: Martin KaFai Lau <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Acked-by: Yonghong Song <[email protected]>
    Acked-by: Song Liu <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    iamkafai authored and Alexei Starovoitov committed Sep 16, 2020
    Configuration menu
    Copy the full SHA
    8c33dad View commit details
    Browse the repository at this point in the history
  2. bpf: Fix a rcu warning for bpffs map pretty-print

    Running selftest
      ./btf_btf -p
    the kernel had the following warning:
      [   51.528185] WARNING: CPU: 3 PID: 1756 at kernel/bpf/hashtab.c:717 htab_map_get_next_key+0x2eb/0x300
      [   51.529217] Modules linked in:
      [   51.529583] CPU: 3 PID: 1756 Comm: test_btf Not tainted 5.9.0-rc1+ #878
      [   51.530346] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-1.el7.centos 04/01/2014
      [   51.531410] RIP: 0010:htab_map_get_next_key+0x2eb/0x300
      ...
      [   51.542826] Call Trace:
      [   51.543119]  map_seq_next+0x53/0x80
      [   51.543528]  seq_read+0x263/0x400
      [   51.543932]  vfs_read+0xad/0x1c0
      [   51.544311]  ksys_read+0x5f/0xe0
      [   51.544689]  do_syscall_64+0x33/0x40
      [   51.545116]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    The related source code in kernel/bpf/hashtab.c:
      709 static int htab_map_get_next_key(struct bpf_map *map, void *key, void *next_key)
      710 {
      711         struct bpf_htab *htab = container_of(map, struct bpf_htab, map);
      712         struct hlist_nulls_head *head;
      713         struct htab_elem *l, *next_l;
      714         u32 hash, key_size;
      715         int i = 0;
      716
      717         WARN_ON_ONCE(!rcu_read_lock_held());
    
    In kernel/bpf/inode.c, bpffs map pretty print calls map->ops->map_get_next_key()
    without holding a rcu_read_lock(), hence causing the above warning.
    To fix the issue, just surrounding map->ops->map_get_next_key() with rcu read lock.
    
    Fixes: a26ca7c ("bpf: btf: Add pretty print support to the basic arraymap")
    Reported-by: Alexei Starovoitov <[email protected]>
    Signed-off-by: Yonghong Song <[email protected]>
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Acked-by: Andrii Nakryiko <[email protected]>
    Cc: Martin KaFai Lau <[email protected]>
    Link: https://lore.kernel.org/bpf/[email protected]
    yonghong-song authored and Alexei Starovoitov committed Sep 16, 2020
    Configuration menu
    Copy the full SHA
    ce880cb View commit details
    Browse the repository at this point in the history
  3. Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf

    Alexei Starovoitov says:
    
    ====================
    pull-request: bpf 2020-09-15
    
    The following pull-request contains BPF updates for your *net* tree.
    
    We've added 12 non-merge commits during the last 19 day(s) which contain
    a total of 10 files changed, 47 insertions(+), 38 deletions(-).
    
    The main changes are:
    
    1) docs/bpf fixes, from Andrii.
    
    2) ld_abs fix, from Daniel.
    
    3) socket casting helpers fix, from Martin.
    
    4) hash iterator fixes, from Yonghong.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 16, 2020
    Configuration menu
    Copy the full SHA
    d5d325e View commit details
    Browse the repository at this point in the history
  4. fs: fix cast in fsparam_u32hex() macro

    Signed-off-by: Alexey Dobriyan <[email protected]>
    Signed-off-by: Al Viro <[email protected]>
    Alexey Dobriyan authored and Al Viro committed Sep 16, 2020
    Configuration menu
    Copy the full SHA
    ffbc3dd View commit details
    Browse the repository at this point in the history

Commits on Sep 17, 2020

  1. net: hns: kerneldoc fixes

    Fix some parameter description or spelling mistakes.
    
    Signed-off-by: Lu Wei <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Lu Wei authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    5f1ab0f View commit details
    Browse the repository at this point in the history
  2. geneve: add transport ports in route lookup for geneve

    This patch adds transport ports information for route lookup so that
    IPsec can select Geneve tunnel traffic to do encryption. This is
    needed for OVS/OVN IPsec with encrypted Geneve tunnels.
    
    This can be tested by configuring a host-host VPN using an IKE
    daemon and specifying port numbers. For example, for an
    Openswan-type configuration, the following parameters should be
    configured on both hosts and IPsec set up as-per normal:
    
    $ cat /etc/ipsec.conf
    
    conn in
    ...
    left=$IP1
    right=$IP2
    ...
    leftprotoport=udp/6081
    rightprotoport=udp
    ...
    conn out
    ...
    left=$IP1
    right=$IP2
    ...
    leftprotoport=udp
    rightprotoport=udp/6081
    ...
    
    The tunnel can then be setup using "ip" on both hosts (but
    changing the relevant IP addresses):
    
    $ ip link add tun type geneve id 1000 remote $IP2
    $ ip addr add 192.168.0.1/24 dev tun
    $ ip link set tun up
    
    This can then be tested by pinging from $IP1:
    
    $ ping 192.168.0.2
    
    Without this patch the traffic is unencrypted on the wire.
    
    Fixes: 2d07dc7 ("geneve: add initial netdev driver for GENEVE tunnels")
    Signed-off-by: Qiuyu Xiao <[email protected]>
    Signed-off-by: Mark Gray <[email protected]>
    Reviewed-by: Greg Rose <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    markdgray authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    34beb21 View commit details
    Browse the repository at this point in the history
  3. net: dsa: microchip: ksz8795: really set the correct number of ports

    The KSZ9477 and KSZ8795 use the port_cnt field differently: For the
    KSZ9477, it includes the CPU port(s), while for the KSZ8795, it doesn't.
    
    It would be a good cleanup to make the handling of both drivers match,
    but as a first step, fix the recently broken assignment of num_ports in
    the KSZ8795 driver (which completely broke probing, as the CPU port
    index was always failing the num_ports check).
    
    Fixes: af199a1 ("net: dsa: microchip: set the correct number of ports")
    Signed-off-by: Matthias Schiffer <[email protected]>
    Reviewed-by: Codrin Ciubotariu <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    tq-schifferm authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    fd944dc View commit details
    Browse the repository at this point in the history
  4. nvme-core: get/put ctrl and transport module in nvme_dev_open/release()

    Get and put the reference to the ctrl in the nvme_dev_open() and
    nvme_dev_release() before and after module get/put for ctrl in char
    device file operations.
    
    Introduce char_dev relase function, get/put the controller and module
    which allows us to fix the potential Oops which can be easily reproduced
    with a passthru ctrl (although the problem also exists with pure user
    access):
    
    Entering kdb (current=0xffff8887f8290000, pid 3128) on processor 30 Oops: (null)
    due to oops @ 0xffffffffa01019ad
    CPU: 30 PID: 3128 Comm: bash Tainted: G        W  OE     5.8.0-rc4nvme-5.9+ #35
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.4
    RIP: 0010:nvme_free_ctrl+0x234/0x285 [nvme_core]
    Code: 57 10 a0 e8 73 bf 02 e1 ba 3d 11 00 00 48 c7 c6 98 33 10 a0 48 c7 c7 1d 57 10 a0 e8 5b bf 02 e1 8
    RSP: 0018:ffffc90001d63de0 EFLAGS: 00010246
    RAX: ffffffffa05c0440 RBX: ffff8888119e45a0 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: ffff8888177e9550 RDI: ffff8888119e43b0
    RBP: ffff8887d4768000 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: ffffc90001d63c90 R12: ffff8888119e43b0
    R13: ffff8888119e5108 R14: dead000000000100 R15: ffff8888119e5108
    FS:  00007f1ef27b0740(0000) GS:ffff888817600000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: ffffffffa05c0470 CR3: 00000007f6bee000 CR4: 00000000003406e0
    Call Trace:
     device_release+0x27/0x80
     kobject_put+0x98/0x170
     nvmet_passthru_ctrl_disable+0x4a/0x70 [nvmet]
     nvmet_passthru_enable_store+0x4c/0x90 [nvmet]
     configfs_write_file+0xe6/0x150
     vfs_write+0xba/0x1e0
     ksys_write+0x5f/0xe0
     do_syscall_64+0x52/0xb0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x7f1ef1eb2840
    Code: Bad RIP value.
    RSP: 002b:00007fffdbff0eb8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
    RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f1ef1eb2840
    RDX: 0000000000000002 RSI: 00007f1ef27d2000 RDI: 0000000000000001
    RBP: 00007f1ef27d2000 R08: 000000000000000a R09: 00007f1ef27b0740
    R10: 0000000000000001 R11: 0000000000000246 R12: 00007f1ef2186400
    R13: 0000000000000002 R14: 0000000000000001 R15: 0000000000000000
    
    With this patch fix we take the module ref count in nvme_dev_open() and
    release that ref count in newly introduced nvme_dev_release().
    
    Signed-off-by: Chaitanya Kulkarni <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    ChaitanayaKulkarni authored and Christoph Hellwig committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    52a3974 View commit details
    Browse the repository at this point in the history
  5. nvmet: get transport reference for passthru ctrl

    Grab a reference to the transport driver to ensure it can't be unloaded
    while a passthrough controller is active.
    
    Fixes: c1fef73 ("nvmet: add passthru code to process commands")
    Reported-by: Chaitanya Kulkarni <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    Reviewed-by: Logan Gunthorpe <[email protected]>
    Christoph Hellwig committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    3a6b076 View commit details
    Browse the repository at this point in the history
  6. Merge tag 'nvme-5.9-2020-09-17' of git://git.infradead.org/nvme into …

    …block-5.9
    
    Pull NVMe fixes from Christoph:
    
    "nvme fixes for 5.9
    
      - another quirk for the controller from hell (David Milburn)
      - fix a Kconfig dependency (Necip Fazil Yildiran)
      - char devices / passthrough refcount fixes (Chaitanya Kulkarni)"
    
    * tag 'nvme-5.9-2020-09-17' of git://git.infradead.org/nvme:
      nvmet: get transport reference for passthru ctrl
      nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
      nvme-tcp: fix kconfig dependency warning when !CRYPTO
      nvme-pci: disable the write zeros command for Intel 600P/P3100
    axboe committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    4a2dd2c View commit details
    Browse the repository at this point in the history
  7. fuse: fix the ->direct_IO() treatment of iov_iter

    the callers rely upon having any iov_iter_truncate() done inside
    ->direct_IO() countered by iov_iter_reexpand().
    
    Reported-by: Qian Cai <[email protected]>
    Tested-by: Qian Cai <[email protected]>
    Signed-off-by: Al Viro <[email protected]>
    Al Viro committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    933a375 View commit details
    Browse the repository at this point in the history
  8. hv_netvsc: Add validation for untrusted Hyper-V values

    For additional robustness in the face of Hyper-V errors or malicious
    behavior, validate all values that originate from packets that Hyper-V
    has sent to the guest in the host-to-guest ring buffer. Ensure that
    invalid values cannot cause indexing off the end of an array, or
    subvert an existing validation via integer overflow. Ensure that
    outgoing packets do not have any leftover guest memory that has not
    been zeroed out.
    
    Signed-off-by: Andres Beltran <[email protected]>
    Co-developed-by: Andrea Parri (Microsoft) <[email protected]>
    Signed-off-by: Andrea Parri (Microsoft) <[email protected]>
    Cc: "David S. Miller" <[email protected]>
    Cc: Jakub Kicinski <[email protected]>
    Cc: [email protected]
    Reviewed-by: Haiyang Zhang <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Andres Beltran authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    4414418 View commit details
    Browse the repository at this point in the history
  9. cxgb4: fix memory leak during module unload

    Fix the memory leak in mps during module unload
    path by freeing mps reference entries if the list
    adpter->mps_ref is not already empty
    
    Fixes: 28b3870 ("cxgb4: Re-work the logic for mps refcounting")
    Signed-off-by: Raju Rangoju <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    RajuRangoju authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    f4a26a9 View commit details
    Browse the repository at this point in the history
  10. drivers/net/wan/lapbether: Make skb->protocol consistent with the header

    This driver is a virtual driver stacked on top of Ethernet interfaces.
    
    When this driver transmits data on the Ethernet device, the skb->protocol
    setting is inconsistent with the Ethernet header prepended to the skb.
    
    This causes a user listening on the Ethernet interface with an AF_PACKET
    socket, to see different sll_protocol values for incoming and outgoing
    frames, because incoming frames would have this value set by parsing the
    Ethernet header.
    
    This patch changes the skb->protocol value for outgoing Ethernet frames,
    making it consistent with the Ethernet header prepended. This makes a
    user listening on the Ethernet device with an AF_PACKET socket, to see
    the same sll_protocol value for incoming and outgoing frames.
    
    Cc: Martin Schiller <[email protected]>
    Signed-off-by: Xie He <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Xie He authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    83f9a9c View commit details
    Browse the repository at this point in the history
  11. drivers/net/wan/hdlc: Set skb->protocol before transmitting

    This patch sets skb->protocol before transmitting frames on the HDLC
    device, so that a user listening on the HDLC device with an AF_PACKET
    socket will see outgoing frames' sll_protocol field correctly set and
    consistent with that of incoming frames.
    
    1. Control frames in hdlc_cisco and hdlc_ppp
    
    When these drivers send control frames, skb->protocol is not set.
    
    This value should be set to htons(ETH_P_HDLC), because when receiving
    control frames, their skb->protocol is set to htons(ETH_P_HDLC).
    
    When receiving, hdlc_type_trans in hdlc.h is called, which then calls
    cisco_type_trans or ppp_type_trans. The skb->protocol of control frames
    is set to htons(ETH_P_HDLC) so that the control frames can be received
    by hdlc_rcv in hdlc.c, which calls cisco_rx or ppp_rx to process the
    control frames.
    
    2. hdlc_fr
    
    When this driver sends control frames, skb->protocol is set to internal
    values used in this driver.
    
    When this driver sends data frames (from upper stacked PVC devices),
    skb->protocol is the same as that of the user data packet being sent on
    the upper PVC device (for normal PVC devices), or is htons(ETH_P_802_3)
    (for Ethernet-emulating PVC devices).
    
    However, skb->protocol for both control frames and data frames should be
    set to htons(ETH_P_HDLC), because when receiving, all frames received on
    the HDLC device will have their skb->protocol set to htons(ETH_P_HDLC).
    
    When receiving, hdlc_type_trans in hdlc.h is called, and because this
    driver doesn't provide a type_trans function in struct hdlc_proto,
    all frames will have their skb->protocol set to htons(ETH_P_HDLC).
    The frames are then received by hdlc_rcv in hdlc.c, which calls fr_rx
    to process the frames (control frames are consumed and data frames
    are re-received on upper PVC devices).
    
    Cc: Krzysztof Halasa <[email protected]>
    Signed-off-by: Xie He <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Xie He authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    9fb030a View commit details
    Browse the repository at this point in the history
  12. ethtool: add and use message type for tunnel info reply

    Tunnel offload info code uses ETHTOOL_MSG_TUNNEL_INFO_GET message type (cmd
    field in genetlink header) for replies to tunnel info netlink request, i.e.
    the same value as the request have. This is a problem because we are using
    two separate enums for userspace to kernel and kernel to userspace message
    types so that this ETHTOOL_MSG_TUNNEL_INFO_GET (28) collides with
    ETHTOOL_MSG_CABLE_TEST_TDR_NTF which is what message type 28 means for
    kernel to userspace messages.
    
    As the tunnel info request reached mainline in 5.9 merge window, we should
    still be able to fix the reply message type without breaking backward
    compatibility.
    
    Fixes: c7d759e ("ethtool: add tunnel info interface")
    Signed-off-by: Michal Kubecek <[email protected]>
    Reviewed-by: Jakub Kicinski <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    mkubecek authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    19a83d3 View commit details
    Browse the repository at this point in the history
  13. net: phy: Avoid NPD upon phy_detach() when driver is unbound

    If we have unbound the PHY driver prior to calling phy_detach() (often
    via phy_disconnect()) then we can cause a NULL pointer de-reference
    accessing the driver owner member. The steps to reproduce are:
    
    echo unimac-mdio-0:01 > /sys/class/net/eth0/phydev/driver/unbind
    ip link set eth0 down
    
    Fixes: cafe8df ("net: phy: Fix lack of reference count on PHY driver")
    Signed-off-by: Florian Fainelli <[email protected]>
    Reviewed-by: Andrew Lunn <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    ffainelli authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    c2b727d View commit details
    Browse the repository at this point in the history
  14. net: phy: Do not warn in phy_stop() on PHY_DOWN

    When phy_is_started() was added to catch incorrect PHY states,
    phy_stop() would not be qualified against PHY_DOWN. It is possible to
    reach that state when the PHY driver has been unbound and the network
    device is then brought down.
    
    Fixes: 2b3e88e ("net: phy: improve phy state checking")
    Signed-off-by: Florian Fainelli <[email protected]>
    Reviewed-by: Andrew Lunn <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    ffainelli authored and davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    5116a8a View commit details
    Browse the repository at this point in the history
  15. Merge branch 'net-phy-Unbind-fixes'

    Florian Fainelli says:
    
    ====================
    net: phy: Unbind fixes
    
    This patch series fixes a couple of issues with the unbinding of the PHY
    drivers and then bringing down a network interface. The first is a NULL
    pointer de-reference and the second was an incorrect warning being
    triggered.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    0dfdbc7 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2020

  1. hinic: fix potential resource leak

    In rx_request_irq(), it will just return what irq_set_affinity_hint()
    returns. If it is failed, the napi and irq requested are not freed
    properly. So add exits for failures to handle these.
    
    Signed-off-by: Wei Li <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    stkid authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    ce000c6 View commit details
    Browse the repository at this point in the history
  2. nfp: use correct define to return NONE fec

    struct ethtool_fecparam carries bitmasks not bit numbers.
    We want to return 1 (NONE), not 0.
    
    Fixes: 0d08709 ("nfp: implement ethtool FEC mode settings")
    Signed-off-by: Jakub Kicinski <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Reviewed-by: Jesse Brandeburg <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    kuba-moo authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    5f6857e View commit details
    Browse the repository at this point in the history
  3. mac80211: extend AQL aggregation estimation to HE and fix unit mismatch

    The unit of the return value of ieee80211_get_rate_duration is nanoseconds, not
    microseconds. Adjust the duration checks to account for that.
    For higher data rates, allow larger estimated aggregation sizes, and add some
    values for HE as well, which can use much larger aggregates.
    Since small packets with high data rates can now lead to duration values too
    small for info->tx_time_est, return a minimum of 4us.
    
    Fixes: f01cfba ("mac80211: improve AQL aggregation estimation for low data rates")
    Signed-off-by: Felix Fietkau <[email protected]>
    Acked-by: Toke Høiland-Jørgensen <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Johannes Berg <[email protected]>
    nbd168 authored and jmberg-intel committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    1f38b8c View commit details
    Browse the repository at this point in the history
  4. mac80211: add AQL support for VHT160 tx rates

    When converting from struct ieee80211_tx_rate to ieee80211_rx_status,
    there was one check missing to fill in the bandwidth for 160 MHz
    
    Signed-off-by: Felix Fietkau <[email protected]>
    Acked-by: Toke Høiland-Jørgensen <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Johannes Berg <[email protected]>
    nbd168 authored and jmberg-intel committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    8e28036 View commit details
    Browse the repository at this point in the history
  5. lib80211: fix unmet direct dependendices config warning when !CRYPTO

    When LIB80211_CRYPT_CCMP is enabled and CRYPTO is disabled, it results in unmet
    direct dependencies config warning. The reason is that LIB80211_CRYPT_CCMP
    selects CRYPTO_AES and CRYPTO_CCM, which are subordinate to CRYPTO. This is
    reproducible with CRYPTO disabled and R8188EU enabled, where R8188EU selects
    LIB80211_CRYPT_CCMP but does not select or depend on CRYPTO.
    
    Honor the kconfig menu hierarchy to remove kconfig dependency warnings.
    
    Fixes: a11e2f8 ("lib80211: use crypto API ccm(aes) transform for CCMP processing")
    Signed-off-by: Necip Fazil Yildiran <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Johannes Berg <[email protected]>
    necipfazil authored and jmberg-intel committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    b959ba9 View commit details
    Browse the repository at this point in the history
  6. mac80211: Fix radiotap header channel flag for 6GHz band

    Radiotap header field 'Channel flags' has '2 GHz spectrum' set to
    'true' for 6GHz packet.
    Change it to 5GHz as there isn't a separate option available for 6GHz.
    
    Signed-off-by: Aloka Dixit <[email protected]>
    Link: https://lore.kernel.org/r/010101747ab7b703-1d7c9851-1594-43bf-81f7-f79ce7a67cc6-000000@us-west-2.amazonses.com
    Signed-off-by: Johannes Berg <[email protected]>
    Aloka Dixit authored and jmberg-intel committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    412a84b View commit details
    Browse the repository at this point in the history
  7. mac80211: do not disable HE if HT is missing on 2.4 GHz

    VHT is not supported on 2.4 GHz, but HE is; don't disable HE if HT
    is missing there, do that only on 5 GHz (6 GHz is only HE).
    
    Fixes: 57fa5e8 ("mac80211: determine chandef from HE 6 GHz operation")
    Signed-off-by: Wen Gong <[email protected]>
    Link: https://lore.kernel.org/r/010101747cb617f2-593c5410-1648-4a42-97a0-f3646a5a6dd1-000000@us-west-2.amazonses.com
    [rewrite the commit message]
    Signed-off-by: Johannes Berg <[email protected]>
    Wen Gong authored and jmberg-intel committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    780a8c9 View commit details
    Browse the repository at this point in the history
  8. cfg80211: fix 6 GHz channel conversion

    We shouldn't accept any channels bigger than 233, fix that.
    
    Reported-by: Amar <[email protected]>
    Fixes: d1a1646 ("cfg80211: adapt to new channelization of the 6GHz band")
    Signed-off-by: Johannes Berg <[email protected]>
    Link: https://lore.kernel.org/r/20200917115222.312ba6f1d461.I3a8c8fbcc3cc019814fd9cd0aced7eb591626136@changeid
    Signed-off-by: Johannes Berg <[email protected]>
    jmberg-intel committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    c0de877 View commit details
    Browse the repository at this point in the history
  9. mac80211: do not allow bigger VHT MPDUs than the hardware supports

    Limit maximum VHT MPDU size by local capability.
    
    Signed-off-by: Felix Fietkau <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Johannes Berg <[email protected]>
    nbd168 authored and jmberg-intel committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    3bd5c7a View commit details
    Browse the repository at this point in the history
  10. mac80211: fix 80 MHz association to 160/80+80 AP on 6 GHz

    When trying to associate to an AP support 180 or 80+80 MHz on 6 GHz with a
    STA that only has 80 Mhz support the cf2 field inside the chandef will get
    set causing the association to fail when trying to validate the chandef.
    Fix this by checking the support flags prior to setting cf2.
    
    Fixes: 57fa5e8 ("mac80211: determine chandef from HE 6 GHz operation")
    Signed-off-by: John Crispin <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    [reword commit message a bit]
    Signed-off-by: Johannes Berg <[email protected]>
    blogic authored and jmberg-intel committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    75bcbd6 View commit details
    Browse the repository at this point in the history
  11. net: mscc: ocelot: fix race condition with TX timestamping

    The TX-timestampable skb is added late to the ocelot_port->tx_skbs. It
    is in a race with the TX timestamp IRQ, which checks that queue trying
    to match the timestamp with the skb by the ts_id. The skb should be
    added to the queue before the IRQ can fire.
    
    Fixes: 4e3b046 ("net: mscc: PTP Hardware Clock (PHC) support")
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Horatiu Vultur <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    9dda66a View commit details
    Browse the repository at this point in the history
  12. net: mscc: ocelot: add locking for the port TX timestamp ID

    The ocelot_port->ts_id is used to:
    (a) populate skb->cb[0] for matching the TX timestamp in the PTP IRQ
        with an skb.
    (b) populate the REW_OP from the injection header of the ongoing skb.
    Only then is ocelot_port->ts_id incremented.
    
    This is a problem because, at least theoretically, another timestampable
    skb might use the same ocelot_port->ts_id before that is incremented.
    Normally all transmit calls are serialized by the netdev transmit
    spinlock, but in this case, ocelot_port_add_txtstamp_skb() is also
    called by DSA, which has started declaring the NETIF_F_LLTX feature
    since commit 2b86cb8 ("net: dsa: declare lockless TX feature for
    slave ports").  So the logic of using and incrementing the timestamp id
    should be atomic per port.
    
    The solution is to use the global ocelot_port->ts_id only while
    protected by the associated ocelot_port->ts_id_lock. That's where we
    populate skb->cb[0]. Note that for ocelot, ocelot_port_add_txtstamp_skb
    is called for the actual skb, but for felix, it is called for the skb's
    clone. That is something which will also be changed in the future.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Horatiu Vultur <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Tested-by: Alexandre Belloni <[email protected]>
    Reviewed-by: Alexandre Belloni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    6565243 View commit details
    Browse the repository at this point in the history
  13. net: dsa: seville: fix buffer size of the queue system

    The VSC9953 Seville switch has 2 megabits of buffer split into 4360
    words of 60 bytes each.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Horatiu Vultur <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Tested-by: Alexandre Belloni <[email protected]>
    Reviewed-by: Alexandre Belloni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    a63ed92 View commit details
    Browse the repository at this point in the history
  14. net: mscc: ocelot: check for errors on memory allocation of ports

    Do not proceed probing if we couldn't allocate memory for the ports
    array, just error out.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Horatiu Vultur <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Tested-by: Alexandre Belloni <[email protected]>
    Reviewed-by: Alexandre Belloni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    c9d4b2c View commit details
    Browse the repository at this point in the history
  15. net: mscc: ocelot: error checking when calling ocelot_init()

    ocelot_init() allocates memory, resets the switch and polls for a status
    register, things which can fail. Stop probing the driver in that case,
    and propagate the error result.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Horatiu Vultur <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Tested-by: Alexandre Belloni <[email protected]>
    Reviewed-by: Alexandre Belloni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    d1cc0e9 View commit details
    Browse the repository at this point in the history
  16. net: mscc: ocelot: refactor ports parsing code into a dedicated function

    mscc_ocelot_probe() is already pretty large and hard to follow. So move
    the code for parsing ports in a separate function.
    
    This makes it easier for the next patch to just call
    mscc_ocelot_release_ports from the error path of mscc_ocelot_init_ports.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Horatiu Vultur <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Tested-by: Alexandre Belloni <[email protected]>
    Reviewed-by: Alexandre Belloni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    7c41179 View commit details
    Browse the repository at this point in the history
  17. net: mscc: ocelot: unregister net devices on unbind

    This driver was not unregistering its network interfaces on unbind.
    Now it is.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Horatiu Vultur <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Tested-by: Alexandre Belloni <[email protected]>
    Reviewed-by: Alexandre Belloni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    22cdb49 View commit details
    Browse the repository at this point in the history
  18. net: mscc: ocelot: deinitialize only initialized ports

    Currently mscc_ocelot_init_ports() will skip initializing a port when it
    doesn't have a phy-handle, so the ocelot->ports[port] pointer will be
    NULL. Take this into consideration when tearing down the driver, and add
    a new function ocelot_deinit_port() to the switch library, mirror of
    ocelot_init_port(), which needs to be called by the driver for all ports
    it has initialized.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Reviewed-by: Florian Fainelli <[email protected]>
    Tested-by: Alexandre Belloni <[email protected]>
    Reviewed-by: Alexandre Belloni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    e5fb512 View commit details
    Browse the repository at this point in the history
  19. Merge branch 'Bugfixes-in-Microsemi-Ocelot-switch-driver'

    Vladimir Oltean says:
    
    ====================
    Bugfixes in Microsemi Ocelot switch driver
    
    This is a series of 8 assorted patches for "net", on the drivers for the
    VSC7514 MIPS switch (Ocelot-1), the VSC9953 PowerPC (Seville), and a few
    more that are common to all supported devices since they are in the
    common library portion.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    2b33b20 View commit details
    Browse the repository at this point in the history
  20. hinic: fix sending pkts from core while self testing

    Call netif_tx_disable firstly before starting doing self-test to
    avoid sending packet from networking core and self-test packet
    simultaneously which may cause self-test failure or hw abnormal.
    
    Fixes: 4aa218a ("hinic: add self test support")
    Signed-off-by: Luo bin <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Luo bin authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    fc25fa9 View commit details
    Browse the repository at this point in the history
  21. net: hns: kerneldoc fixes

    Fix some parameter description mistakes.
    
    Signed-off-by: Lu Wei <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Lu Wei authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    a3a9415 View commit details
    Browse the repository at this point in the history
  22. dpaa2-eth: fix a build warning in dpmac.c

    Fix below sparse warning in dpmac.c.
    warning: cast to restricted __le64
    
    Signed-off-by: Yangbo Lu <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    yangbolu1991 authored and davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    a128592 View commit details
    Browse the repository at this point in the history
  23. Merge tag 'batadv-net-for-davem-20200918' of git://git.open-mesh.org/…

    …linux-merge
    
    Simon Wunderlich says:
    
    ====================
    Here are some batman-adv bugfixes:
    
     - fix wrong type use in backbone_gw hash, by Linus Luessing
    
     - disable TT re-routing for multicast packets, by Linus Luessing
    
     - Add missing include for in_interrupt(), by Sven Eckelmann
    
     - fix BLA/multicast issues for packets sent via unicast,
       by Linus Luessing (3 patches)
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    8f623a1 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2020

  1. net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC

    When IPV6_SEG6_HMAC is enabled and CRYPTO is disabled, it results in the
    following Kbuild warning:
    
    WARNING: unmet direct dependencies detected for CRYPTO_HMAC
      Depends on [n]: CRYPTO [=n]
      Selected by [y]:
      - IPV6_SEG6_HMAC [=y] && NET [=y] && INET [=y] && IPV6 [=y]
    
    WARNING: unmet direct dependencies detected for CRYPTO_SHA1
      Depends on [n]: CRYPTO [=n]
      Selected by [y]:
      - IPV6_SEG6_HMAC [=y] && NET [=y] && INET [=y] && IPV6 [=y]
    
    WARNING: unmet direct dependencies detected for CRYPTO_SHA256
      Depends on [n]: CRYPTO [=n]
      Selected by [y]:
      - IPV6_SEG6_HMAC [=y] && NET [=y] && INET [=y] && IPV6 [=y]
    
    The reason is that IPV6_SEG6_HMAC selects CRYPTO_HMAC, CRYPTO_SHA1, and
    CRYPTO_SHA256 without depending on or selecting CRYPTO while those configs
    are subordinate to CRYPTO.
    
    Honor the kconfig menu hierarchy to remove kconfig dependency warnings.
    
    Fixes: bf355b8 ("ipv6: sr: add core files for SR HMAC support")
    Signed-off-by: Necip Fazil Yildiran <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    necipfazil authored and davem330 committed Sep 19, 2020
    Configuration menu
    Copy the full SHA
    db7cd91 View commit details
    Browse the repository at this point in the history
  2. MAINTAINERS: Update ibmveth maintainer

    Removed Thomas Falcon. Added myself (Cristobal Forno) as the maintainer of ibmveth.
    
    Signed-off-by: Cristobal Forno <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    cforno12-zz authored and davem330 committed Sep 19, 2020
    Configuration menu
    Copy the full SHA
    f13d783 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2020

  1. rhashtable: fix indentation of a continue statement

    A continue statement is indented incorrectly, add in the missing
    tab.
    
    Signed-off-by: Colin Ian King <[email protected]>
    Acked-by: Herbert Xu <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Colin Ian King authored and davem330 committed Sep 20, 2020
    Configuration menu
    Copy the full SHA
    769f508 View commit details
    Browse the repository at this point in the history
  2. net: mvneta: recycle the page in case of out-of-order

    Recycle the received page into the page_pool cache if the dma descriptors
    arrived in a wrong order
    
    Fixes: ca0e014 ("net: mvneta: move skb build after descriptors processing")
    Signed-off-by: Lorenzo Bianconi <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    LorenzoBianconi authored and davem330 committed Sep 20, 2020
    Configuration menu
    Copy the full SHA
    b6e1178 View commit details
    Browse the repository at this point in the history
  3. net: sctp: Fix IPv6 ancestor_size calc in sctp_copy_descendant

    When calculating ancestor_size with IPv6 enabled, simply using
    sizeof(struct ipv6_pinfo) doesn't account for extra bytes needed for
    alignment in the struct sctp6_sock. On x86, there aren't any extra
    bytes, but on ARM the ipv6_pinfo structure is aligned on an 8-byte
    boundary so there were 4 pad bytes that were omitted from the
    ancestor_size calculation.  This would lead to corruption of the
    pd_lobby pointers, causing an oops when trying to free the sctp
    structure on socket close.
    
    Fixes: 636d25d ("sctp: not copy sctp_sock pd_lobby in sctp_copy_descendant")
    Signed-off-by: Henry Ptasinski <[email protected]>
    Acked-by: Marcelo Ricardo Leitner <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    hptasinski authored and davem330 committed Sep 20, 2020
    Configuration menu
    Copy the full SHA
    fe81d9f View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2020

  1. bnxt_en: Use memcpy to copy VPD field info.

    Using strlcpy() to copy from VPD is not correct because VPD strings
    are not necessarily NULL terminated.  Use memcpy() to copy the VPD
    length up to the destination buffer size - 1.  The destination is
    zeroed memory so it will always be NULL terminated.
    
    Fixes: a0d0fd7 ("bnxt_en: Read partno and serialno of the board from VPD")
    Signed-off-by: Vasundhara Volam <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Vasundhara Volam authored and davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    492adcf View commit details
    Browse the repository at this point in the history
  2. bnxt_en: return proper error codes in bnxt_show_temp

    Returning "unknown" as a temperature value violates the hwmon interface
    rules. Appropriate error codes should be returned via device_attribute
    show instead. These will ultimately be propagated to the user via the
    file system interface.
    
    In addition to the corrected error handling, it is an even better idea to
    not present the sensor in sysfs at all if it is known that the read will
    definitely fail. Given that temp1_input is currently the only sensor
    reported, ensure no hwmon registration if TEMP_MONITOR_QUERY is not
    supported or if it will fail due to access permissions. Something smarter
    may be needed if and when other sensors are added.
    
    Fixes: 12cce90 ("bnxt_en: fix HWRM error when querying VF temperature")
    Signed-off-by: Edwin Peer <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Edwin Peer authored and davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    d69753f View commit details
    Browse the repository at this point in the history
  3. bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex.

    All changes related to bp->link_info require the protection of the
    link_lock mutex.  It's not sufficient to rely just on RTNL.
    
    Fixes: 163e9ef ("bnxt_en: Fix race when modifying pause settings.")
    Reviewed-by: Edwin Peer <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Michael Chan authored and davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    a539069 View commit details
    Browse the repository at this point in the history
  4. bnxt_en: Return -EOPNOTSUPP for ETHTOOL_GREGS on VFs.

    Debug firmware commands are not supported on VFs to read registers.
    This patch avoids logging unnecessary access_denied error on VFs
    when user calls ETHTOOL_GREGS.
    
    By returning error in get_regs_len() method on the VF, the get_regs()
    method will not be called.
    
    Fixes: b5d600b ("bnxt_en: Add support for 'ethtool -d'")
    Signed-off-by: Vasundhara Volam <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Vasundhara Volam authored and davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    f0f47b2 View commit details
    Browse the repository at this point in the history
  5. bnxt_en: Fix HWRM_FUNC_QSTATS_EXT firmware call.

    Fix it to set the required fid input parameter.  The firmware call
    fails without this patch.
    
    Fixes: d752d05 ("bnxt_en: Retrieve hardware counter masks from firmware if available.")
    Reviewed-by: Edwin Peer <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Michael Chan authored and davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    d2b42d0 View commit details
    Browse the repository at this point in the history
  6. bnxt_en: Fix wrong flag value passed to HWRM_PORT_QSTATS_EXT fw call.

    The wrong flag value caused the firmware call to return actual port
    counters instead of the counter masks.  This messed up the counter
    overflow logic and caused erratic extended port counters to be
    displayed under ethtool -S.
    
    Fixes: 531d1d2 ("bnxt_en: Retrieve hardware masks for port counters.")
    Reviewed-by: Edwin Peer <[email protected]>
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Michael Chan authored and davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    c07fa08 View commit details
    Browse the repository at this point in the history
  7. Merge branch 'bnxt_en-Bug-fixes'

    Michael Chan says:
    
    ====================
    bnxt_en: Bug fixes.
    
    A series of small driver fixes covering VPD length logic,
    ethtool_get_regs on VF, hwmon temperature error handling,
    mutex locking for EEE and pause ethtool settings, and
    parameters for statistics related firmware calls.
    
    Please queue patches 1, 2, and 3 for -stable.  Thanks.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    e1b8139 View commit details
    Browse the repository at this point in the history
  8. io_uring: don't re-setup vecs/iter in io_resumit_prep() is already there

    If we already have mapped the necessary data for retry, then don't set
    it up again. It's a pointless operation, and we leak the iovec if it's
    a large (non-stack) vec.
    
    Fixes: b63534c ("io_uring: re-issue block requests that failed because of resources")
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    8f3d749 View commit details
    Browse the repository at this point in the history
  9. io_uring: don't use retry based buffered reads for non-async bdev

    Some block devices, like dm, bubble back -EAGAIN through the completion
    handler. We check for this in io_read(), but don't honor it for when
    we have copied the iov. Return -EAGAIN for this case before retrying,
    to force punt to io-wq.
    
    Fixes: bcf5a06 ("io_uring: support true async buffered reads, if file provides it")
    Reported-by: Zorro Lang <[email protected]>
    Tested-by: Zorro Lang <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    f5cac8b View commit details
    Browse the repository at this point in the history
  10. tools/io_uring: fix compile breakage

    It would seem none of the kernel continuous integration does this:
        $ cd tools/io_uring
        $ make
    
    Otherwise it may have noticed:
       cc -Wall -Wextra -g -D_GNU_SOURCE   -c -o io_uring-bench.o
    	 io_uring-bench.c
    io_uring-bench.c:133:12: error: static declaration of ‘gettid’
    	 follows non-static declaration
      133 | static int gettid(void)
          |            ^~~~~~
    In file included from /usr/include/unistd.h:1170,
                     from io_uring-bench.c:27:
    /usr/include/x86_64-linux-gnu/bits/unistd_ext.h:34:16: note:
    	 previous declaration of ‘gettid’ was here
       34 | extern __pid_t gettid (void) __THROW;
          |                ^~~~~~
    make: *** [<builtin>: io_uring-bench.o] Error 1
    
    The problem on Ubuntu 20.04 (with lk 5.9.0-rc5) is that unistd.h
    already defines gettid(). So prefix the local definition with
    "lk_".
    
    Signed-off-by: Douglas Gilbert <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    doug-gilbert authored and axboe committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    72f04da View commit details
    Browse the repository at this point in the history
  11. io_uring: mark statx/files_update/epoll_ctl as non-SQPOLL

    These will naturally fail when attempted through SQPOLL, but either
    with -EFAULT or -EBADF. Make it explicit that these are not workable
    through SQPOLL and return -EINVAL, just like other ops that need to
    use ->files.
    
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    6ca56f8 View commit details
    Browse the repository at this point in the history
  12. io_uring: fix openat/openat2 unified prep handling

    A previous commit unified how we handle prep for these two functions,
    but this means that we check the allowed context (SQPOLL, specifically)
    later than we should. Move the ring type checking into the two parent
    functions, instead of doing it after we've done some setup work.
    
    Fixes: ec65fea ("io_uring: deduplicate io_openat{,2}_prep()")
    Reported-by: Andy Lutomirski <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    4eb8dde View commit details
    Browse the repository at this point in the history
  13. sfc: Fix error code in probe

    This failure path should return a negative error code but it currently
    returns success.
    
    Fixes: 51b35a4 ("sfc: skeleton EF100 PF driver")
    Signed-off-by: Dan Carpenter <[email protected]>
    Acked-by: Edward Cree <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Dan Carpenter authored and davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    58ed68b View commit details
    Browse the repository at this point in the history
  14. ipv6: route: convert comma to semicolon

    Replace a comma between expression statements by a semicolon.
    
    Signed-off-by: Xu Wang <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    ISCAS-Vulab authored and davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    91b2c9a View commit details
    Browse the repository at this point in the history
  15. Merge tag 'mac80211-for-net-2020-09-21' of git://git.kernel.org/pub/s…

    …cm/linux/kernel/git/jberg/mac80211
    
    Johannes Berg says:
    
    ====================
    Just a few fixes:
     * fix using HE on 2.4 GHz
     * AQL (airtime queue limit) estimation & VHT160 fix
     * do not oversize A-MPDUs if local capability is smaller than peer's
     * fix radiotap on 6 GHz to not put 2.4 GHz flag
     * fix Kconfig for lib80211
     * little fixlet for 6 GHz channel number / frequency conversion
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 21, 2020
    Configuration menu
    Copy the full SHA
    25b8ab9 View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2020

  1. net/mlx5: Fix FTE cleanup

    Currently, when an FTE is allocated, its refcount is decreased to 0
    with the purpose it will not be a stand alone steering object and every
    rule (destination) of the FTE would increase the refcount.
    When mlx5_cleanup_fs is called while not all rules were deleted by the
    steering users, it hit refcount underflow on the FTE once clean_tree
    calls to tree_remove_node after the deleted rules already decreased
    the refcount to 0.
    
    FTE is no longer destroyed implicitly when the last rule (destination)
    is deleted. mlx5_del_flow_rules avoids it by increasing the refcount on
    the FTE and destroy it explicitly after all rules were deleted. So we
    can avoid the refcount underflow by making FTE as stand alone object.
    In addition need to set del_hw_func to FTE so the HW object will be
    destroyed when the FTE is deleted from the cleanup_tree flow.
    
    refcount_t: underflow; use-after-free.
    WARNING: CPU: 2 PID: 15715 at lib/refcount.c:28 refcount_warn_saturate+0xd9/0xe0
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
    Call Trace:
     tree_put_node+0xf2/0x140 [mlx5_core]
     clean_tree+0x4e/0xf0 [mlx5_core]
     clean_tree+0x4e/0xf0 [mlx5_core]
     clean_tree+0x4e/0xf0 [mlx5_core]
     clean_tree+0x5f/0xf0 [mlx5_core]
     clean_tree+0x4e/0xf0 [mlx5_core]
     clean_tree+0x5f/0xf0 [mlx5_core]
     mlx5_cleanup_fs+0x26/0x270 [mlx5_core]
     mlx5_unload+0x2e/0xa0 [mlx5_core]
     mlx5_unload_one+0x51/0x120 [mlx5_core]
     mlx5_devlink_reload_down+0x51/0x90 [mlx5_core]
     devlink_reload+0x39/0x120
     ? devlink_nl_cmd_reload+0x43/0x220
     genl_rcv_msg+0x1e4/0x420
     ? genl_family_rcv_msg_attrs_parse+0x100/0x100
     netlink_rcv_skb+0x47/0x110
     genl_rcv+0x24/0x40
     netlink_unicast+0x217/0x2f0
     netlink_sendmsg+0x30f/0x430
     sock_sendmsg+0x30/0x40
     __sys_sendto+0x10e/0x140
     ? handle_mm_fault+0xc4/0x1f0
     ? do_page_fault+0x33f/0x630
     __x64_sys_sendto+0x24/0x30
     do_syscall_64+0x48/0x130
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 718ce4d ("net/mlx5: Consolidate update FTE for all removal changes")
    Fixes: bd71b08 ("net/mlx5: Support multiple updates of steering rules in parallel")
    Signed-off-by: Maor Gottlieb <[email protected]>
    Reviewed-by: Mark Bloch <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    maorgottlieb authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    cefc235 View commit details
    Browse the repository at this point in the history
  2. net/mlx5e: Use RCU to protect rq->xdp_prog

    Currently, the RQs are temporarily deactivated while hot-replacing the
    XDP program, and napi_synchronize is used to make sure rq->xdp_prog is
    not in use. However, napi_synchronize is not ideal: instead of waiting
    till the end of a NAPI cycle, it polls and waits until NAPI is not
    running, sleeping for 1ms between the periodic checks. Under heavy
    workloads, this loop will never end, which may even lead to a kernel
    panic if the kernel detects the hangup. Such workloads include XSK TX
    and possibly also heavy RX (XSK or normal).
    
    The fix is inspired by commit 326fe02 ("net/mlx4_en: protect
    ring->xdp_prog with rcu_read_lock"). As mlx5e_xdp_handle is already
    protected by rcu_read_lock, and bpf_prog_put uses call_rcu to free the
    program, there is no need for additional synchronization if proper RCU
    functions are used to access the pointer. This patch converts all
    accesses to rq->xdp_prog to use RCU functions.
    
    Fixes: 8699415 ("net/mlx5e: XDP fast RX drop bpf programs support")
    Fixes: db05815 ("net/mlx5e: Add XSK zero-copy support")
    Signed-off-by: Maxim Mikityanskiy <[email protected]>
    Reviewed-by: Tariq Toukan <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Maxim Mikityanskiy authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    fe45386 View commit details
    Browse the repository at this point in the history
  3. net/mlx5e: Use synchronize_rcu to sync with NAPI

    As described in the previous commit, napi_synchronize doesn't quite fit
    the purpose when we just need to wait until the currently running NAPI
    quits. Its implementation waits until NAPI is not running by polling and
    waiting for 1ms in between. In cases where we need to deactivate one
    queue (e.g., recovery flows) or where we deactivate them one-by-one
    (deactivate channel flow), we may get stuck in napi_synchronize forever
    if other queues keep NAPI active, causing a soft lockup. Depending on
    kernel configuration (CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC), it may result
    in a kernel panic.
    
    To fix the issue, use synchronize_rcu to wait for NAPI to quit, and wrap
    the whole NAPI in rcu_read_lock.
    
    Fixes: acc6c59 ("net/mlx5e: Split open/close channels to stages")
    Signed-off-by: Maxim Mikityanskiy <[email protected]>
    Reviewed-by: Tariq Toukan <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Maxim Mikityanskiy authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    9c25a22 View commit details
    Browse the repository at this point in the history
  4. net/mlx5e: Fix memory leak of tunnel info when rule under multipath n…

    …ot ready
    
    When deleting vxlan flow rule under multipath, tun_info in parse_attr is
    not freed when the rule is not ready.
    
    Fixes: ef06c9e ("net/mlx5e: Allow one failure when offloading tc encap rules under multipath")
    Signed-off-by: Jianbo Liu <[email protected]>
    Reviewed-by: Roi Dayan <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    jialiu02 authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    12a240a View commit details
    Browse the repository at this point in the history
  5. net/mlx5e: CT: Fix freeing ct_label mapping

    Add missing mapping remove call when removing ct rule,
    as the mapping was allocated when ct rule was adding with ct_label.
    Also there is a missing mapping remove call in error flow.
    
    Fixes: 54b154e ("net/mlx5e: CT: Map 128 bits labels to 32 bit map ID")
    Signed-off-by: Roi Dayan <[email protected]>
    Reviewed-by: Eli Britstein <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    roidayan authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    4c8594a View commit details
    Browse the repository at this point in the history
  6. net/mlx5e: Enable adding peer miss rules only if merged eswitch is su…

    …pported
    
    The cited commit creates peer miss group during switchdev mode
    initialization in order to handle miss packets correctly while in VF
    LAG mode. This is done regardless of FW support of such groups which
    could cause rules setups failure later on.
    
    Fix by adding FW capability check before creating peer groups/rule.
    
    Fixes: ac004b8 ("net/mlx5e: E-Switch, Add peer miss rules")
    Signed-off-by: Maor Dickman <[email protected]>
    Reviewed-by: Roi Dayan <[email protected]>
    Reviewed-by: Raed Salem <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    maord authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    6cec022 View commit details
    Browse the repository at this point in the history
  7. net/mlx5e: Fix endianness when calculating pedit mask first bit

    The field mask value is provided in network byte order and has to
    be converted to host byte order before calculating pedit mask
    first bit.
    
    Fixes: 88f30bb ("net/mlx5e: Bit sized fields rewrite support")
    Signed-off-by: Maor Dickman <[email protected]>
    Reviewed-by: Roi Dayan <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    dickmanmaor authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    82198d8 View commit details
    Browse the repository at this point in the history
  8. net/mlx5e: Fix multicast counter not up-to-date in "ip -s"

    Currently the FW does not generate events for counters other than error
    counters. Unlike ".get_ethtool_stats", ".ndo_get_stats64" (which ip -s
    uses) might run in atomic context, while the FW interface is non atomic.
    Thus, 'ip' is not allowed to issue FW commands, so it will only display
    cached counters in the driver.
    
    Add a SW counter (mcast_packets) in the driver to count rx multicast
    packets. The counter also counts broadcast packets, as we consider it a
    special case of multicast.
    Use the counter value when calling "ip -s"/"ifconfig".
    
    Fixes: f62b8bb ("net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality")
    Signed-off-by: Ron Diskin <[email protected]>
    Reviewed-by: Tariq Toukan <[email protected]>
    Reviewed-by: Moshe Shemesh <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Ron Diskin authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    47c97e6 View commit details
    Browse the repository at this point in the history
  9. net/mlx5e: Fix using wrong stats_grps in mlx5e_update_ndo_stats()

    The cited commit started to reuse function mlx5e_update_ndo_stats() for
    the representors as well.
    However, the function is hard-coded to work on mlx5e_nic_stats_grps only.
    Due to this issue, the representors statistics were not updated in the
    output of "ip -s".
    
    Fix it to work with the correct group by extracting it from the caller's
    profile.
    
    Also, while at it and since this function became generic, move it to
    en_stats.c and rename it accordingly.
    
    Fixes: 8a236b1 ("net/mlx5e: Convert rep stats to mlx5e_stats_grp-based infra")
    Signed-off-by: Alaa Hleihel <[email protected]>
    Reviewed-by: Vlad Buslov <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    alaahl authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    b521105 View commit details
    Browse the repository at this point in the history
  10. net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported

    The set of TLS TX global SW counters in mlx5e_tls_sw_stats_desc
    is updated from all rings by using atomic ops.
    This set of stats is used only in the FPGA TLS use case, not in
    the Connect-X TLS one, where regular per-ring counters are used.
    
    Do not expose them in the Connect-X use case, as this would cause
    counter duplication. For example, tx_tls_drop_no_sync_data would
    appear twice in the ethtool stats.
    
    Fixes: d2ead1f ("net/mlx5e: Add kTLS TX HW offload support")
    Signed-off-by: Tariq Toukan <[email protected]>
    Reviewed-by: Moshe Shemesh <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Tariq Toukan authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    8f0bcd1 View commit details
    Browse the repository at this point in the history
  11. net/mlx5e: kTLS, Fix napi sync and possible use-after-free

    Using synchronize_rcu() is sufficient to wait until running NAPI quits.
    
    See similar upstream fix with detailed explanation:
    ("net/mlx5e: Use synchronize_rcu to sync with NAPI")
    
    This change also fixes a possible use-after-free as the NAPI
    might be already released at this stage.
    
    Fixes: 0419d8c ("net/mlx5e: kTLS, Add kTLS RX resync support")
    Signed-off-by: Tariq Toukan <[email protected]>
    Reviewed-by: Maxim Mikityanskiy <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Tariq Toukan authored and Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    6e8de0b View commit details
    Browse the repository at this point in the history
  12. net/mlx5e: kTLS, Add missing dma_unmap in RX resync

    Progress params dma address is never unmapped, unmap it when completion
    handling is over.
    
    Fixes: 0419d8c ("net/mlx5e: kTLS, Add kTLS RX resync support")
    Signed-off-by: Saeed Mahameed <[email protected]>
    Reviewed-by: Tariq Toukan <[email protected]>
    Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    66ce5fc View commit details
    Browse the repository at this point in the history
  13. net/mlx5e: kTLS, Fix leak on resync error flow

    Resync progress params buffer and dma weren't released on error,
    Add missing error unwinding for resync_post_get_progress_params().
    
    Fixes: 0419d8c ("net/mlx5e: kTLS, Add kTLS RX resync support")
    Signed-off-by: Saeed Mahameed <[email protected]>
    Reviewed-by: Tariq Toukan <[email protected]>
    Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    581642f View commit details
    Browse the repository at this point in the history
  14. net/mlx5e: kTLS, Avoid kzalloc(GFP_KERNEL) under spinlock

    The spinlock only needed when accessing the channel's icosq, grab the lock
    after the buf allocation in resync_post_get_progress_params() to avoid
    kzalloc(GFP_KERNEL) in atomic context.
    
    Fixes: 0419d8c ("net/mlx5e: kTLS, Add kTLS RX resync support")
    Reported-by: YueHaibing <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Reviewed-by: Tariq Toukan <[email protected]>
    Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    94c4fed View commit details
    Browse the repository at this point in the history
  15. net/mlx5e: mlx5e_fec_in_caps() returns a boolean

    Returning errno is a bug, fix that.
    
    Also fixes smatch warnings:
    drivers/net/ethernet/mellanox/mlx5/core/en/port.c:453
    mlx5e_fec_in_caps() warn: signedness bug returning '(-95)'
    
    Fixes: 2132b71 ("net/mlx5e: Advertise globaly supported FEC modes")
    Reported-by: kernel test robot <[email protected]>
    Reported-by: Dan Carpenter <[email protected]>
    Signed-off-by: Saeed Mahameed <[email protected]>
    Reviewed-by: Moshe Shemesh <[email protected]>
    Reviewed-by: Aya Levin <[email protected]>
    Saeed Mahameed committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    cb39ccc View commit details
    Browse the repository at this point in the history
  16. net: Update MAINTAINERS for MediaTek switch driver

    Update maintainers for MediaTek switch driver with Landen Chao who is
    familiar with MediaTek MT753x switch devices and will help maintenance
    from the vendor side.
    
    Cc: Steven Liu <[email protected]>
    Signed-off-by: Sean Wang <[email protected]>
    Signed-off-by: Landen Chao <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    objelf authored and davem330 committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    2b617c1 View commit details
    Browse the repository at this point in the history
  17. Merge tag 'mlx5-fixes-2020-09-18' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/saeed/linux
    
    Saeed Mahameed says:
    
    ====================
    mlx5 fixes-2020-09-18
    
    This series introduces some fixes to mlx5 driver.
    
    Please pull and let me know if there is any problem.
    
    v1->v2:
     Remove missing patch from -stable list.
    
    For -stable v5.1
     ('net/mlx5: Fix FTE cleanup')
    
    For -stable v5.3
     ('net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported')
     ('net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported')
    
    For -stable v5.7
     ('net/mlx5e: Fix memory leak of tunnel info when rule under multipath not ready')
    
    For -stable v5.8
     ('net/mlx5e: Use RCU to protect rq->xdp_prog')
     ('net/mlx5e: Fix endianness when calculating pedit mask first bit')
     ('net/mlx5e: Use synchronize_rcu to sync with NAPI')
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    47cec3f View commit details
    Browse the repository at this point in the history
  18. net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group…

    … under RCU
    
    When calling the RCU brother of br_vlan_get_pvid(), lockdep warns:
    
    =============================
    WARNING: suspicious RCU usage
    5.9.0-rc3-01631-g13c17acb8e38-dirty #814 Not tainted
    -----------------------------
    net/bridge/br_private.h:1054 suspicious rcu_dereference_protected() usage!
    
    Call trace:
     lockdep_rcu_suspicious+0xd4/0xf8
     __br_vlan_get_pvid+0xc0/0x100
     br_vlan_get_pvid_rcu+0x78/0x108
    
    The warning is because br_vlan_get_pvid_rcu() calls nbp_vlan_group()
    which calls rtnl_dereference() instead of rcu_dereference(). In turn,
    rtnl_dereference() calls rcu_dereference_protected() which assumes
    operation under an RCU write-side critical section, which obviously is
    not the case here. So, when the incorrect primitive is used to access
    the RCU-protected VLAN group pointer, READ_ONCE() is not used, which may
    cause various unexpected problems.
    
    I'm sad to say that br_vlan_get_pvid() and br_vlan_get_pvid_rcu() cannot
    share the same implementation. So fix the bug by splitting the 2
    functions, and making br_vlan_get_pvid_rcu() retrieve the VLAN groups
    under proper locking annotations.
    
    Fixes: 7582f5b ("bridge: add br_vlan_get_pvid_rcu()")
    Signed-off-by: Vladimir Oltean <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    99f62a7 View commit details
    Browse the repository at this point in the history
  19. inet_diag: validate INET_DIAG_REQ_PROTOCOL attribute

    User space could send an invalid INET_DIAG_REQ_PROTOCOL attribute
    as caught by syzbot.
    
    BUG: KMSAN: uninit-value in inet_diag_lock_handler net/ipv4/inet_diag.c:55 [inline]
    BUG: KMSAN: uninit-value in __inet_diag_dump+0x58c/0x720 net/ipv4/inet_diag.c:1147
    CPU: 0 PID: 8505 Comm: syz-executor174 Not tainted 5.9.0-rc4-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x21c/0x280 lib/dump_stack.c:118
     kmsan_report+0xf7/0x1e0 mm/kmsan/kmsan_report.c:122
     __msan_warning+0x58/0xa0 mm/kmsan/kmsan_instr.c:219
     inet_diag_lock_handler net/ipv4/inet_diag.c:55 [inline]
     __inet_diag_dump+0x58c/0x720 net/ipv4/inet_diag.c:1147
     inet_diag_dump_compat+0x2a5/0x380 net/ipv4/inet_diag.c:1254
     netlink_dump+0xb73/0x1cb0 net/netlink/af_netlink.c:2246
     __netlink_dump_start+0xcf2/0xea0 net/netlink/af_netlink.c:2354
     netlink_dump_start include/linux/netlink.h:246 [inline]
     inet_diag_rcv_msg_compat+0x5da/0x6c0 net/ipv4/inet_diag.c:1288
     sock_diag_rcv_msg+0x24f/0x620 net/core/sock_diag.c:256
     netlink_rcv_skb+0x6d7/0x7e0 net/netlink/af_netlink.c:2470
     sock_diag_rcv+0x63/0x80 net/core/sock_diag.c:275
     netlink_unicast_kernel net/netlink/af_netlink.c:1304 [inline]
     netlink_unicast+0x11c8/0x1490 net/netlink/af_netlink.c:1330
     netlink_sendmsg+0x173a/0x1840 net/netlink/af_netlink.c:1919
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg net/socket.c:671 [inline]
     ____sys_sendmsg+0xc82/0x1240 net/socket.c:2353
     ___sys_sendmsg net/socket.c:2407 [inline]
     __sys_sendmsg+0x6d1/0x820 net/socket.c:2440
     __do_sys_sendmsg net/socket.c:2449 [inline]
     __se_sys_sendmsg+0x97/0xb0 net/socket.c:2447
     __x64_sys_sendmsg+0x4a/0x70 net/socket.c:2447
     do_syscall_64+0x9f/0x140 arch/x86/entry/common.c:48
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x441389
    Code: e8 fc ab 02 00 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 1b 09 fc ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007fff3b02ce98 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000441389
    RDX: 0000000000000000 RSI: 0000000020001500 RDI: 0000000000000003
    RBP: 00000000006cb018 R08: 00000000004002c8 R09: 00000000004002c8
    R10: 0000000000000004 R11: 0000000000000246 R12: 0000000000402130
    R13: 00000000004021c0 R14: 0000000000000000 R15: 0000000000000000
    
    Uninit was created at:
     kmsan_save_stack_with_flags mm/kmsan/kmsan.c:143 [inline]
     kmsan_internal_poison_shadow+0x66/0xd0 mm/kmsan/kmsan.c:126
     kmsan_slab_alloc+0x8a/0xe0 mm/kmsan/kmsan_hooks.c:80
     slab_alloc_node mm/slub.c:2907 [inline]
     __kmalloc_node_track_caller+0x9aa/0x12f0 mm/slub.c:4511
     __kmalloc_reserve net/core/skbuff.c:142 [inline]
     __alloc_skb+0x35f/0xb30 net/core/skbuff.c:210
     alloc_skb include/linux/skbuff.h:1094 [inline]
     netlink_alloc_large_skb net/netlink/af_netlink.c:1176 [inline]
     netlink_sendmsg+0xdb9/0x1840 net/netlink/af_netlink.c:1894
     sock_sendmsg_nosec net/socket.c:651 [inline]
     sock_sendmsg net/socket.c:671 [inline]
     ____sys_sendmsg+0xc82/0x1240 net/socket.c:2353
     ___sys_sendmsg net/socket.c:2407 [inline]
     __sys_sendmsg+0x6d1/0x820 net/socket.c:2440
     __do_sys_sendmsg net/socket.c:2449 [inline]
     __se_sys_sendmsg+0x97/0xb0 net/socket.c:2447
     __x64_sys_sendmsg+0x4a/0x70 net/socket.c:2447
     do_syscall_64+0x9f/0x140 arch/x86/entry/common.c:48
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 3f935c7 ("inet_diag: support for wider protocol numbers")
    Signed-off-by: Eric Dumazet <[email protected]>
    Cc: Paolo Abeni <[email protected]>
    Cc: Christoph Paasch <[email protected]>
    Cc: Mat Martineau <[email protected]>
    Acked-by: Paolo Abeni <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Eric Dumazet authored and davem330 committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    d5e4d0a View commit details
    Browse the repository at this point in the history
  20. net: dsa: felix: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries

    Some of the IS2 IP4_TCP_UDP keys are not correct, like L4_DPORT,
    L4_SPORT and other L4 keys. This prevents offloaded tc-flower rules from
    matching on src_port and dst_port for TCP and UDP packets.
    
    Signed-off-by: Xiaoliang Yang <[email protected]>
    Signed-off-by: Vladimir Oltean <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Xiaoliang Yang authored and davem330 committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    8b9e03c View commit details
    Browse the repository at this point in the history
  21. net: dsa: seville: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries

    Since these were copied from the Felix VCAP IS2 code, and only the
    offsets were adjusted, the order of the bit fields is still wrong.
    Fix it.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    7a02307 View commit details
    Browse the repository at this point in the history
  22. net: mscc: ocelot: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries

    The IS2 IP4_TCP_UDP key offsets do not correspond to the VSC7514
    datasheet. Whether they work or not is unknown to me. On VSC9959 and
    VSC9953, with the same mistake and same discrepancy from the
    documentation, tc-flower src_port and dst_port rules did not work, so I
    am assuming the same is true here.
    
    Signed-off-by: Vladimir Oltean <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    vladimiroltean authored and davem330 committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    8194d8f View commit details
    Browse the repository at this point in the history
  23. Merge branch 'Fix-broken-tc-flower-rules-for-mscc_ocelot-switches'

    Vladimir Oltean says:
    
    ====================
    Fix broken tc-flower rules for mscc_ocelot switches
    
    All 3 switch drivers from the Ocelot family have the same bug in the
    VCAP IS2 key offsets, which is that some keys are in the incorrect
    order.
    ====================
    
    Signed-off-by: David S. Miller <[email protected]>
    davem330 committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    b334ec6 View commit details
    Browse the repository at this point in the history
  24. Merge tag 'block-5.9-2020-09-22' of git://git.kernel.dk/linux-block

    Pull block fixes from Jens Axboe:
     "A few NVMe fixes, and a dasd write zero fix"
    
    * tag 'block-5.9-2020-09-22' of git://git.kernel.dk/linux-block:
      nvmet: get transport reference for passthru ctrl
      nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
      nvme-tcp: fix kconfig dependency warning when !CRYPTO
      nvme-pci: disable the write zeros command for Intel 600P/P3100
      s390/dasd: Fix zero write for FBA devices
    torvalds committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    c37b718 View commit details
    Browse the repository at this point in the history
  25. Merge tag 'io_uring-5.9-2020-09-22' of git://git.kernel.dk/linux-block

    Pull io_uring fixes from Jens Axboe:
     "A few fixes - most of them regression fixes from this cycle, but also
      a few stable heading fixes, and a build fix for the included demo tool
      since some systems now actually have gettid() available"
    
    * tag 'io_uring-5.9-2020-09-22' of git://git.kernel.dk/linux-block:
      io_uring: fix openat/openat2 unified prep handling
      io_uring: mark statx/files_update/epoll_ctl as non-SQPOLL
      tools/io_uring: fix compile breakage
      io_uring: don't use retry based buffered reads for non-async bdev
      io_uring: don't re-setup vecs/iter in io_resumit_prep() is already there
      io_uring: don't run task work on an exiting task
      io_uring: drop 'ctx' ref on task work cancelation
      io_uring: grab any needed state during defer prep
    torvalds committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    0baca07 View commit details
    Browse the repository at this point in the history
  26. Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

    Pull networking fixes from Jakub Kicinski:
    
     - fix failure to add bond interfaces to a bridge, the offload-handling
       code was too defensive there and recent refactoring unearthed that.
       Users complained (Ido)
    
     - fix unnecessarily reflecting ECN bits within TOS values / QoS marking
       in TCP ACK and reset packets (Wei)
    
     - fix a deadlock with bpf iterator. Hopefully we're in the clear on
       this front now... (Yonghong)
    
     - BPF fix for clobbering r2 in bpf_gen_ld_abs (Daniel)
    
     - fix AQL on mt76 devices with FW rate control and add a couple of AQL
       issues in mac80211 code (Felix)
    
     - fix authentication issue with mwifiex (Maximilian)
    
     - WiFi connectivity fix: revert IGTK support in ti/wlcore (Mauro)
    
     - fix exception handling for multipath routes via same device (David
       Ahern)
    
     - revert back to a BH spin lock flavor for nsid_lock: there are paths
       which do require the BH context protection (Taehee)
    
     - fix interrupt / queue / NAPI handling in the lantiq driver (Hauke)
    
     - fix ife module load deadlock (Cong)
    
     - make an adjustment to netlink reply message type for code added in
       this release (the sole change touching uAPI here) (Michal)
    
     - a number of fixes for small NXP and Microchip switches (Vladimir)
    
    [ Pull request acked by David: "you can expect more of this in the
      future as I try to delegate more things to Jakub" ]
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (167 commits)
      net: mscc: ocelot: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries
      net: dsa: seville: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries
      net: dsa: felix: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries
      inet_diag: validate INET_DIAG_REQ_PROTOCOL attribute
      net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under RCU
      net: Update MAINTAINERS for MediaTek switch driver
      net/mlx5e: mlx5e_fec_in_caps() returns a boolean
      net/mlx5e: kTLS, Avoid kzalloc(GFP_KERNEL) under spinlock
      net/mlx5e: kTLS, Fix leak on resync error flow
      net/mlx5e: kTLS, Add missing dma_unmap in RX resync
      net/mlx5e: kTLS, Fix napi sync and possible use-after-free
      net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported
      net/mlx5e: Fix using wrong stats_grps in mlx5e_update_ndo_stats()
      net/mlx5e: Fix multicast counter not up-to-date in "ip -s"
      net/mlx5e: Fix endianness when calculating pedit mask first bit
      net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported
      net/mlx5e: CT: Fix freeing ct_label mapping
      net/mlx5e: Fix memory leak of tunnel info when rule under multipath not ready
      net/mlx5e: Use synchronize_rcu to sync with NAPI
      net/mlx5e: Use RCU to protect rq->xdp_prog
      ...
    torvalds committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    d301713 View commit details
    Browse the repository at this point in the history
  27. Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/viro/vfs
    
    Pull vfs fixes from Al Viro:
     "No common topic, just assorted fixes"
    
    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
      fuse: fix the ->direct_IO() treatment of iov_iter
      fs: fix cast in fsparam_u32hex() macro
      vboxsf: Fix the check for the old binary mount-arguments struct
    torvalds committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    805c6d3 View commit details
    Browse the repository at this point in the history