Skip to content
  1. May 20, 2020
    • Steven Rostedt (VMware)'s avatar
      tracing: Add a vmalloc_sync_mappings() for safe measure · d6e55a35
      Steven Rostedt (VMware) authored
      commit 11f5efc3 upstream.
      
      x86_64 lazily maps in the vmalloc pages, and the way this works with per_cpu
      areas can be complex, to say the least. Mappings may happen at boot up, and
      if nothing synchronizes the page tables, those page mappings may not be
      synced till they are used. This causes issues for anything that might touch
      one of those mappings in the path of the page fault handler. When one of
      those unmapped mappings is touched in the page fault handler, it will cause
      another page fault, which in turn will cause a page fault, and leave us in
      a loop of page faults.
      
      Commit 763802b5 ("x86/mm: split vmalloc_sync_all()") split
      vmalloc_sync_all() into vmalloc_sync_unmappings() and
      vmalloc_sync_mappings(), as on system exit, it did not need to do a full
      sync on x86_64 (although it still needed to be done on x86_32). By chance,
      the vmalloc_sync_all() would synchronize the page mappings done at boot up
      and prevent the per cpu area from being a problem for tracing in the page
      fault handler. But when that synchronization in the exit of a task became a
      nop, it caused the problem to appear.
      
      Link: https://lore.kernel.org/r/20200429054857.66e8e333@oasis.local.home
      
      Cc: stable@vger.kernel.org
      Fixes: 737223fb
      
       ("tracing: Consolidate buffer allocation code")
      Reported-by: default avatar"Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com>
      Suggested-by: default avatarJoerg Roedel <jroedel@suse.de>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d6e55a35
    • Oliver Neukum's avatar
      USB: serial: garmin_gps: add sanity checking for data length · 567299fe
      Oliver Neukum authored
      commit e9b3c610
      
       upstream.
      
      We must not process packets shorter than a packet ID
      
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
      Reported-and-tested-by: default avatar <syzbot+d29e9263e13ce0b9f4fd@syzkaller.appspotmail.com>
      Fixes: 1da177e4
      
       ("Linux-2.6.12-rc2")
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      567299fe
    • Oliver Neukum's avatar
      USB: uas: add quirk for LaCie 2Big Quadra · a8c9cebe
      Oliver Neukum authored
      commit 9f04db23
      
       upstream.
      
      This device needs US_FL_NO_REPORT_OPCODES to avoid going
      through prolonged error handling on enumeration.
      
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
      Reported-by: default avatarJulian Groß <julian.g@posteo.de>
      Cc: stable <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20200429155218.7308-1-oneukum@suse.com
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a8c9cebe
    • Kees Cook's avatar
      binfmt_elf: move brk out of mmap when doing direct loader exec · 4e3f9b3f
      Kees Cook authored
      commit bbdc6076 upstream.
      
      Commmit eab09532 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE"),
      made changes in the rare case when the ELF loader was directly invoked
      (e.g to set a non-inheritable LD_LIBRARY_PATH, testing new versions of
      the loader), by moving into the mmap region to avoid both ET_EXEC and
      PIE binaries.  This had the effect of also moving the brk region into
      mmap, which could lead to the stack and brk being arbitrarily close to
      each other.  An unlucky process wouldn't get its requested stack size
      and stack allocations could end up scribbling on the heap.
      
      This is illustrated here.  In the case of using the loader directly, brk
      (so helpfully identified as "[heap]") is allocated with the _loader_ not
      the binary.  For example, with ASLR entirely disabled, you can see this
      more clearly:
      
      $ /bin/cat /proc/self/maps
      555555554000-55555555c000 r-xp 00000000 ... /bin/cat
      55555575b000-55555575c000 r--p 00007000 ... /bin/cat
      55555575c000-55555575d000 rw-p 00008000 ... /bin/cat
      55555575d000-55555577e000 rw-p 00000000 ... [heap]
      ...
      7ffff7ff7000-7ffff7ffa000 r--p 00000000 ... [vvar]
      7ffff7ffa000-7ffff7ffc000 r-xp 00000000 ... [vdso]
      7ffff7ffc000-7ffff7ffd000 r--p 00027000 ... /lib/x86_64-linux-gnu/ld-2.27.so
      7ffff7ffd000-7ffff7ffe000 rw-p 00028000 ... /lib/x86_64-linux-gnu/ld-2.27.so
      7ffff7ffe000-7ffff7fff000 rw-p 00000000 ...
      7ffffffde000-7ffffffff000 rw-p 00000000 ... [stack]
      
      $ /lib/x86_64-linux-gnu/ld-2.27.so /bin/cat /proc/self/maps
      ...
      7ffff7bcc000-7ffff7bd4000 r-xp 00000000 ... /bin/cat
      7ffff7bd4000-7ffff7dd3000 ---p 00008000 ... /bin/cat
      7ffff7dd3000-7ffff7dd4000 r--p 00007000 ... /bin/cat
      7ffff7dd4000-7ffff7dd5000 rw-p 00008000 ... /bin/cat
      7ffff7dd5000-7ffff7dfc000 r-xp 00000000 ... /lib/x86_64-linux-gnu/ld-2.27.so
      7ffff7fb2000-7ffff7fd6000 rw-p 00000000 ...
      7ffff7ff7000-7ffff7ffa000 r--p 00000000 ... [vvar]
      7ffff7ffa000-7ffff7ffc000 r-xp 00000000 ... [vdso]
      7ffff7ffc000-7ffff7ffd000 r--p 00027000 ... /lib/x86_64-linux-gnu/ld-2.27.so
      7ffff7ffd000-7ffff7ffe000 rw-p 00028000 ... /lib/x86_64-linux-gnu/ld-2.27.so
      7ffff7ffe000-7ffff8020000 rw-p 00000000 ... [heap]
      7ffffffde000-7ffffffff000 rw-p 00000000 ... [stack]
      
      The solution is to move brk out of mmap and into ELF_ET_DYN_BASE since
      nothing is there in the direct loader case (and ET_EXEC is still far
      away at 0x400000).  Anything that ran before should still work (i.e.
      the ultimately-launched binary already had the brk very far from its
      text, so this should be no different from a COMPAT_BRK standpoint).  The
      only risk I see here is that if someone started to suddenly depend on
      the entire memory space lower than the mmap region being available when
      launching binaries via a direct loader execs which seems highly
      unlikely, I'd hope: this would mean a binary would _not_ work when
      exec()ed normally.
      
      (Note that this is only done under CONFIG_ARCH_HAS_ELF_RANDOMIZATION
      when randomization is turned on.)
      
      Link: http://lkml.kernel.org/r/20190422225727.GA21011@beast
      Link: https://lkml.kernel.org/r/CAGXu5jJ5sj3emOT2QPxQkNQk0qbU6zEfu9=Omfhx_p0nCKPSjA@mail.gmail.com
      Fixes: eab09532
      
       ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE")
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Reported-by: default avatarAli Saidi <alisaidi@amazon.com>
      Cc: Ali Saidi <alisaidi@amazon.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jann Horn <jannh@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4e3f9b3f
    • Hans de Goede's avatar
      Revert "ACPI / video: Add force_native quirk for HP Pavilion dv6" · 37c75edf
      Hans de Goede authored
      commit fd25ea29 upstream.
      
      Revert commit 6276e53f (ACPI / video: Add force_native quirk for
      HP Pavilion dv6).
      
      In the commit message for the quirk this revert removes I wrote:
      
      "Note that there are quite a few HP Pavilion dv6 variants, some
      woth ATI and some with NVIDIA hybrid gfx, both seem to need this
      quirk to have working backlight control. There are also some versions
      with only Intel integrated gfx, these may not need this quirk, but it
      should not hurt there."
      
      Unfortunately that seems wrong, I've already received 2 reports of
      this commit causing regressions on some dv6 variants (at least one
      of which actually has a nvidia GPU). So it seems that HP has made a
      mess here by using the same model-name both in marketing and in the
      DMI data for many different variants. Some of which need
      acpi_backlight=native for functional backlight control (as the
      quirk this commit reverts was doing), where as others are broken by
      it. So lets get back to the old sitation so as to avoid regressing
      on models which used to work without any kernel cmdline arguments
      before.
      
      Fixes: 6276e53f
      
       (ACPI / video: Add force_native quirk for HP Pavilion dv6)
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      37c75edf
    • Michael Chan's avatar
      bnxt_en: Improve AER slot reset. · f4bcdb1b
      Michael Chan authored
      [ Upstream commit bae361c5 ]
      
      Improve the slot reset sequence by disabling the device to prevent bad
      DMAs if slot reset fails.  Return the proper result instead of always
      PCI_ERS_RESULT_RECOVERED to the caller.
      
      Fixes: 6316ea6d
      
       ("bnxt_en: Enable AER support.")
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f4bcdb1b
    • Moshe Shemesh's avatar
      net/mlx5: Fix command entry leak in Internal Error State · 7fb05154
      Moshe Shemesh authored
      [ Upstream commit cece6f43 ]
      
      Processing commands by cmd_work_handler() while already in Internal
      Error State will result in entry leak, since the handler process force
      completion without doorbell. Forced completion doesn't release the entry
      and event completion will never arrive, so entry should be released.
      
      Fixes: 73dd3a48
      
       ("net/mlx5: Avoid using pending command interface slots")
      Signed-off-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Signed-off-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7fb05154
    • Moshe Shemesh's avatar
      net/mlx5: Fix forced completion access non initialized command entry · c393b591
      Moshe Shemesh authored
      [ Upstream commit f3cb3ceb ]
      
      mlx5_cmd_flush() will trigger forced completions to all valid command
      entries. Triggered by an asynch event such as fast teardown it can
      happen at any stage of the command, including command initialization.
      It will trigger forced completion and that can lead to completion on an
      uninitialized command entry.
      
      Setting MLX5_CMD_ENT_STATE_PENDING_COMP only after command entry is
      initialized will ensure force completion is treated only if command
      entry is initialized.
      
      Fixes: 73dd3a48
      
       ("net/mlx5: Avoid using pending command interface slots")
      Signed-off-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Signed-off-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c393b591
    • Michael Chan's avatar
      bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features(). · b081b91e
      Michael Chan authored
      [ Upstream commit c72cb303 ]
      
      The current logic in bnxt_fix_features() will inadvertently turn on both
      CTAG and STAG VLAN offload if the user tries to disable both.  Fix it
      by checking that the user is trying to enable CTAG or STAG before
      enabling both.  The logic is supposed to enable or disable both CTAG and
      STAG together.
      
      Fixes: 5a9f6b23
      
       ("bnxt_en: Enable and disable RX CTAG and RX STAG VLAN acceleration together.")
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b081b91e
    • Eric Dumazet's avatar
      sch_sfq: validate silly quantum values · 019495fa
      Eric Dumazet authored
      [ Upstream commit df4953e4 ]
      
      syzbot managed to set up sfq so that q->scaled_quantum was zero,
      triggering an infinite loop in sfq_dequeue()
      
      More generally, we must only accept quantum between 1 and 2^18 - 7,
      meaning scaled_quantum must be in [1, 0x7FFF] range.
      
      Otherwise, we also could have a loop in sfq_dequeue()
      if scaled_quantum happens to be 0x8000, since slot->allot
      could indefinitely switch between 0 and 0x8000.
      
      Fixes: eeaeb068
      
       ("sch_sfq: allow big packets and be fair")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatar <syzbot+0251e883fe39e7a0cb0a@syzkaller.appspotmail.com>
      Cc: Jason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      019495fa
    • Eric Dumazet's avatar
      sch_choke: avoid potential panic in choke_reset() · 6f96cc39
      Eric Dumazet authored
      [ Upstream commit 8738c85c ]
      
      If choke_init() could not allocate q->tab, we would crash later
      in choke_reset().
      
      BUG: KASAN: null-ptr-deref in memset include/linux/string.h:366 [inline]
      BUG: KASAN: null-ptr-deref in choke_reset+0x208/0x340 net/sched/sch_choke.c:326
      Write of size 8 at addr 0000000000000000 by task syz-executor822/7022
      
      CPU: 1 PID: 7022 Comm: syz-executor822 Not tainted 5.7.0-rc1-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
       __kasan_report.cold+0x5/0x4d mm/kasan/report.c:515
       kasan_report+0x33/0x50 mm/kasan/common.c:625
       check_memory_region_inline mm/kasan/generic.c:187 [inline]
       check_memory_region+0x141/0x190 mm/kasan/generic.c:193
       memset+0x20/0x40 mm/kasan/common.c:85
       memset include/linux/string.h:366 [inline]
       choke_reset+0x208/0x340 net/sched/sch_choke.c:326
       qdisc_reset+0x6b/0x520 net/sched/sch_generic.c:910
       dev_deactivate_queue.constprop.0+0x13c/0x240 net/sched/sch_generic.c:1138
       netdev_for_each_tx_queue include/linux/netdevice.h:2197 [inline]
       dev_deactivate_many+0xe2/0xba0 net/sched/sch_generic.c:1195
       dev_deactivate+0xf8/0x1c0 net/sched/sch_generic.c:1233
       qdisc_graft+0xd25/0x1120 net/sched/sch_api.c:1051
       tc_modify_qdisc+0xbab/0x1a00 net/sched/sch_api.c:1670
       rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5454
       netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2469
       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+0x6bf/0x7e0 net/socket.c:2362
       ___sys_sendmsg+0x100/0x170 net/socket.c:2416
       __sys_sendmsg+0xec/0x1b0 net/socket.c:2449
       do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:295
      
      Fixes: 77e62da6
      
       ("sch_choke: drop all packets in queue during reset")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Cc: Cong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6f96cc39
    • Matt Jolly's avatar
      net: usb: qmi_wwan: add support for DW5816e · fd6d7ca2
      Matt Jolly authored
      [ Upstream commit 57c7f2bd
      
       ]
      
      Add support for Dell Wireless 5816e to drivers/net/usb/qmi_wwan.c
      
      Signed-off-by: default avatarMatt Jolly <Kangie@footclan.ninja>
      Acked-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fd6d7ca2
    • Tariq Toukan's avatar
      net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc() · 4a0593e4
      Tariq Toukan authored
      [ Upstream commit 40e47307 ]
      
      When ENOSPC is set the idx is still valid and gets set to the global
      MLX4_SINK_COUNTER_INDEX.  However gcc's static analysis cannot tell that
      ENOSPC is impossible from mlx4_cmd_imm() and gives this warning:
      
      drivers/net/ethernet/mellanox/mlx4/main.c:2552:28: warning: 'idx' may be
      used uninitialized in this function [-Wmaybe-uninitialized]
       2552 |    priv->def_counter[port] = idx;
      
      Also, when ENOSPC is returned mlx4_allocate_default_counters should not
      fail.
      
      Fixes: 6de5f7f6
      
       ("net/mlx4_core: Allocate default counter per port")
      Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4a0593e4
    • Scott Dial's avatar
      net: macsec: preserve ingress frame ordering · dc9d8659
      Scott Dial authored
      [ Upstream commit ab046a5d ]
      
      MACsec decryption always occurs in a softirq context. Since
      the FPU may not be usable in the softirq context, the call to
      decrypt may be scheduled on the cryptd work queue. The cryptd
      work queue does not provide ordering guarantees. Therefore,
      preserving order requires masking out ASYNC implementations
      of gcm(aes).
      
      For instance, an Intel CPU with AES-NI makes available the
      generic-gcm-aesni driver from the aesni_intel module to
      implement gcm(aes). However, this implementation requires
      the FPU, so it is not always available to use from a softirq
      context, and will fallback to the cryptd work queue, which
      does not preserve frame ordering. With this change, such a
      system would select gcm_base(ctr(aes-aesni),ghash-generic).
      While the aes-aesni implementation prefers to use the FPU, it
      will fallback to the aes-asm implementation if unavailable.
      
      By using a synchronous version of gcm(aes), the decryption
      will complete before returning from crypto_aead_decrypt().
      Therefore, the macsec_decrypt_done() callback will be called
      before returning from macsec_decrypt(). Thus, the order of
      calls to macsec_post_decrypt() for the frames is preserved.
      
      While it's presumable that the pure AES-NI version of gcm(aes)
      is more performant, the hybrid solution is capable of gigabit
      speeds on modest hardware. Regardless, preserving the order
      of frames is paramount for many network protocols (e.g.,
      triggering TCP retries). Within the MACsec driver itself, the
      replay protection is tripped by the out-of-order frames, and
      can cause frames to be dropped.
      
      This bug has been present in this code since it was added in
      v4.6, however it may not have been noticed since not all CPUs
      have FPU offload available. Additionally, the bug manifests
      as occasional out-of-order packets that are easily
      misattributed to other network phenomena.
      
      When this code was added in v4.6, the crypto/gcm.c code did
      not restrict selection of the ghash function based on the
      ASYNC flag. For instance, x86 CPUs with PCLMULQDQ would
      select the ghash-clmulni driver instead of ghash-generic,
      which submits to the cryptd work queue if the FPU is busy.
      However, this bug was was corrected in v4.8 by commit
      b30bdfa8
      
      , and was backported
      all the way back to the v3.14 stable branch, so this patch
      should be applicable back to the v4.6 stable branch.
      
      Signed-off-by: default avatarScott Dial <scott@scottdial.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dc9d8659
    • Eric Dumazet's avatar
      fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks · ce0ca3d9
      Eric Dumazet authored
      [ Upstream commit 14695212 ]
      
      My intent was to not let users set a zero drop_batch_size,
      it seems I once again messed with min()/max().
      
      Fixes: 9d18562a
      
       ("fq_codel: add batch ability to fq_codel_drop()")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ce0ca3d9
    • Julia Lawall's avatar
      dp83640: reverse arguments to list_add_tail · c510cc4b
      Julia Lawall authored
      [ Upstream commit 86530837 ]
      
      In this code, it appears that phyter_clocks is a list head, based on
      the previous list_for_each, and that clock->list is intended to be a
      list element, given that it has just been initialized in
      dp83640_clock_init.  Accordingly, switch the arguments to
      list_add_tail, which takes the list head as the second argument.
      
      Fixes: cb646e2b
      
       ("ptp: Added a clock driver for the National Semiconductor PHYTER.")
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@inria.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c510cc4b
    • Matt Jolly's avatar
      USB: serial: qcserial: Add DW5816e support · 851ad197
      Matt Jolly authored
      commit 78d6de3c
      
       upstream.
      
      Add support for Dell Wireless 5816e to drivers/usb/serial/qcserial.c
      
      Signed-off-by: default avatarMatt Jolly <Kangie@footclan.ninja>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      851ad197
  2. May 10, 2020
  3. May 06, 2020