1. 07 Apr, 2020 2 commits
  2. 06 Apr, 2020 1 commit
  3. 05 Apr, 2020 4 commits
    • Eric Dumazet's avatar
      netfilter: nf_tables: do not leave dangling pointer in nf_tables_set_alloc_name · 7fb6f78d
      Eric Dumazet authored
      If nf_tables_set_alloc_name() frees set->name, we better
      clear set->name to avoid a future use-after-free or invalid-free.
      
      BUG: KASAN: double-free or invalid-free in nf_tables_newset+0x1ed6/0x2560 net/netfilter/nf_tables_api.c:4148
      
      CPU: 0 PID: 28233 Comm: syz-executor.0 Not tainted 5.6.0-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+0x188/0x20d lib/dump_stack.c:118
       print_address_description.constprop.0.cold+0xd3/0x315 mm/kasan/report.c:374
       kasan_report_invalid_free+0x61/0xa0 mm/kasan/report.c:468
       __kasan_slab_free+0x129/0x140 mm/kasan/common.c:455
       __cache_free mm/slab.c:3426 [inline]
       kfree+0x109/0x2b0 mm/slab.c:3757
       nf_tables_newset+0x1ed6/0x2560 net/netfilter/nf_tables_api.c:4148
       nfnetlink_rcv_batch+0x83a/0x1610 net/netfilter/nfnetlink.c:433
       nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:543 [inline]
       nfnetlink_rcv+0x3af/0x420 net/netfilter/nfnetlink.c:561
       netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
       netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
       netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
       sock_sendmsg_nosec net/socket.c:652 [inline]
       sock_sendmsg+0xcf/0x120 net/socket.c:672
       ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2345
       ___sys_sendmsg+0x100/0x170 net/socket.c:2399
       __sys_sendmsg+0xec/0x1b0 net/socket.c:2432
       do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x45c849
      Code: ad b6 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 7b b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00
      RSP: 002b:00007fe5ca21dc78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
      RAX: ffffffffffffffda RBX: 00007fe5ca21e6d4 RCX: 000000000045c849
      RDX: 0000000000000000 RSI: 0000000020000c40 RDI: 0000000000000003
      RBP: 000000000076bf00 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
      R13: 000000000000095b R14: 00000000004cc0e9 R15: 000000000076bf0c
      
      Allocated by task 28233:
       save_stack+0x1b/0x80 mm/kasan/common.c:72
       set_track mm/kasan/common.c:80 [inline]
       __kasan_kmalloc mm/kasan/common.c:515 [inline]
       __kasan_kmalloc.constprop.0+0xbf/0xd0 mm/kasan/common.c:488
       __do_kmalloc mm/slab.c:3656 [inline]
       __kmalloc_track_caller+0x159/0x790 mm/slab.c:3671
       kvasprintf+0xb5/0x150 lib/kasprintf.c:25
       kasprintf+0xbb/0xf0 lib/kasprintf.c:59
       nf_tables_set_alloc_name net/netfilter/nf_tables_api.c:3536 [inline]
       nf_tables_newset+0x1543/0x2560 net/netfilter/nf_tables_api.c:4088
       nfnetlink_rcv_batch+0x83a/0x1610 net/netfilter/nfnetlink.c:433
       nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:543 [inline]
       nfnetlink_rcv+0x3af/0x420 net/netfilter/nfnetlink.c:561
       netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
       netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
       netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
       sock_sendmsg_nosec net/socket.c:652 [inline]
       sock_sendmsg+0xcf/0x120 net/socket.c:672
       ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2345
       ___sys_sendmsg+0x100/0x170 net/socket.c:2399
       __sys_sendmsg+0xec/0x1b0 net/socket.c:2432
       do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      Freed by task 28233:
       save_stack+0x1b/0x80 mm/kasan/common.c:72
       set_track mm/kasan/common.c:80 [inline]
       kasan_set_free_info mm/kasan/common.c:337 [inline]
       __kasan_slab_free+0xf7/0x140 mm/kasan/common.c:476
       __cache_free mm/slab.c:3426 [inline]
       kfree+0x109/0x2b0 mm/slab.c:3757
       nf_tables_set_alloc_name net/netfilter/nf_tables_api.c:3544 [inline]
       nf_tables_newset+0x1f73/0x2560 net/netfilter/nf_tables_api.c:4088
       nfnetlink_rcv_batch+0x83a/0x1610 net/netfilter/nfnetlink.c:433
       nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:543 [inline]
       nfnetlink_rcv+0x3af/0x420 net/netfilter/nfnetlink.c:561
       netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
       netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
       netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
       sock_sendmsg_nosec net/socket.c:652 [inline]
       sock_sendmsg+0xcf/0x120 net/socket.c:672
       ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2345
       ___sys_sendmsg+0x100/0x170 net/socket.c:2399
       __sys_sendmsg+0xec/0x1b0 net/socket.c:2432
       do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      The buggy address belongs to the object at ffff8880a6032d00
       which belongs to the cache kmalloc-32 of size 32
      The buggy address is located 0 bytes inside of
       32-byte region [ffff8880a6032d00, ffff8880a6032d20)
      The buggy address belongs to the page:
      page:ffffea0002980c80 refcount:1 mapcount:0 mapping:ffff8880aa0001c0 index:0xffff8880a6032fc1
      flags: 0xfffe0000000200(slab)
      raw: 00fffe0000000200 ffffea0002a3be88 ffffea00029b1908 ffff8880aa0001c0
      raw: ffff8880a6032fc1 ffff8880a6032000 000000010000003e 0000000000000000
      page dumped because: kasan: bad access detected
      
      Fixes: 65038428 ("netfilter: nf_tables: allow to specify stateful expression in set definition")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      7fb6f78d
    • Maciej Żenczykowski's avatar
      netfilter: xt_IDLETIMER: target v1 - match Android layout · bc9fe614
      Maciej Żenczykowski authored
      Android has long had an extension to IDLETIMER to send netlink
      messages to userspace, see:
        https://android.googlesource.com/kernel/common/+/refs/heads/android-mainline/include/uapi/linux/netfilter/xt_IDLETIMER.h#42
      Note: this is idletimer target rev 1, there is no rev 0 in
      the Android common kernel sources, see registration at:
        https://android.googlesource.com/kernel/common/+/refs/heads/android-mainline/net/netfilter/xt_IDLETIMER.c#483
      
      When we compare that to upstream's new idletimer target rev 1:
        https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git/tree/include/uapi/linux/netfilter/xt_IDLETIMER.h#n46
      
      We immediately notice that these two rev 1 structs are the
      same size and layout, and that while timer_type and send_nl_msg
      are differently named and serve a different purpose, they're
      at the same offset.
      
      This makes them impossible to tell apart - and thus one cannot
      know in a mixed Android/vanilla environment whether one means
      timer_type or send_nl_msg.
      
      Since this is iptables/netfilter uapi it introduces a problem
      between iptables (vanilla vs Android) userspace and kernel
      (vanilla vs Android) if the two don't match each other.
      
      Additionally when at some point in the future Android picks up
      5.7+ it's not at all clear how to resolve the resulting merge
      conflict.
      
      Furthermore, since upgrading the kernel on old Android phones
      is pretty much impossible there does not seem to be an easy way
      out of this predicament.
      
      The only thing I've been able to come up with is some super
      disgusting kernel version >= 5.7 check in the iptables binary
      to flip between different struct layouts.
      
      By adding a dummy field to the vanilla Linux kernel header file
      we can force the two structs to be compatible with each other.
      
      Long term I think I would like to deprecate send_nl_msg out of
      Android entirely, but I haven't quite been able to figure out
      exactly how we depend on it.  It seems to be very similar to
      sysfs notifications but with some extra info.
      
      Currently it's actually always enabled whenever Android uses
      the IDLETIMER target, so we could also probably entirely
      remove it from the uapi in favour of just always enabling it,
      but again we can't upgrade old kernels already in the field.
      
      (Also note that this doesn't change the structure's size,
      as it is simply fitting into the pre-existing padding, and
      that since 5.7 hasn't been released yet, there's still time
      to make this uapi visible change)
      
      Cc: Manoj Basapathi <manojbm@codeaurora.org>
      Cc: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
      Signed-off-by: default avatarMaciej Żenczykowski <maze@google.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      bc9fe614
    • Pablo Neira Ayuso's avatar
      netfilter: nf_tables: do not update stateful expressions if lookup is inverted · a26c1e49
      Pablo Neira Ayuso authored
      Initialize set lookup matching element to NULL. Otherwise, the
      NFT_LOOKUP_F_INV flag reverses the matching logic and it leads to
      deference an uninitialized pointer to the matching element. Make sure
      element data area and stateful expression are accessed if there is a
      matching set element.
      
      This patch undoes 24791b9a ("netfilter: nft_set_bitmap: initialize set
      element extension in lookups") which is not required anymore.
      
      Fixes: 339706bc ("netfilter: nft_lookup: update element stateful expression")
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      a26c1e49
    • Stefano Brivio's avatar
      netfilter: nft_set_rbtree: Drop spurious condition for overlap detection on insertion · 72239f27
      Stefano Brivio authored
      Case a1. for overlap detection in __nft_rbtree_insert() is not a valid
      one: start-after-start is not needed to detect any type of interval
      overlap and it actually results in a false positive if, while
      descending the tree, this is the only step we hit after starting from
      the root.
      
      This introduced a regression, as reported by Pablo, in Python tests
      cases ip/ip.t and ip/numgen.t:
      
        ip/ip.t: ERROR: line 124: add rule ip test-ip4 input ip hdrlength vmap { 0-4 : drop, 5 : accept, 6 : continue } counter: This rule should not have failed.
        ip/numgen.t: ERROR: line 7: add rule ip test-ip4 pre dnat to numgen inc mod 10 map { 0-5 : 192.168.10.100, 6-9 : 192.168.20.200}: This rule should not have failed.
      
      Drop case a1. and renumber others, so that they are a bit clearer. In
      order for these diagrams to be readily understandable, a bigger rework
      is probably needed, such as an ASCII art of the actual rbtree (instead
      of a flattened version).
      
      Shell script test sets/0044interval_overlap_0 should cover all
      possible cases for false negatives, so I consider that test case still
      sufficient after this change.
      
      v2: Fix comments for cases a3. and b3.
      Reported-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Fixes: 7c84d414 ("netfilter: nft_set_rbtree: Detect partial overlaps on insertion")
      Signed-off-by: default avatarStefano Brivio <sbrivio@redhat.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      72239f27
  4. 03 Apr, 2020 10 commits
  5. 02 Apr, 2020 12 commits
  6. 01 Apr, 2020 11 commits
    • Rob Herring's avatar
      dt-bindings: net: mvusb: Fix example errors · d61f4d61
      Rob Herring authored
      The example for Marvell USB to MDIO Controller doesn't build:
      
      Error: Documentation/devicetree/bindings/net/marvell,mvusb.example.dts:18.9-14 syntax error
      FATAL ERROR: Unable to parse input tree
      
      This is due to label refs being used which can't be resolved.
      
      Fixes: 61e0150c ("dt-bindings: net: add marvell usb to mdio bindings")
      Cc: Tobias Waldekranz <tobias@waldekranz.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d61f4d61
    • Jose Abreu's avatar
      net: stmmac: Fix VLAN filtering when HW does not support it · dd6a4998
      Jose Abreu authored
      If we don't have any filters available we can't rely upon the return
      code of stmmac_add_hw_vlan_rx_fltr() / stmmac_del_hw_vlan_rx_fltr(). Add
      a check for this.
      
      Fixes: ed64639b ("net: stmmac: Add support for VLAN Rx filtering")
      Signed-off-by: default avatarJose Abreu <Jose.Abreu@synopsys.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd6a4998
    • Hu Haowen's avatar
      bnx2x: correct a comment mistake in grammar · cc213f8c
      Hu Haowen authored
      It is not right in grammar to spell "Its not". The right one is "It's
      not".
      
      And this line is also over 80 characters. So I broke it into two lines
      as well in order to make that line not be more than 80 characters.
      Signed-off-by: default avatarHu Haowen <xianfengting221@163.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cc213f8c
    • Hu Haowen's avatar
      net/faraday: fix grammar in function ftgmac100_setup_clk() in ftgmac100.c · e6b45ee7
      Hu Haowen authored
      "its not" is wrong. The words should be "it's not".
      Signed-off-by: default avatarHu Haowen <xianfengting221@163.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e6b45ee7
    • Richard Palethorpe's avatar
      slcan: Don't transmit uninitialized stack data in padding · b9258a2c
      Richard Palethorpe authored
      struct can_frame contains some padding which is not explicitly zeroed in
      slc_bump. This uninitialized data will then be transmitted if the stack
      initialization hardening feature is not enabled (CONFIG_INIT_STACK_ALL).
      
      This commit just zeroes the whole struct including the padding.
      Signed-off-by: default avatarRichard Palethorpe <rpalethorpe@suse.com>
      Fixes: a1044e36 ("can: add slcan driver for serial/USB-serial CAN adapters")
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Cc: linux-can@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Cc: security@kernel.org
      Cc: wg@grandegger.com
      Cc: mkl@pengutronix.de
      Cc: davem@davemloft.net
      Acked-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b9258a2c
    • Oleksij Rempel's avatar
      net: phy: at803x: fix clock sink configuration on ATH8030 and ATH8035 · b1f4c209
      Oleksij Rempel authored
      The masks in priv->clk_25m_reg and priv->clk_25m_mask are one-bits-set
      for the values that comprise the fields, not zero-bits-set.
      
      This patch fixes the clock frequency configuration for ATH8030 and
      ATH8035 Atheros PHYs by removing the erroneous "~".
      
      To reproduce this bug, configure the PHY  with the device tree binding
      "qca,clk-out-frequency" and remove the machine specific PHY fixups.
      
      Fixes: 2f664823 ("net: phy: at803x: add device tree binding")
      Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Reported-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Reviewed-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Tested-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b1f4c209
    • Rahul Lakkireddy's avatar
      cxgb4: free MQPRIO resources in shutdown path · cef8dac9
      Rahul Lakkireddy authored
      Perform missing MQPRIO resource cleanup in PCI shutdown path. Also,
      fix MQPRIO MSIX bitmap leak in resource cleanup.
      
      Fixes: b1396c2b ("cxgb4: parse and configure TC-MQPRIO offload")
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cef8dac9
    • Herat Ramani's avatar
      cxgb4: fix MPS index overwrite when setting MAC address · 41aa8561
      Herat Ramani authored
      cxgb4_update_mac_filt() earlier requests firmware to add a new MAC
      address into MPS TCAM. The MPS TCAM index returned by firmware is
      stored in pi->xact_addr_filt. However, the saved MPS TCAM index gets
      overwritten again with the return value of cxgb4_update_mac_filt(),
      which is wrong.
      
      When trying to update to another MAC address later, the wrong MPS TCAM
      index is sent to firmware, which causes firmware to return error,
      because it's not the same MPS TCAM index that firmware had sent
      earlier to driver.
      
      So, fix by removing the wrong overwrite being done after call to
      cxgb4_update_mac_filt().
      
      Fixes: 3f8cfd0d ("cxgb4/cxgb4vf: Program hash region for {t4/t4vf}_change_mac()")
      Signed-off-by: default avatarHerat Ramani <herat@chelsio.com>
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      41aa8561
    • Jarod Wilson's avatar
      ipv6: don't auto-add link-local address to lag ports · 744fdc82
      Jarod Wilson authored
      Bonding slave and team port devices should not have link-local addresses
      automatically added to them, as it can interfere with openvswitch being
      able to properly add tc ingress.
      
      Basic reproducer, courtesy of Marcelo:
      
      $ ip link add name bond0 type bond
      $ ip link set dev ens2f0np0 master bond0
      $ ip link set dev ens2f1np2 master bond0
      $ ip link set dev bond0 up
      $ ip a s
      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
      group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          inet6 ::1/128 scope host
             valid_lft forever preferred_lft forever
      2: ens2f0np0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc
      mq master bond0 state UP group default qlen 1000
          link/ether 00:0f:53:2f:ea:40 brd ff:ff:ff:ff:ff:ff
      5: ens2f1np2: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc
      mq master bond0 state DOWN group default qlen 1000
          link/ether 00:0f:53:2f:ea:40 brd ff:ff:ff:ff:ff:ff
      11: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc
      noqueue state UP group default qlen 1000
          link/ether 00:0f:53:2f:ea:40 brd ff:ff:ff:ff:ff:ff
          inet6 fe80::20f:53ff:fe2f:ea40/64 scope link
             valid_lft forever preferred_lft forever
      
      (above trimmed to relevant entries, obviously)
      
      $ sysctl net.ipv6.conf.ens2f0np0.addr_gen_mode=0
      net.ipv6.conf.ens2f0np0.addr_gen_mode = 0
      $ sysctl net.ipv6.conf.ens2f1np2.addr_gen_mode=0
      net.ipv6.conf.ens2f1np2.addr_gen_mode = 0
      
      $ ip a l ens2f0np0
      2: ens2f0np0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc
      mq master bond0 state UP group default qlen 1000
          link/ether 00:0f:53:2f:ea:40 brd ff:ff:ff:ff:ff:ff
          inet6 fe80::20f:53ff:fe2f:ea40/64 scope link tentative
             valid_lft forever preferred_lft forever
      $ ip a l ens2f1np2
      5: ens2f1np2: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc
      mq master bond0 state DOWN group default qlen 1000
          link/ether 00:0f:53:2f:ea:40 brd ff:ff:ff:ff:ff:ff
          inet6 fe80::20f:53ff:fe2f:ea40/64 scope link tentative
             valid_lft forever preferred_lft forever
      
      Looks like addrconf_sysctl_addr_gen_mode() bypasses the original "is
      this a slave interface?" check added by commit c2edacf8, and
      results in an address getting added, while w/the proposed patch added,
      no address gets added. This simply adds the same gating check to another
      code path, and thus should prevent the same devices from erroneously
      obtaining an ipv6 link-local address.
      
      Fixes: d35a00b8 ("net/ipv6: allow sysctl to change link-local address generation mode")
      Reported-by: default avatarMoshe Levi <moshele@mellanox.com>
      CC: Stephen Hemminger <stephen@networkplumber.org>
      CC: Marcelo Ricardo Leitner <mleitner@redhat.com>
      CC: netdev@vger.kernel.org
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      744fdc82
    • Cong Wang's avatar
      net_sched: add a temporary refcnt for struct tcindex_data · 304e0242
      Cong Wang authored
      Although we intentionally use an ordered workqueue for all tc
      filter works, the ordering is not guaranteed by RCU work,
      given that tcf_queue_work() is esstenially a call_rcu().
      
      This problem is demostrated by Thomas:
      
        CPU 0:
          tcf_queue_work()
            tcf_queue_work(&r->rwork, tcindex_destroy_rexts_work);
      
        -> Migration to CPU 1
      
        CPU 1:
           tcf_queue_work(&p->rwork, tcindex_destroy_work);
      
      so the 2nd work could be queued before the 1st one, which leads
      to a free-after-free.
      
      Enforcing this order in RCU work is hard as it requires to change
      RCU code too. Fortunately we can workaround this problem in tcindex
      filter by taking a temporary refcnt, we only refcnt it right before
      we begin to destroy it. This simplifies the code a lot as a full
      refcnt requires much more changes in tcindex_set_parms().
      
      Reported-by: syzbot+46f513c3033d592409d2@syzkaller.appspotmail.com
      Fixes: 3d210534 ("net_sched: fix a race condition in tcindex_destroy()")
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Paul E. McKenney <paulmck@kernel.org>
      Cc: Jamal Hadi Salim <jhs@mojatatu.com>
      Cc: Jiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Reviewed-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      304e0242
    • Linus Torvalds's avatar
      x86: get rid of 'errret' argument to __get_user_xyz() macross · 1a323ea5
      Linus Torvalds authored
      Every remaining user just has the error case returning -EFAULT.
      
      In fact, the exception was __get_user_asm_nozero(), which was removed in
      commit 4b842e4e ("x86: get rid of small constant size cases in
      raw_copy_{to,from}_user()"), and the other __get_user_xyz() macros just
      followed suit for consistency.
      
      Fix up some macro whitespace while at it.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1a323ea5