1. 25 11月, 2020 1 次提交
  2. 23 11月, 2020 1 次提交
  3. 20 11月, 2020 4 次提交
  4. 19 11月, 2020 2 次提交
  5. 18 11月, 2020 10 次提交
  6. 17 11月, 2020 3 次提交
  7. 16 11月, 2020 2 次提交
  8. 15 11月, 2020 4 次提交
  9. 14 11月, 2020 2 次提交
  10. 13 11月, 2020 6 次提交
    • J
      mac80211: free sta in sta_info_insert_finish() on errors · 7bc40aed
      Johannes Berg 提交于
      If sta_info_insert_finish() fails, we currently keep the station
      around and free it only in the caller, but there's only one such
      caller and it always frees it immediately.
      
      As syzbot found, another consequence of this split is that we can
      put things that sleep only into __cleanup_single_sta() and not in
      sta_info_free(), but this is the only place that requires such of
      sta_info_free() now.
      
      Change this to free the station in sta_info_insert_finish(), in
      which case we can still sleep. This will also let us unify the
      cleanup code later.
      
      Cc: stable@vger.kernel.org
      Fixes: dcd479e1 ("mac80211: always wind down STA state")
      Reported-by: syzbot+32c6c38c4812d22f2f0b@syzkaller.appspotmail.com
      Reported-by: syzbot+4c81fe92e372d26c4246@syzkaller.appspotmail.com
      Reported-by: syzbot+6a7fe9faf0d1d61bc24a@syzkaller.appspotmail.com
      Reported-by: syzbot+abed06851c5ffe010921@syzkaller.appspotmail.com
      Reported-by: syzbot+b7aeb9318541a1c709f1@syzkaller.appspotmail.com
      Reported-by: syzbot+d5a9416c6cafe53b5dd0@syzkaller.appspotmail.com
      Link: https://lore.kernel.org/r/20201112112201.ee6b397b9453.I9c31d667a0ea2151441cc64ed6613d36c18a48e0@changeidSigned-off-by: NJohannes Berg <johannes.berg@intel.com>
      7bc40aed
    • X
      net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request · 4ee18c17
      Xie He 提交于
      The x25_disconnect function in x25_subr.c would decrease the refcount of
      "x25->neighbour" (struct x25_neigh) and reset this pointer to NULL.
      
      However, the x25_rx_call_request function in af_x25.c, which is called
      when we receive a connection request, does not increase the refcount when
      it assigns the pointer.
      
      Fix this issue by increasing the refcount of "struct x25_neigh" in
      x25_rx_call_request.
      
      This patch fixes frequent kernel crashes when using AF_X25 sockets.
      
      Fixes: 4becb7ee ("net/x25: Fix x25_neigh refcnt leak when x25 disconnect")
      Cc: Martin Schiller <ms@dev.tdt.de>
      Signed-off-by: NXie He <xie.he.0141@gmail.com>
      Link: https://lore.kernel.org/r/20201112103506.5875-1-xie.he.0141@gmail.comSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      4ee18c17
    • J
      net/ncsi: Fix netlink registration · 1922a46b
      Joel Stanley 提交于
      If a user unbinds and re-binds a NC-SI aware driver the kernel will
      attempt to register the netlink interface at runtime. The structure is
      marked __ro_after_init so registration fails spectacularly at this point.
      
       # echo 1e660000.ethernet > /sys/bus/platform/drivers/ftgmac100/unbind
       # echo 1e660000.ethernet > /sys/bus/platform/drivers/ftgmac100/bind
        ftgmac100 1e660000.ethernet: Read MAC address 52:54:00:12:34:56 from chip
        ftgmac100 1e660000.ethernet: Using NCSI interface
        8<--- cut here ---
        Unable to handle kernel paging request at virtual address 80a8f858
        pgd = 8c768dd6
        [80a8f858] *pgd=80a0841e(bad)
        Internal error: Oops: 80d [#1] SMP ARM
        CPU: 0 PID: 116 Comm: sh Not tainted 5.10.0-rc3-next-20201111-00003-gdd25b227ec1e #51
        Hardware name: Generic DT based system
        PC is at genl_register_family+0x1f8/0x6d4
        LR is at 0xff26ffff
        pc : [<8073f930>]    lr : [<ff26ffff>]    psr: 20000153
        sp : 8553bc80  ip : 81406244  fp : 8553bd04
        r10: 8085d12c  r9 : 80a8f73c  r8 : 85739000
        r7 : 00000017  r6 : 80a8f860  r5 : 80c8ab98  r4 : 80a8f858
        r3 : 00000000  r2 : 00000000  r1 : 81406130  r0 : 00000017
        Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
        Control: 00c5387d  Table: 85524008  DAC: 00000051
        Process sh (pid: 116, stack limit = 0x1f1988d6)
       ...
        Backtrace:
        [<8073f738>] (genl_register_family) from [<80860ac0>] (ncsi_init_netlink+0x20/0x48)
         r10:8085d12c r9:80c8fb0c r8:85739000 r7:00000000 r6:81218000 r5:85739000
         r4:8121c000
        [<80860aa0>] (ncsi_init_netlink) from [<8085d740>] (ncsi_register_dev+0x1b0/0x210)
         r5:8121c400 r4:8121c000
        [<8085d590>] (ncsi_register_dev) from [<805a8060>] (ftgmac100_probe+0x6e0/0x778)
         r10:00000004 r9:80950228 r8:8115bc10 r7:8115ab00 r6:9eae2c24 r5:813b6f88
         r4:85739000
        [<805a7980>] (ftgmac100_probe) from [<805355ec>] (platform_drv_probe+0x58/0xa8)
         r9:80c76bb0 r8:00000000 r7:80cd4974 r6:80c76bb0 r5:8115bc10 r4:00000000
        [<80535594>] (platform_drv_probe) from [<80532d58>] (really_probe+0x204/0x514)
         r7:80cd4974 r6:00000000 r5:80cd4868 r4:8115bc10
      
      Jakub pointed out that ncsi_register_dev is obviously broken, because
      there is only one family so it would never work if there was more than
      one ncsi netdev.
      
      Fix the crash by registering the netlink family once on boot, and drop
      the code to unregister it.
      
      Fixes: 955dc68c ("net/ncsi: Add generic netlink family")
      Signed-off-by: NJoel Stanley <joel@jms.id.au>
      Reviewed-by: NSamuel Mendoza-Jonas <sam@mendozajonas.com>
      Link: https://lore.kernel.org/r/20201112061210.914621-1-joel@jms.id.auSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      1922a46b
    • A
      net: udp: fix IP header access and skb lookup on Fast/frag0 UDP GRO · 55e72988
      Alexander Lobakin 提交于
      udp{4,6}_lib_lookup_skb() use ip{,v6}_hdr() to get IP header of the
      packet. While it's probably OK for non-frag0 paths, this helpers
      will also point to junk on Fast/frag0 GRO when all headers are
      located in frags. As a result, sk/skb lookup may fail or give wrong
      results. To support both GRO modes, skb_gro_network_header() might
      be used. To not modify original functions, add private versions of
      udp{4,6}_lib_lookup_skb() only to perform correct sk lookups on GRO.
      
      Present since the introduction of "application-level" UDP GRO
      in 4.7-rc1.
      
      Misc: replace totally unneeded ternaries with plain ifs.
      
      Fixes: a6024562 ("udp: Add GRO functions to UDP socket")
      Suggested-by: NWillem de Bruijn <willemb@google.com>
      Cc: Eric Dumazet <edumazet@google.com>
      Signed-off-by: NAlexander Lobakin <alobakin@pm.me>
      Acked-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NJakub Kicinski <kuba@kernel.org>
      55e72988
    • A
      net: udp: fix UDP header access on Fast/frag0 UDP GRO · 4b1a8628
      Alexander Lobakin 提交于
      UDP GRO uses udp_hdr(skb) in its .gro_receive() callback. While it's
      probably OK for non-frag0 paths (when all headers or even the entire
      frame are already in skb head), this inline points to junk when
      using Fast GRO (napi_gro_frags() or napi_gro_receive() with only
      Ethernet header in skb head and all the rest in the frags) and breaks
      GRO packet compilation and the packet flow itself.
      To support both modes, skb_gro_header_fast() + skb_gro_header_slow()
      are typically used. UDP even has an inline helper that makes use of
      them, udp_gro_udphdr(). Use that instead of troublemaking udp_hdr()
      to get rid of the out-of-order delivers.
      
      Present since the introduction of plain UDP GRO in 5.0-rc1.
      
      Fixes: e20cf8d3 ("udp: implement GRO for plain UDP sockets.")
      Cc: Eric Dumazet <edumazet@google.com>
      Signed-off-by: NAlexander Lobakin <alobakin@pm.me>
      Acked-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NJakub Kicinski <kuba@kernel.org>
      4b1a8628
    • P
      devlink: Avoid overwriting port attributes of registered port · 9f73bd1c
      Parav Pandit 提交于
      Cited commit in fixes tag overwrites the port attributes for the
      registered port.
      
      Avoid such error by checking registered flag before setting attributes.
      
      Fixes: 71ad8d55 ("devlink: Replace devlink_port_attrs_set parameters with a struct")
      Signed-off-by: NParav Pandit <parav@nvidia.com>
      Reviewed-by: NJiri Pirko <jiri@nvidia.com>
      Link: https://lore.kernel.org/r/20201111034744.35554-1-parav@nvidia.comSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      9f73bd1c
  11. 12 11月, 2020 5 次提交