commit 8dfc31cb1f532f20ae71ca049a84c40226f30753
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Oct 29 09:03:11 2020 +0100

    Linux 4.4.241
    
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Link: https://lore.kernel.org/r/20201027134900.532249571@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cef1fbb746bce9332beee230500b31f79ebe30ec
Author: Oliver Neukum <oneukum@suse.com>
Date:   Mon Sep 28 23:17:55 2020 +0900

    USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
    
    commit 37d2a36394d954413a495da61da1b2a51ecd28ab upstream.
    
    syzbot is reporting hung task at wdm_flush() [1], for there is a circular
    dependency that wdm_flush() from flip_close() for /dev/cdc-wdm0 forever
    waits for /dev/raw-gadget to be closed while close() for /dev/raw-gadget
    cannot be called unless close() for /dev/cdc-wdm0 completes.
    
    Tetsuo Handa considered that such circular dependency is an usage error [2]
    which corresponds to an unresponding broken hardware [3]. But Alan Stern
    responded that we should be prepared for such hardware [4]. Therefore,
    this patch changes wdm_flush() to use wait_event_interruptible_timeout()
    which gives up after 30 seconds, for hardware that remains silent must be
    ignored. The 30 seconds are coming out of thin air.
    
    Changing wait_event() to wait_event_interruptible_timeout() makes error
    reporting from close() syscall less reliable. To compensate it, this patch
    also implements wdm_fsync() which does not use timeout. Those who want to
    be very sure that data has gone out to the device are now advised to call
    fsync(), with a caveat that fsync() can return -EINVAL when running on
    older kernels which do not implement wdm_fsync().
    
    This patch also fixes three more problems (listed below) found during
    exhaustive discussion and testing.
    
      Since multiple threads can concurrently call wdm_write()/wdm_flush(),
      we need to use wake_up_all() whenever clearing WDM_IN_USE in order to
      make sure that all waiters are woken up. Also, error reporting needs
      to use fetch-and-clear approach in order not to report same error for
      multiple times.
    
      Since wdm_flush() checks WDM_DISCONNECTING, wdm_write() should as well
      check WDM_DISCONNECTING.
    
      In wdm_flush(), since locks are not held, it is not safe to dereference
      desc->intf after checking that WDM_DISCONNECTING is not set [5]. Thus,
      remove dev_err() from wdm_flush().
    
    [1] https://syzkaller.appspot.com/bug?id=e7b761593b23eb50855b9ea31e3be5472b711186
    [2] https://lkml.kernel.org/r/27b7545e-8f41-10b8-7c02-e35a08eb1611@i-love.sakura.ne.jp
    [3] https://lkml.kernel.org/r/79ba410f-e0ef-2465-b94f-6b9a4a82adf5@i-love.sakura.ne.jp
    [4] https://lkml.kernel.org/r/20200530011040.GB12419@rowland.harvard.edu
    [5] https://lkml.kernel.org/r/c85331fc-874c-6e46-a77f-0ef1dc075308@i-love.sakura.ne.jp
    
    Reported-by: syzbot <syzbot+854768b99f19e89d7f81@syzkaller.appspotmail.com>
    Cc: stable <stable@vger.kernel.org>
    Co-developed-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/20200928141755.3476-1-penguin-kernel@I-love.SAKURA.ne.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c8ec46147a8dd9596d1249f5da0b24115ae0ba73
Author: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Date:   Sat Oct 3 00:41:51 2020 +0900

    usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
    
    commit a4f88430af896bf34ec25a7a5f0e053fb3d928e0 upstream.
    
    The ES58X devices has a CDC ACM interface (used for debug
    purpose). During probing, the device is thus recognized as USB Modem
    (CDC ACM), preventing the etas-es58x module to load:
      usbcore: registered new interface driver etas_es58x
      usb 1-1.1: new full-speed USB device number 14 using xhci_hcd
      usb 1-1.1: New USB device found, idVendor=108c, idProduct=0159, bcdDevice= 1.00
      usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
      usb 1-1.1: Product: ES581.4
      usb 1-1.1: Manufacturer: ETAS GmbH
      usb 1-1.1: SerialNumber: 2204355
      cdc_acm 1-1.1:1.0: No union descriptor, testing for castrated device
      cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
    
    Thus, these have been added to the ignore list in
    drivers/usb/class/cdc-acm.c
    
    N.B. Future firmware release of the ES58X will remove the CDC-ACM
    interface.
    
    `lsusb -v` of the three devices variant (ES581.4, ES582.1 and
    ES584.1):
    
      Bus 001 Device 011: ID 108c:0159 Robert Bosch GmbH ES581.4
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               1.10
        bDeviceClass            2 Communications
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0        64
        idVendor           0x108c Robert Bosch GmbH
        idProduct          0x0159
        bcdDevice            1.00
        iManufacturer           1 ETAS GmbH
        iProduct                2 ES581.4
        iSerial                 3 2204355
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength       0x0035
          bNumInterfaces          1
          bConfigurationValue     1
          iConfiguration          5 Bus Powered Configuration
          bmAttributes         0x80
            (Bus Powered)
          MaxPower              100mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      0
            iInterface              4 ACM Control Interface
            CDC Header:
              bcdCDC               1.10
            CDC Call Management:
              bmCapabilities       0x01
                call management
              bDataInterface          0
            CDC ACM:
              bmCapabilities       0x06
                sends break
                line coding and serial state
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0010  1x 16 bytes
              bInterval              10
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x03  EP 3 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               0
      Device Status:     0x0000
        (Bus Powered)
    
      Bus 001 Device 012: ID 108c:0168 Robert Bosch GmbH ES582
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass            2 Communications
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0        64
        idVendor           0x108c Robert Bosch GmbH
        idProduct          0x0168
        bcdDevice            1.00
        iManufacturer           1 ETAS GmbH
        iProduct                2 ES582
        iSerial                 3 0108933
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength       0x0043
          bNumInterfaces          2
          bConfigurationValue     1
          iConfiguration          0
          bmAttributes         0x80
            (Bus Powered)
          MaxPower              500mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      1 AT-commands (v.25ter)
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Union:
              bMasterInterface        0
              bSlaveInterface         1
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          1
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval              16
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
      Device Qualifier (for other device speed):
        bLength                10
        bDescriptorType         6
        bcdUSB               2.00
        bDeviceClass            2 Communications
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0        64
        bNumConfigurations      1
      Device Status:     0x0000
        (Bus Powered)
    
      Bus 001 Device 013: ID 108c:0169 Robert Bosch GmbH ES584.1
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass            2 Communications
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0        64
        idVendor           0x108c Robert Bosch GmbH
        idProduct          0x0169
        bcdDevice            1.00
        iManufacturer           1 ETAS GmbH
        iProduct                2 ES584.1
        iSerial                 3 0100320
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength       0x0043
          bNumInterfaces          2
          bConfigurationValue     1
          iConfiguration          0
          bmAttributes         0x80
            (Bus Powered)
          MaxPower              500mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      1 AT-commands (v.25ter)
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Union:
              bMasterInterface        0
              bSlaveInterface         1
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          1
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval              16
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
      Device Qualifier (for other device speed):
        bLength                10
        bDescriptorType         6
        bcdUSB               2.00
        bDeviceClass            2 Communications
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0        64
        bNumConfigurations      1
      Device Status:     0x0000
        (Bus Powered)
    
    Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20201002154219.4887-8-mailhol.vincent@wanadoo.fr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 39c5ebcd8143b1a0908070aec0cb9d789eb66b0b
Author: Valentin Vidic <vvidic@valentin-vidic.from.hr>
Date:   Sun Oct 18 20:42:55 2020 +0200

    net: korina: cast KSEG0 address to pointer in kfree
    
    [ Upstream commit 3bd57b90554b4bb82dce638e0668ef9dc95d3e96 ]
    
    Fixes gcc warning:
    
    passing argument 1 of 'kfree' makes pointer from integer without a cast
    
    Fixes: 3af5f0f5c74e ("net: korina: fix kfree of rx/tx descriptor array")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Valentin Vidic <vvidic@valentin-vidic.from.hr>
    Link: https://lore.kernel.org/r/20201018184255.28989-1-vvidic@valentin-vidic.from.hr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 083e298477de31d695cd19f0f40d407b81c034ed
Author: Zekun Shen <bruceshenzk@gmail.com>
Date:   Tue Jun 23 18:11:05 2020 -0400

    ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
    
    [ Upstream commit bad60b8d1a7194df38fd7fe4b22f3f4dcf775099 ]
    
    The idx in __ath10k_htt_rx_ring_fill_n function lives in
    consistent dma region writable by the device. Malfunctional
    or malicious device could manipulate such idx to have a OOB
    write. Either by
        htt->rx_ring.netbufs_ring[idx] = skb;
    or by
        ath10k_htt_set_paddrs_ring(htt, paddr, idx);
    
    The idx can also be negative as it's signed, giving a large
    memory space to write to.
    
    It's possibly exploitable by corruptting a legit pointer with
    a skb pointer. And then fill skb with payload as rougue object.
    
    Part of the log here. Sometimes it appears as UAF when writing
    to a freed memory by chance.
    
     [   15.594376] BUG: unable to handle page fault for address: ffff887f5c1804f0
     [   15.595483] #PF: supervisor write access in kernel mode
     [   15.596250] #PF: error_code(0x0002) - not-present page
     [   15.597013] PGD 0 P4D 0
     [   15.597395] Oops: 0002 [#1] SMP KASAN PTI
     [   15.597967] CPU: 0 PID: 82 Comm: kworker/u2:2 Not tainted 5.6.0 #69
     [   15.598843] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
     BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
     [   15.600438] Workqueue: ath10k_wq ath10k_core_register_work [ath10k_core]
     [   15.601389] RIP: 0010:__ath10k_htt_rx_ring_fill_n
     (linux/drivers/net/wireless/ath/ath10k/htt_rx.c:173) ath10k_core
    
    Signed-off-by: Zekun Shen <bruceshenzk@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200623221105.3486-1-bruceshenzk@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f087334c7ec65bccdf98e8b7b62e3ade200c8e8b
Author: Eli Billauer <eli.billauer@gmail.com>
Date:   Fri Jul 31 08:46:50 2020 +0300

    usb: core: Solve race condition in anchor cleanup functions
    
    [ Upstream commit fbc299437c06648afcc7891e6e2e6638dd48d4df ]
    
    usb_kill_anchored_urbs() is commonly used to cancel all URBs on an
    anchor just before releasing resources which the URBs rely on. By doing
    so, users of this function rely on that no completer callbacks will take
    place from any URB on the anchor after it returns.
    
    However if this function is called in parallel with __usb_hcd_giveback_urb
    processing a URB on the anchor, the latter may call the completer
    callback after usb_kill_anchored_urbs() returns. This can lead to a
    kernel panic due to use after release of memory in interrupt context.
    
    The race condition is that __usb_hcd_giveback_urb() first unanchors the URB
    and then makes the completer callback. Such URB is hence invisible to
    usb_kill_anchored_urbs(), allowing it to return before the completer has
    been called, since the anchor's urb_list is empty.
    
    Even worse, if the racing completer callback resubmits the URB, it may
    remain in the system long after usb_kill_anchored_urbs() returns.
    
    Hence list_empty(&anchor->urb_list), which is used in the existing
    while-loop, doesn't reliably ensure that all URBs of the anchor are gone.
    
    A similar problem exists with usb_poison_anchored_urbs() and
    usb_scuttle_anchored_urbs().
    
    This patch adds an external do-while loop, which ensures that all URBs
    are indeed handled before these three functions return. This change has
    no effect at all unless the race condition occurs, in which case the
    loop will busy-wait until the racing completer callback has finished.
    This is a rare condition, so the CPU waste of this spinning is
    negligible.
    
    The additional do-while loop relies on usb_anchor_check_wakeup(), which
    returns true iff the anchor list is empty, and there is no
    __usb_hcd_giveback_urb() in the system that is in the middle of the
    unanchor-before-complete phase. The @suspend_wakeups member of
    struct usb_anchor is used for this purpose, which was introduced to solve
    another problem which the same race condition causes, in commit
    6ec4147e7bdb ("usb-anchor: Delay usb_wait_anchor_empty_timeout wake up
    till completion is done").
    
    The surely_empty variable is necessary, because usb_anchor_check_wakeup()
    must be called with the lock held to prevent races. However the spinlock
    must be released and reacquired if the outer loop spins with an empty
    URB list while waiting for the unanchor-before-complete passage to finish:
    The completer callback may very well attempt to take the very same lock.
    
    To summarize, using usb_anchor_check_wakeup() means that the patched
    functions can return only when the anchor's list is empty, and there is
    no invisible URB being processed. Since the inner while loop finishes on
    the empty list condition, the new do-while loop will terminate as well,
    except for when the said race condition occurs.
    
    Signed-off-by: Eli Billauer <eli.billauer@gmail.com>
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/20200731054650.30644-1-eli.billauer@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0cc323c74a2fb8cfdfd2f4847b6459508b92991
Author: Wang Yufen <wangyufen@huawei.com>
Date:   Mon Jul 20 17:36:05 2020 +0800

    brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
    
    [ Upstream commit 6c151410d5b57e6bb0d91a735ac511459539a7bf ]
    
    When brcmf_proto_msgbuf_attach fail and msgbuf->txflow_wq != NULL,
    we should destroy the workqueue.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Yufen <wangyufen@huawei.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1595237765-66238-1-git-send-email-wangyufen@huawei.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 52f5b7387dc017aaf54bfc64d7d4931e5467abf9
Author: Jan Kara <jack@suse.cz>
Date:   Wed Mar 4 14:01:44 2020 +0100

    reiserfs: Fix memory leak in reiserfs_parse_options()
    
    [ Upstream commit e9d4709fcc26353df12070566970f080e651f0c9 ]
    
    When a usrjquota or grpjquota mount option is used multiple times, we
    will leak memory allocated for the file name. Make sure the last setting
    is used and all the previous ones are properly freed.
    
    Reported-by: syzbot+c9e294bbe0333a6b7640@syzkaller.appspotmail.com
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e006d8ed726195fb6dc98ba301582452febd6831
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Tue Aug 11 03:46:40 2020 -0400

    ipvs: Fix uninit-value in do_ip_vs_set_ctl()
    
    [ Upstream commit c5a8a8498eed1c164afc94f50a939c1a10abf8ad ]
    
    do_ip_vs_set_ctl() is referencing uninitialized stack value when `len` is
    zero. Fix it.
    
    Reported-by: syzbot+23b5f9e7caf61d9a3898@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=46ebfb92a8a812621a001ef04d90dfa459520fe2
    Suggested-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Acked-by: Julian Anastasov <ja@ssi.bg>
    Reviewed-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90ea33cdee3f5c63e673cc9096fb864bf0c9c016
Author: Tong Zhang <ztong0001@gmail.com>
Date:   Fri Aug 21 12:19:40 2020 -0400

    tty: ipwireless: fix error handling
    
    [ Upstream commit db332356222d9429731ab9395c89cca403828460 ]
    
    ipwireless_send_packet() can only return 0 on success and -ENOMEM on
    error, the caller should check non zero for error condition
    
    Signed-off-by: Tong Zhang <ztong0001@gmail.com>
    Acked-by: David Sterba <dsterba@suse.com>
    Link: https://lore.kernel.org/r/20200821161942.36589-1-ztong0001@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d0c18f883f6aaf7af3702491345d975fc68cdbf8
Author: Doug Horn <doughorn@google.com>
Date:   Wed Sep 2 14:08:25 2020 -0700

    Fix use after free in get_capset_info callback.
    
    [ Upstream commit e219688fc5c3d0d9136f8d29d7e0498388f01440 ]
    
    If a response to virtio_gpu_cmd_get_capset_info takes longer than
    five seconds to return, the callback will access freed kernel memory
    in vg->capsets.
    
    Signed-off-by: Doug Horn <doughorn@google.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20200902210847.2689-2-gurchetansingh@chromium.org
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8270abd5a593ca05b161dad0bacb436807a6528
Author: Chris Chiu <chiu@endlessm.com>
Date:   Sun Sep 6 12:04:24 2020 +0800

    rtl8xxxu: prevent potential memory leak
    
    [ Upstream commit 86279456a4d47782398d3cb8193f78f672e36cac ]
    
    Free the skb if usb_submit_urb fails on rx_urb. And free the urb
    no matter usb_submit_urb succeeds or not in rtl8xxxu_submit_int_urb.
    
    Signed-off-by: Chris Chiu <chiu@endlessm.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200906040424.22022-1-chiu@endlessm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b36b70f750f14f0cfbcd2816d03c34fa056b93e5
Author: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp>
Date:   Tue Sep 8 12:17:41 2020 +0000

    brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
    
    [ Upstream commit f4443293d741d1776b86ed1dd8c4e4285d0775fc ]
    
    When wlc_phy_txpwr_srom_read_lcnphy fails in wlc_phy_attach_lcnphy,
    the allocated pi->u.pi_lcnphy is leaked, since struct brcms_phy will be
    freed in the caller function.
    
    Fix this by calling wlc_phy_detach_lcnphy in the error handler of
    wlc_phy_txpwr_srom_read_lcnphy before returning.
    
    Signed-off-by: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200908121743.23108-1-keitasuzuki.park@sslab.ics.keio.ac.jp
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e2f267aef7776c4e0024bfe578acb68587c18c51
Author: Jing Xiangfeng <jingxiangfeng@huawei.com>
Date:   Mon Sep 7 16:39:49 2020 +0800

    scsi: ibmvfc: Fix error return in ibmvfc_probe()
    
    [ Upstream commit 5e48a084f4e824e1b624d3fd7ddcf53d2ba69e53 ]
    
    Fix to return error code PTR_ERR() from the error handling case instead of
    0.
    
    Link: https://lore.kernel.org/r/20200907083949.154251-1-jingxiangfeng@huawei.com
    Acked-by: Tyrel Datwyler <tyreld@linux.ibm.com>
    Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1a172f3d4c7e6168cad1af6973adb165b46a0ab
Author: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Date:   Fri Sep 11 15:33:18 2020 -0700

    Bluetooth: Only mark socket zapped after unlocking
    
    [ Upstream commit 20ae4089d0afeb24e9ceb026b996bfa55c983cc2 ]
    
    Since l2cap_sock_teardown_cb doesn't acquire the channel lock before
    setting the socket as zapped, it could potentially race with
    l2cap_sock_release which frees the socket. Thus, wait until the cleanup
    is complete before marking the socket as zapped.
    
    This race was reproduced on a JBL GO speaker after the remote device
    rejected L2CAP connection due to resource unavailability.
    
    Here is a dmesg log with debug logs from a repro of this bug:
    [ 3465.424086] Bluetooth: hci_core.c:hci_acldata_packet() hci0 len 16 handle 0x0003 flags 0x0002
    [ 3465.424090] Bluetooth: hci_conn.c:hci_conn_enter_active_mode() hcon 00000000cfedd07d mode 0
    [ 3465.424094] Bluetooth: l2cap_core.c:l2cap_recv_acldata() conn 000000007eae8952 len 16 flags 0x2
    [ 3465.424098] Bluetooth: l2cap_core.c:l2cap_recv_frame() len 12, cid 0x0001
    [ 3465.424102] Bluetooth: l2cap_core.c:l2cap_raw_recv() conn 000000007eae8952
    [ 3465.424175] Bluetooth: l2cap_core.c:l2cap_sig_channel() code 0x03 len 8 id 0x0c
    [ 3465.424180] Bluetooth: l2cap_core.c:l2cap_connect_create_rsp() dcid 0x0045 scid 0x0000 result 0x02 status 0x00
    [ 3465.424189] Bluetooth: l2cap_core.c:l2cap_chan_put() chan 000000006acf9bff orig refcnt 4
    [ 3465.424196] Bluetooth: l2cap_core.c:l2cap_chan_del() chan 000000006acf9bff, conn 000000007eae8952, err 111, state BT_CONNECT
    [ 3465.424203] Bluetooth: l2cap_sock.c:l2cap_sock_teardown_cb() chan 000000006acf9bff state BT_CONNECT
    [ 3465.424221] Bluetooth: l2cap_core.c:l2cap_chan_put() chan 000000006acf9bff orig refcnt 3
    [ 3465.424226] Bluetooth: hci_core.h:hci_conn_drop() hcon 00000000cfedd07d orig refcnt 6
    [ 3465.424234] BUG: spinlock bad magic on CPU#2, kworker/u17:0/159
    [ 3465.425626] Bluetooth: hci_sock.c:hci_sock_sendmsg() sock 000000002bb0cb64 sk 00000000a7964053
    [ 3465.430330]  lock: 0xffffff804410aac0, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
    [ 3465.430332] Causing a watchdog bite!
    
    Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
    Reported-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
    Reviewed-by: Manish Mandlik <mmandlik@chromium.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1464fc00ee264c06227b63a416ecfdaea8edc0a2
Author: Hamish Martin <hamish.martin@alliedtelesis.co.nz>
Date:   Fri Sep 11 09:25:11 2020 +1200

    usb: ohci: Default to per-port over-current protection
    
    [ Upstream commit b77d2a0a223bc139ee8904991b2922d215d02636 ]
    
    Some integrated OHCI controller hubs do not expose all ports of the hub
    to pins on the SoC. In some cases the unconnected ports generate
    spurious over-current events. For example the Broadcom 56060/Ranger 2 SoC
    contains a nominally 3 port hub but only the first port is wired.
    
    Default behaviour for ohci-platform driver is to use global over-current
    protection mode (AKA "ganged"). This leads to the spurious over-current
    events affecting all ports in the hub.
    
    We now alter the default to use per-port over-current protection.
    
    This patch results in the following configuration changes depending
    on quirks:
    - For quirk OHCI_QUIRK_SUPERIO no changes. These systems remain set up
      for ganged power switching and no over-current protection.
    - For quirk OHCI_QUIRK_AMD756 or OHCI_QUIRK_HUB_POWER power switching
      remains at none, while over-current protection is now guaranteed to be
      set to per-port rather than the previous behaviour where it was either
      none or global over-current protection depending on the value at
      function entry.
    
    Suggested-by: Alan Stern <stern@rowland.harvard.edu>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Hamish Martin <hamish.martin@alliedtelesis.co.nz>
    Link: https://lore.kernel.org/r/20200910212512.16670-1-hamish.martin@alliedtelesis.co.nz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d21b5cc65904513c4009306fc4258f20832ec88a
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Wed Sep 9 14:21:06 2020 -0700

    xfs: make sure the rt allocator doesn't run off the end
    
    [ Upstream commit 2a6ca4baed620303d414934aa1b7b0a8e7bab05f ]
    
    There's an overflow bug in the realtime allocator.  If the rt volume is
    large enough to handle a single allocation request that is larger than
    the maximum bmap extent length and the rt bitmap ends exactly on a
    bitmap block boundary, it's possible that the near allocator will try to
    check the freeness of a range that extends past the end of the bitmap.
    This fails with a corruption error and shuts down the fs.
    
    Therefore, constrain maxlen so that the range scan cannot run off the
    end of the rt bitmap.
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54900edfcb18987b504d6e22b157bd13022fd5e6
Author: Eric Biggers <ebiggers@google.com>
Date:   Sun Jun 28 00:00:57 2020 -0700

    reiserfs: only call unlock_new_inode() if I_NEW
    
    [ Upstream commit 8859bf2b1278d064a139e3031451524a49a56bd0 ]
    
    unlock_new_inode() is only meant to be called after a new inode has
    already been inserted into the hash table.  But reiserfs_new_inode() can
    call it even before it has inserted the inode, triggering the WARNING in
    unlock_new_inode().  Fix this by only calling unlock_new_inode() if the
    inode has the I_NEW flag set, indicating that it's in the table.
    
    This addresses the syzbot report "WARNING in unlock_new_inode"
    (https://syzkaller.appspot.com/bug?extid=187510916eb6a14598f7).
    
    Link: https://lore.kernel.org/r/20200628070057.820213-1-ebiggers@kernel.org
    Reported-by: syzbot+187510916eb6a14598f7@syzkaller.appspotmail.com
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e2a3c02399babe23d3883ceb7cca1ab4c56e0de4
Author: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp>
Date:   Wed Sep 9 07:18:51 2020 +0000

    misc: rtsx: Fix memory leak in rtsx_pci_probe
    
    [ Upstream commit bc28369c6189009b66d9619dd9f09bd8c684bb98 ]
    
    When mfd_add_devices() fail, pcr->slots should also be freed. However,
    the current implementation does not free the member, leading to a memory
    leak.
    
    Fix this by adding a new goto label that frees pcr->slots.
    
    Signed-off-by: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp>
    Link: https://lore.kernel.org/r/20200909071853.4053-1-keitasuzuki.park@sslab.ics.keio.ac.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b92e116ae36f498858dbb18e29a066c3f5348965
Author: Brooke Basile <brookebasile@gmail.com>
Date:   Fri Sep 11 03:14:27 2020 -0400

    ath9k: hif_usb: fix race condition between usb_get_urb() and usb_kill_anchored_urbs()
    
    [ Upstream commit 03fb92a432ea5abe5909bca1455b7e44a9380480 ]
    
    Calls to usb_kill_anchored_urbs() after usb_kill_urb() on multiprocessor
    systems create a race condition in which usb_kill_anchored_urbs() deallocates
    the URB before the completer callback is called in usb_kill_urb(), resulting
    in a use-after-free.
    To fix this, add proper lock protection to usb_kill_urb() calls that can
    possibly run concurrently with usb_kill_anchored_urbs().
    
    Reported-by: syzbot+89bd486af9427a9fc605@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=cabffad18eb74197f84871802fd2c5117b61febf
    Signed-off-by: Brooke Basile <brookebasile@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200911071427.32354-1-brookebasile@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31fbb2cb5d67bf5e5804d38e26bf9aa0cece2390
Author: Jan Kara <jack@suse.cz>
Date:   Fri Sep 25 12:14:03 2020 +0200

    udf: Avoid accessing uninitialized data on failed inode read
    
    [ Upstream commit 044e2e26f214e5ab26af85faffd8d1e4ec066931 ]
    
    When we fail to read inode, some data accessed in udf_evict_inode() may
    be uninitialized. Move the accesses to !is_bad_inode() branch.
    
    Reported-by: syzbot+91f02b28f9bb5f5f1341@syzkaller.appspotmail.com
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 00422c03a1b28f30e69b80d989bc46252b442867
Author: Jan Kara <jack@suse.cz>
Date:   Fri Sep 25 14:53:08 2020 +0200

    udf: Limit sparing table size
    
    [ Upstream commit 44ac6b829c4e173fdf6df18e6dd86aecf9a3dc99 ]
    
    Although UDF standard allows it, we don't support sparing table larger
    than a single block. Check it during mount so that we don't try to
    access memory beyond end of buffer.
    
    Reported-by: syzbot+9991561e714f597095da@syzkaller.appspotmail.com
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 25c95c6bd4dc50a3c20de0fa7f450ea02b2320fc
Author: Zqiang <qiang.zhang@windriver.com>
Date:   Fri Jun 5 11:05:33 2020 +0800

    usb: gadget: function: printer: fix use-after-free in __lock_acquire
    
    [ Upstream commit e8d5f92b8d30bb4ade76494490c3c065e12411b1 ]
    
    Fix this by increase object reference count.
    
    BUG: KASAN: use-after-free in __lock_acquire+0x3fd4/0x4180
    kernel/locking/lockdep.c:3831
    Read of size 8 at addr ffff8880683b0018 by task syz-executor.0/3377
    
    CPU: 1 PID: 3377 Comm: syz-executor.0 Not tainted 5.6.11 #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0xce/0x128 lib/dump_stack.c:118
     print_address_description.constprop.4+0x21/0x3c0 mm/kasan/report.c:374
     __kasan_report+0x131/0x1b0 mm/kasan/report.c:506
     kasan_report+0x12/0x20 mm/kasan/common.c:641
     __asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:135
     __lock_acquire+0x3fd4/0x4180 kernel/locking/lockdep.c:3831
     lock_acquire+0x127/0x350 kernel/locking/lockdep.c:4488
     __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
     _raw_spin_lock_irqsave+0x35/0x50 kernel/locking/spinlock.c:159
     printer_ioctl+0x4a/0x110 drivers/usb/gadget/function/f_printer.c:723
     vfs_ioctl fs/ioctl.c:47 [inline]
     ksys_ioctl+0xfb/0x130 fs/ioctl.c:763
     __do_sys_ioctl fs/ioctl.c:772 [inline]
     __se_sys_ioctl fs/ioctl.c:770 [inline]
     __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:770
     do_syscall_64+0x9e/0x510 arch/x86/entry/common.c:294
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x4531a9
    Code: ed 60 fc 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 bb 60 fc ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007fd14ad72c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    RAX: ffffffffffffffda RBX: 000000000073bfa8 RCX: 00000000004531a9
    RDX: fffffffffffffff9 RSI: 000000000000009e RDI: 0000000000000003
    RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004bbd61
    R13: 00000000004d0a98 R14: 00007fd14ad736d4 R15: 00000000ffffffff
    
    Allocated by task 2393:
     save_stack+0x21/0x90 mm/kasan/common.c:72
     set_track mm/kasan/common.c:80 [inline]
     __kasan_kmalloc.constprop.3+0xa7/0xd0 mm/kasan/common.c:515
     kasan_kmalloc+0x9/0x10 mm/kasan/common.c:529
     kmem_cache_alloc_trace+0xfa/0x2d0 mm/slub.c:2813
     kmalloc include/linux/slab.h:555 [inline]
     kzalloc include/linux/slab.h:669 [inline]
     gprinter_alloc+0xa1/0x870 drivers/usb/gadget/function/f_printer.c:1416
     usb_get_function+0x58/0xc0 drivers/usb/gadget/functions.c:61
     config_usb_cfg_link+0x1ed/0x3e0 drivers/usb/gadget/configfs.c:444
     configfs_symlink+0x527/0x11d0 fs/configfs/symlink.c:202
     vfs_symlink+0x33d/0x5b0 fs/namei.c:4201
     do_symlinkat+0x11b/0x1d0 fs/namei.c:4228
     __do_sys_symlinkat fs/namei.c:4242 [inline]
     __se_sys_symlinkat fs/namei.c:4239 [inline]
     __x64_sys_symlinkat+0x73/0xb0 fs/namei.c:4239
     do_syscall_64+0x9e/0x510 arch/x86/entry/common.c:294
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Freed by task 3368:
     save_stack+0x21/0x90 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+0x135/0x190 mm/kasan/common.c:476
     kasan_slab_free+0xe/0x10 mm/kasan/common.c:485
     slab_free_hook mm/slub.c:1444 [inline]
     slab_free_freelist_hook mm/slub.c:1477 [inline]
     slab_free mm/slub.c:3034 [inline]
     kfree+0xf7/0x410 mm/slub.c:3995
     gprinter_free+0x49/0xd0 drivers/usb/gadget/function/f_printer.c:1353
     usb_put_function+0x38/0x50 drivers/usb/gadget/functions.c:87
     config_usb_cfg_unlink+0x2db/0x3b0 drivers/usb/gadget/configfs.c:485
     configfs_unlink+0x3b9/0x7f0 fs/configfs/symlink.c:250
     vfs_unlink+0x287/0x570 fs/namei.c:4073
     do_unlinkat+0x4f9/0x620 fs/namei.c:4137
     __do_sys_unlink fs/namei.c:4184 [inline]
     __se_sys_unlink fs/namei.c:4182 [inline]
     __x64_sys_unlink+0x42/0x50 fs/namei.c:4182
     do_syscall_64+0x9e/0x510 arch/x86/entry/common.c:294
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    The buggy address belongs to the object at ffff8880683b0000
     which belongs to the cache kmalloc-1k of size 1024
    The buggy address is located 24 bytes inside of
     1024-byte region [ffff8880683b0000, ffff8880683b0400)
    The buggy address belongs to the page:
    page:ffffea0001a0ec00 refcount:1 mapcount:0 mapping:ffff88806c00e300
    index:0xffff8880683b1800 compound_mapcount: 0
    flags: 0x100000000010200(slab|head)
    raw: 0100000000010200 0000000000000000 0000000600000001 ffff88806c00e300
    raw: ffff8880683b1800 000000008010000a 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Reported-by: Kyungtae Kim <kt0755@gmail.com>
    Signed-off-by: Zqiang <qiang.zhang@windriver.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8e132b4eb5a496d0cc1956cd1fe9ca252413cb1
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date:   Tue Sep 29 15:59:57 2020 +0300

    scsi: target: core: Add CONTROL field for trace events
    
    [ Upstream commit 7010645ba7256992818b518163f46bd4cdf8002a ]
    
    trace-cmd report doesn't show events from target subsystem because
    scsi_command_size() leaks through event format string:
    
      [target:target_sequencer_start] function scsi_command_size not defined
      [target:target_cmd_complete] function scsi_command_size not defined
    
    Addition of scsi_command_size() to plugin_scsi.c in trace-cmd doesn't
    help because an expression is used inside TP_printk(). trace-cmd event
    parser doesn't understand minus sign inside [ ]:
    
      Error: expected ']' but read '-'
    
    Rather than duplicating kernel code in plugin_scsi.c, provide a dedicated
    field for CONTROL byte.
    
    Link: https://lore.kernel.org/r/20200929125957.83069-1-r.bolshakov@yadro.com
    Reviewed-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 63a0d643073dad584dc20ce28505d316003e79c6
Author: Jing Xiangfeng <jingxiangfeng@huawei.com>
Date:   Thu Sep 10 20:38:48 2020 +0800

    scsi: mvumi: Fix error return in mvumi_io_attach()
    
    [ Upstream commit 055f15ab2cb4a5cbc4c0a775ef3d0066e0fa9b34 ]
    
    Return PTR_ERR() from the error handling case instead of 0.
    
    Link: https://lore.kernel.org/r/20200910123848.93649-1-jingxiangfeng@huawei.com
    Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5198b6fff9a0b6bb1e77508d0025bb5f6df61cb2
Author: Christoph Hellwig <hch@lst.de>
Date:   Fri Sep 25 18:14:47 2020 +0200

    PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
    
    [ Upstream commit 428805c0c5e76ef643b1fbc893edfb636b3d8aef ]
    
    get_gendisk grabs a reference on the disk and file operation, so this
    code will leak both of them while having absolutely no use for the
    gendisk itself.
    
    This effectively reverts commit 2df83fa4bce421f ("PM / Hibernate: Use
    get_gendisk to verify partition if resume_file is integer format")
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 76e94ac0d60decb21059a68108f16c8d9ac0b43c
Author: Rustam Kovhaev <rkovhaev@gmail.com>
Date:   Tue Oct 13 16:48:17 2020 -0700

    ntfs: add check for mft record size in superblock
    
    [ Upstream commit 4f8c94022f0bc3babd0a124c0a7dcdd7547bd94e ]
    
    Number of bytes allocated for mft record should be equal to the mft record
    size stored in ntfs superblock as reported by syzbot, userspace might
    trigger out-of-bounds read by dereferencing ctx->attr in ntfs_attr_find()
    
    Reported-by: syzbot+aed06913f36eff9b544e@syzkaller.appspotmail.com
    Signed-off-by: Rustam Kovhaev <rkovhaev@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Tested-by: syzbot+aed06913f36eff9b544e@syzkaller.appspotmail.com
    Acked-by: Anton Altaparmakov <anton@tuxera.com>
    Link: https://syzkaller.appspot.com/bug?extid=aed06913f36eff9b544e
    Link: https://lkml.kernel.org/r/20200824022804.226242-1-rkovhaev@gmail.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 137571eab26bea7b6fbec7735e393341dacdb754
Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Date:   Wed Sep 2 08:37:12 2020 +0200

    media: saa7134: avoid a shift overflow
    
    [ Upstream commit 15a36aae1ec1c1f17149b6113b92631791830740 ]
    
    As reported by smatch:
            drivers/media/pci/saa7134//saa7134-tvaudio.c:686 saa_dsp_writel() warn: should 'reg << 2' be a 64 bit type?
    
    On a 64-bits Kernel, the shift might be bigger than 32 bits.
    
    In real, this should never happen, but let's shut up the warning.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d14221529f06cd426f059043de8bd709bd106daf
Author: Pali Rohár <pali@kernel.org>
Date:   Mon Jul 27 15:38:34 2020 +0200

    mmc: sdio: Check for CISTPL_VERS_1 buffer size
    
    [ Upstream commit 8ebe2607965d3e2dc02029e8c7dd35fbe508ffd0 ]
    
    Before parsing CISTPL_VERS_1 structure check that its size is at least two
    bytes to prevent buffer overflow.
    
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Link: https://lore.kernel.org/r/20200727133837.19086-2-pali@kernel.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 56434ec03f8f892f9f7d71946c7503674d03fc8b
Author: Adam Goode <agoode@google.com>
Date:   Sun Aug 23 03:21:33 2020 +0200

    media: uvcvideo: Ensure all probed info is returned to v4l2
    
    [ Upstream commit 8a652a17e3c005dcdae31b6c8fdf14382a29cbbe ]
    
    bFrameIndex and bFormatIndex can be negotiated by the camera during
    probing, resulting in the camera choosing a different format than
    expected. v4l2 can already accommodate such changes, but the code was
    not updating the proper fields.
    
    Without such a change, v4l2 would potentially interpret the payload
    incorrectly, causing corrupted output. This was happening on the
    Elgato HD60 S+, which currently always renegotiates to format 1.
    
    As an aside, the Elgato firmware is buggy and should not be renegotating,
    but it is still a valid thing for the camera to do. Both macOS and Windows
    will properly probe and read uncorrupted images from this camera.
    
    With this change, both qv4l2 and chromium can now read uncorrupted video
    from the Elgato HD60 S+.
    
    [Add blank lines, remove periods at the of messages]
    
    Signed-off-by: Adam Goode <agoode@google.com>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b72a84acf9942a850b946b1f7a9f476faae24e61
Author: Xiaolong Huang <butterflyhuangxx@gmail.com>
Date:   Fri Apr 17 11:52:30 2020 +0200

    media: media/pci: prevent memory leak in bttv_probe
    
    [ Upstream commit 7b817585b730665126b45df5508dd69526448bc8 ]
    
    In bttv_probe if some functions such as pci_enable_device,
    pci_set_dma_mask and request_mem_region fails the allocated
     memory for btv should be released.
    
    Signed-off-by: Xiaolong Huang <butterflyhuangxx@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0bf93c45083334bcd64f99dc62df528e4547354
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Thu May 21 12:00:21 2020 +0200

    media: bdisp: Fix runtime PM imbalance on error
    
    [ Upstream commit dbd2f2dc025f9be8ae063e4f270099677238f620 ]
    
    pm_runtime_get_sync() increments the runtime PM usage counter even
    when it returns an error code. Thus a pairing decrement is needed on
    the error handling path to keep the counter balanced.
    
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Reviewed-by: Fabien Dessenne <fabien.dessenne@st.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 144e4b3bc1a2f393ae21ce64b077171ef29d296c
Author: Qiushi Wu <wu000273@umn.edu>
Date:   Sun Jun 14 05:01:11 2020 +0200

    media: exynos4-is: Fix a reference count leak
    
    [ Upstream commit 64157b2cb1940449e7df2670e85781c690266588 ]
    
    pm_runtime_get_sync() increments the runtime PM usage counter even
    when it returns an error code, causing incorrect ref count if
    pm_runtime_put_noidle() is not called in error handling paths.
    Thus call pm_runtime_put_noidle() if pm_runtime_get_sync() fails.
    
    Signed-off-by: Qiushi Wu <wu000273@umn.edu>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3a48529951761916358d8ed924117bfb6fd223c
Author: Qiushi Wu <wu000273@umn.edu>
Date:   Sun Jun 14 05:10:58 2020 +0200

    media: exynos4-is: Fix a reference count leak due to pm_runtime_get_sync
    
    [ Upstream commit c47f7c779ef0458a58583f00c9ed71b7f5a4d0a2 ]
    
    On calling pm_runtime_get_sync() the reference count of the device
    is incremented. In case of failure, decrement the
    reference count before returning the error.
    
    Signed-off-by: Qiushi Wu <wu000273@umn.edu>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2306e29e8813b3726a244aed91942487a3d1c0b8
Author: Qiushi Wu <wu000273@umn.edu>
Date:   Sun Jun 14 05:18:29 2020 +0200

    media: exynos4-is: Fix several reference count leaks due to pm_runtime_get_sync
    
    [ Upstream commit 7ef64ceea0008c17e94a8a2c60c5d6d46f481996 ]
    
    On calling pm_runtime_get_sync() the reference count of the device
    is incremented. In case of failure, decrement the
    reference count before returning the error.
    
    Signed-off-by: Qiushi Wu <wu000273@umn.edu>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7c67c12d9e66288fc59924b32979df60d8bbb5b
Author: Oliver Neukum <oneukum@suse.com>
Date:   Wed Sep 16 15:50:51 2020 +0200

    media: ati_remote: sanity check for both endpoints
    
    [ Upstream commit a8be80053ea74bd9c3f9a3810e93b802236d6498 ]
    
    If you do sanity checks, you should do them for both endpoints.
    Hence introduce checking for endpoint type for the output
    endpoint, too.
    
    Reported-by: syzbot+998261c2ae5932458f6c@syzkaller.appspotmail.com
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d81a307bab7db22baca6d8026c14ea875d84feaf
Author: Pavel Machek <pavel@ucw.cz>
Date:   Sun Sep 20 11:01:37 2020 +0200

    media: firewire: fix memory leak
    
    [ Upstream commit b28e32798c78a346788d412f1958f36bb760ec03 ]
    
    Fix memory leak in node_probe.
    
    Signed-off-by: Pavel Machek (CIP) <pavel@denx.de>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 217f139551c0a56fac777c1a3a19df7f9b3ba0ac
Author: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Date:   Sat Oct 17 22:12:10 2020 +0530

    powerpc/powernv/dump: Fix race while processing OPAL dump
    
    [ Upstream commit 0a43ae3e2beb77e3481d812834d33abe270768ab ]
    
    Every dump reported by OPAL is exported to userspace through a sysfs
    interface and notified using kobject_uevent(). The userspace daemon
    (opal_errd) then reads the dump and acknowledges that the dump is
    saved safely to disk. Once acknowledged the kernel removes the
    respective sysfs file entry causing respective resources to be
    released including kobject.
    
    However it's possible the userspace daemon may already be scanning
    dump entries when a new sysfs dump entry is created by the kernel.
    User daemon may read this new entry and ack it even before kernel can
    notify userspace about it through kobject_uevent() call. If that
    happens then we have a potential race between
    dump_ack_store->kobject_put() and kobject_uevent which can lead to
    use-after-free of a kernfs object resulting in a kernel crash.
    
    This patch fixes this race by protecting the sysfs file
    creation/notification by holding a reference count on kobject until we
    safely send kobject_uevent().
    
    The function create_dump_obj() returns the dump object which if used
    by caller function will end up in use-after-free problem again.
    However, the return value of create_dump_obj() function isn't being
    used today and there is no need as well. Hence change it to return
    void to make this fix complete.
    
    Fixes: c7e64b9ce04a ("powerpc/powernv Platform dump interface")
    Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20201017164210.264619-1-hegdevasant@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8c1ace6f47e73f80cae623af0664eedc3867f46
Author: Michal Simek <michal.simek@xilinx.com>
Date:   Mon Aug 24 10:59:14 2020 +0200

    arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
    
    [ Upstream commit 35292518cb0a626fcdcabf739aed75060a018ab5 ]
    
    DT binding permits only one compatible string which was decribed in past by
    commit 63cab195bf49 ("i2c: removed work arounds in i2c driver for Zynq
    Ultrascale+ MPSoC").
    The commit aea37006e183 ("dt-bindings: i2c: cadence: Migrate i2c-cadence
    documentation to YAML") has converted binding to yaml and the following
    issues is reported:
    ...: i2c@ff030000: compatible: Additional items are not allowed
    ('cdns,i2c-r1p10' was unexpected)
            From schema:
    .../Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml fds
    ...: i2c@ff030000: compatible: ['cdns,i2c-r1p14', 'cdns,i2c-r1p10'] is too
    long
    
    The commit c415f9e8304a ("ARM64: zynqmp: Fix i2c node's compatible string")
    has added the second compatible string but without removing origin one.
    The patch is only keeping one compatible string "cdns,i2c-r1p14".
    
    Fixes: c415f9e8304a ("ARM64: zynqmp: Fix i2c node's compatible string")
    Signed-off-by: Michal Simek <michal.simek@xilinx.com>
    Link: https://lore.kernel.org/r/cc294ae1a79ef845af6809ddb4049f0c0f5bb87a.1598259551.git.michal.simek@xilinx.com
    Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0137bb476d4a4f811e3c84d8dbbefc12d90196b9
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Thu Aug 27 09:33:15 2020 +0200

    memory: fsl-corenet-cf: Fix handling of platform_get_irq() error
    
    [ Upstream commit dd85345abca60a8916617e8d75c0f9ce334336dd ]
    
    platform_get_irq() returns -ERRNO on error.  In such case comparison
    to 0 would pass the check.
    
    Fixes: 54afbec0d57f ("memory: Freescale CoreNet Coherency Fabric error reporting driver")
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Link: https://lore.kernel.org/r/20200827073315.29351-1-krzk@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4b2c1ec1c92cbd0cbeb4d9c98db1eb110a10e65a
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Aug 25 13:47:07 2020 +0300

    memory: omap-gpmc: Fix a couple off by ones
    
    [ Upstream commit 4c54228ac8fd55044195825873c50a524131fa53 ]
    
    These comparisons should be >= instead of > to prevent reading one
    element beyond the end of the gpmc_cs[] array.
    
    Fixes: cdd6928c589a ("ARM: OMAP2+: Add device-tree support for NOR flash")
    Fixes: f37e4580c409 ("ARM: OMAP2: Dynamic allocator for GPMC memory space")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Roger Quadros <rogerq@ti.com>
    Link: https://lore.kernel.org/r/20200825104707.GB278587@mwanda
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0062678e8de3c3d6f7e54853760bfb9ca66f5e64
Author: Robert Hoo <robert.hu@linux.intel.com>
Date:   Fri Aug 28 10:23:42 2020 +0800

    KVM: x86: emulating RDPID failure shall return #UD rather than #GP
    
    [ Upstream commit a9e2e0ae686094571378c72d8146b5a1a92d0652 ]
    
    Per Intel's SDM, RDPID takes a #UD if it is unsupported, which is more or
    less what KVM is emulating when MSR_TSC_AUX is not available.  In fact,
    there are no scenarios in which RDPID is supposed to #GP.
    
    Fixes: fb6d4d340e ("KVM: x86: emulate RDPID")
    Signed-off-by: Robert Hoo <robert.hu@linux.intel.com>
    Message-Id: <1598581422-76264-1-git-send-email-robert.hu@linux.intel.com>
    Reviewed-by: Jim Mattson <jmattson@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1335da6745ede9ce5090723b8fb3964cec3076f
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Tue Sep 15 17:56:40 2020 -0700

    Input: sun4i-ps2 - fix handling of platform_get_irq() error
    
    [ Upstream commit cafb3abea6136e59ea534004e5773361e196bb94 ]
    
    platform_get_irq() returns -ERRNO on error.  In such case comparison
    to 0 would pass the check.
    
    Fixes: e443631d20f5 ("Input: serio - add support for Alwinner A10/A20 PS/2 controller")
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Acked-by: Chen-Yu Tsai <wens@csie.org>
    Link: https://lore.kernel.org/r/20200828145744.3636-4-krzk@kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af23ef714853981ff0b0f5a4f7e971ee54e330da
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Tue Sep 15 17:52:15 2020 -0700

    Input: omap4-keypad - fix handling of platform_get_irq() error
    
    [ Upstream commit 4738dd1992fa13acfbbd71800c71c612f466fa44 ]
    
    platform_get_irq() returns -ERRNO on error.  In such case comparison
    to 0 would pass the check.
    
    Fixes: f3a1ba60dbdb ("Input: omap4-keypad - use platform device helpers")
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Link: https://lore.kernel.org/r/20200828145744.3636-2-krzk@kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7129eca0d528dc9d781e76a670db550f8f3df8d3
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Tue Sep 15 17:51:05 2020 -0700

    Input: ep93xx_keypad - fix handling of platform_get_irq() error
    
    [ Upstream commit 7d50f6656dacf085a00beeedbc48b19a37d17881 ]
    
    platform_get_irq() returns -ERRNO on error.  In such case comparison
    to 0 would pass the check.
    
    Fixes: 60214f058f44 ("Input: ep93xx_keypad - update driver to new core support")
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Link: https://lore.kernel.org/r/20200828145744.3636-1-krzk@kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c791d9f76fdbb7aecc0cb22a8bc6ac58e9198a0
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Sep 14 10:17:01 2020 -0700

    Input: imx6ul_tsc - clean up some errors in imx6ul_tsc_resume()
    
    [ Upstream commit 30df23c5ecdfb8da5b0bc17ceef67eff9e1b0957 ]
    
    If imx6ul_tsc_init() fails then we need to clean up the clocks.
    
    I reversed the "if (input_dev->users) {" condition to make the code a
    bit simpler.
    
    Fixes: 6cc527b05847 ("Input: imx6ul_tsc - propagate the errors")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/20200905124942.GC183976@mwanda
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07851a08d88166bb0339e954c05f150f08758407
Author: Alex Williamson <alex.williamson@redhat.com>
Date:   Mon Oct 19 07:13:55 2020 -0600

    vfio/pci: Clear token on bypass registration failure
    
    [ Upstream commit 852b1beecb6ff9326f7ca4bc0fe69ae860ebdb9e ]
    
    The eventfd context is used as our irqbypass token, therefore if an
    eventfd is re-used, our token is the same.  The irqbypass code will
    return an -EBUSY in this case, but we'll still attempt to unregister
    the producer, where if that duplicate token still exists, results in
    removing the wrong object.  Clear the token of failed producers so
    that they harmlessly fall out when unregistered.
    
    Fixes: 6d7425f109d2 ("vfio: Register/unregister irq_bypass_producer")
    Reported-by: guomin chen <guomin_chen@sina.com>
    Tested-by: guomin chen <guomin_chen@sina.com>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1a978f44688d1aca08a29982166341880ee9b5e4
Author: Tobias Jordan <kernel@cdqe.de>
Date:   Thu Oct 15 20:11:38 2020 -0700

    lib/crc32.c: fix trivial typo in preprocessor condition
    
    [ Upstream commit 904542dc56524f921a6bab0639ff6249c01e775f ]
    
    Whether crc32_be needs a lookup table is chosen based on CRC_LE_BITS.
    Obviously, the _be function should be governed by the _BE_ define.
    
    This probably never pops up as it's hard to come up with a configuration
    where CRC_BE_BITS isn't the same as CRC_LE_BITS and as nobody is using
    bitwise CRC anyway.
    
    Fixes: 46c5801eaf86 ("crc32: bolt on crc32c")
    Signed-off-by: Tobias Jordan <kernel@cdqe.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Link: https://lkml.kernel.org/r/20200923182122.GA3338@agrajag.zerfleddert.de
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 61481347b69e0a85f15817e64552ccf4fea76d33
Author: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Date:   Tue Sep 22 13:32:54 2020 +0530

    cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
    
    [ Upstream commit a2d0230b91f7e23ceb5d8fb6a9799f30517ec33a ]
    
    The patch avoids allocating cpufreq_policy on stack hence fixing frame
    size overflow in 'powernv_cpufreq_reboot_notifier':
    
      drivers/cpufreq/powernv-cpufreq.c: In function powernv_cpufreq_reboot_notifier:
      drivers/cpufreq/powernv-cpufreq.c:906:1: error: the frame size of 2064 bytes is larger than 2048 bytes
    
    Fixes: cf30af76 ("cpufreq: powernv: Set the cpus to nominal frequency during reboot/kexec")
    Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Reviewed-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200922080254.41497-1-srikar@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ceacf9a5688f6e50a90a8f2fdebacf425530dfa
Author: Kajol Jain <kjain@linux.ibm.com>
Date:   Sat Oct 3 13:19:39 2020 +0530

    powerpc/perf/hv-gpci: Fix starting index value
    
    [ Upstream commit 0f9866f7e85765bbda86666df56c92f377c3bc10 ]
    
    Commit 9e9f60108423f ("powerpc/perf/{hv-gpci, hv-common}: generate
    requests with counters annotated") adds a framework for defining
    gpci counters.
    In this patch, they adds starting_index value as '0xffffffffffffffff'.
    which is wrong as starting_index is of size 32 bits.
    
    Because of this, incase we try to run hv-gpci event we get error.
    
    In power9 machine:
    
    command#: perf stat -e hv_gpci/system_tlbie_count_and_time_tlbie_instructions_issued/
              -C 0 -I 1000
    event syntax error: '..bie_count_and_time_tlbie_instructions_issued/'
                                      \___ value too big for format, maximum is 4294967295
    
    This patch fix this issue and changes starting_index value to '0xffffffff'
    
    After this patch:
    
    command#: perf stat -e hv_gpci/system_tlbie_count_and_time_tlbie_instructions_issued/ -C 0 -I 1000
         1.000085786              1,024      hv_gpci/system_tlbie_count_and_time_tlbie_instructions_issued/
         2.000287818              1,024      hv_gpci/system_tlbie_count_and_time_tlbie_instructions_issued/
         2.439113909             17,408      hv_gpci/system_tlbie_count_and_time_tlbie_instructions_issued/
    
    Fixes: 9e9f60108423 ("powerpc/perf/{hv-gpci, hv-common}: generate requests with counters annotated")
    Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20201003074943.338618-1-kjain@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7c1b557e687f21c5bf1d81b8fb46ce376adc93e
Author: Daniel Thompson <daniel.thompson@linaro.org>
Date:   Wed Sep 9 15:17:08 2020 +0100

    kdb: Fix pager search for multi-line strings
    
    [ Upstream commit d081a6e353168f15e63eb9e9334757f20343319f ]
    
    Currently using forward search doesn't handle multi-line strings correctly.
    The search routine replaces line breaks with \0 during the search and, for
    regular searches ("help | grep Common\n"), there is code after the line
    has been discarded or printed to replace the break character.
    
    However during a pager search ("help\n" followed by "/Common\n") when the
    string is matched we will immediately return to normal output and the code
    that should restore the \n becomes unreachable. Fix this by restoring the
    replaced character when we disable the search mode and update the comment
    accordingly.
    
    Fixes: fb6daa7520f9d ("kdb: Provide forward search at more prompt")
    Link: https://lore.kernel.org/r/20200909141708.338273-1-daniel.thompson@linaro.org
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4d1df9a290fe0a6f6b1c9d29705b37b934e26848
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Wed Sep 9 11:49:23 2020 +0300

    perf intel-pt: Fix "context_switch event has no tid" error
    
    [ Upstream commit 7d537a8d2e76bc4fc71e34545ceaa463ac2cd928 ]
    
    A context_switch event can have no tid because pids can be detached from
    a task while the task is still running (in do_exit()). Note this won't
    happen with per-task contexts because then tracing stops at
    perf_event_exit_task()
    
    If a task with no tid gets preempted, or a dying task gets preempted and
    its parent releases it, when it subsequently gets switched back in,
    Intel PT will not be able to determine what task is running and prints
    an error "context_switch event has no tid". However, it is not really an
    error because the task is in kernel space and the decoder can continue
    to decode successfully. Fix by changing the error to be only a logged
    message, and make allowance for tid == -1.
    
    Example:
    
      Using 5.9-rc4 with Preemptible Kernel (Low-Latency Desktop) e.g.
      $ uname -r
      5.9.0-rc4
      $ grep PREEMPT .config
      # CONFIG_PREEMPT_NONE is not set
      # CONFIG_PREEMPT_VOLUNTARY is not set
      CONFIG_PREEMPT=y
      CONFIG_PREEMPT_COUNT=y
      CONFIG_PREEMPTION=y
      CONFIG_PREEMPT_RCU=y
      CONFIG_PREEMPT_NOTIFIERS=y
      CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
      CONFIG_DEBUG_PREEMPT=y
      # CONFIG_PREEMPT_TRACER is not set
      # CONFIG_PREEMPTIRQ_DELAY_TEST is not set
    
    Before:
    
      $ cat forkit.c
    
      #include <sys/types.h>
      #include <unistd.h>
      #include <sys/wait.h>
    
      int main()
      {
              pid_t child;
              int status = 0;
    
              child = fork();
              if (child == 0)
                      return 123;
              wait(&status);
              return 0;
      }
    
      $ gcc -o forkit forkit.c
      $ sudo ~/bin/perf record --kcore -a -m,64M -e intel_pt/cyc/k &
      [1] 11016
      $ taskset 2 ./forkit
      $ sudo pkill perf
      $ [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 17.262 MB perf.data ]
    
      [1]+  Terminated              sudo ~/bin/perf record --kcore -a -m,64M -e intel_pt/cyc/k
      $ sudo ~/bin/perf script --show-task-events --show-switch-events --itrace=iqqe-o -C 1 --ns | grep -C 2 forkit
      context_switch event has no tid
               taskset 11019 [001] 66663.270045029:          1 instructions:k:  ffffffffb1d9f844 strnlen_user+0xb4 ([kernel.kallsyms])
               taskset 11019 [001] 66663.270201816:          1 instructions:k:  ffffffffb1a83121 unmap_page_range+0x561 ([kernel.kallsyms])
                forkit 11019 [001] 66663.270327553: PERF_RECORD_COMM exec: forkit:11019/11019
                forkit 11019 [001] 66663.270420028:          1 instructions:k:  ffffffffb1db9537 __clear_user+0x27 ([kernel.kallsyms])
                forkit 11019 [001] 66663.270648704:          1 instructions:k:  ffffffffb18829e6 do_user_addr_fault+0xf6 ([kernel.kallsyms])
                forkit 11019 [001] 66663.270833163:          1 instructions:k:  ffffffffb230a825 irqentry_exit_to_user_mode+0x15 ([kernel.kallsyms])
                forkit 11019 [001] 66663.271092359:          1 instructions:k:  ffffffffb1aea3d9 lock_page_memcg+0x9 ([kernel.kallsyms])
                forkit 11019 [001] 66663.271207092: PERF_RECORD_FORK(11020:11020):(11019:11019)
                forkit 11019 [001] 66663.271234775: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid: 11020/11020
                forkit 11020 [001] 66663.271238407: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid: 11019/11019
                forkit 11020 [001] 66663.271312066:          1 instructions:k:  ffffffffb1a88140 handle_mm_fault+0x10 ([kernel.kallsyms])
                forkit 11020 [001] 66663.271476225: PERF_RECORD_EXIT(11020:11020):(11019:11019)
                forkit 11020 [001] 66663.271497488: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid: 11019/11019
                forkit 11019 [001] 66663.271500523: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid: 11020/11020
                forkit 11019 [001] 66663.271517241:          1 instructions:k:  ffffffffb24012cd error_entry+0x6d ([kernel.kallsyms])
                forkit 11019 [001] 66663.271664080: PERF_RECORD_EXIT(11019:11019):(1386:1386)
    
    After:
    
      $ sudo ~/bin/perf script --show-task-events --show-switch-events --itrace=iqqe-o -C 1 --ns | grep -C 2 forkit
               taskset 11019 [001] 66663.270045029:          1 instructions:k:  ffffffffb1d9f844 strnlen_user+0xb4 ([kernel.kallsyms])
               taskset 11019 [001] 66663.270201816:          1 instructions:k:  ffffffffb1a83121 unmap_page_range+0x561 ([kernel.kallsyms])
                forkit 11019 [001] 66663.270327553: PERF_RECORD_COMM exec: forkit:11019/11019
                forkit 11019 [001] 66663.270420028:          1 instructions:k:  ffffffffb1db9537 __clear_user+0x27 ([kernel.kallsyms])
                forkit 11019 [001] 66663.270648704:          1 instructions:k:  ffffffffb18829e6 do_user_addr_fault+0xf6 ([kernel.kallsyms])
                forkit 11019 [001] 66663.270833163:          1 instructions:k:  ffffffffb230a825 irqentry_exit_to_user_mode+0x15 ([kernel.kallsyms])
                forkit 11019 [001] 66663.271092359:          1 instructions:k:  ffffffffb1aea3d9 lock_page_memcg+0x9 ([kernel.kallsyms])
                forkit 11019 [001] 66663.271207092: PERF_RECORD_FORK(11020:11020):(11019:11019)
                forkit 11019 [001] 66663.271234775: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid: 11020/11020
                forkit 11020 [001] 66663.271238407: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid: 11019/11019
                forkit 11020 [001] 66663.271312066:          1 instructions:k:  ffffffffb1a88140 handle_mm_fault+0x10 ([kernel.kallsyms])
                forkit 11020 [001] 66663.271476225: PERF_RECORD_EXIT(11020:11020):(11019:11019)
                forkit 11020 [001] 66663.271497488: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid: 11019/11019
                forkit 11019 [001] 66663.271500523: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid: 11020/11020
                forkit 11019 [001] 66663.271517241:          1 instructions:k:  ffffffffb24012cd error_entry+0x6d ([kernel.kallsyms])
                forkit 11019 [001] 66663.271664080: PERF_RECORD_EXIT(11019:11019):(1386:1386)
                forkit 11019 [001] 66663.271688752: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:    -1/-1
                   :-1    -1 [001] 66663.271692086: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid: 11019/11019
                    :-1    -1 [001] 66663.271707466:          1 instructions:k:  ffffffffb18eb096 update_load_avg+0x306 ([kernel.kallsyms])
    
    Fixes: 86c2786994bd7c ("perf intel-pt: Add support for PERF_RECORD_SWITCH")
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Yu-cheng Yu <yu-cheng.yu@intel.com>
    Link: http://lore.kernel.org/lkml/20200909084923.9096-3-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0da0e2437c495e9875d93064229730833cfd1ea9
Author: Finn Thain <fthain@telegraphics.com.au>
Date:   Sat Sep 5 09:02:20 2020 +1000

    powerpc/tau: Disable TAU between measurements
    
    [ Upstream commit e63d6fb5637e92725cf143559672a34b706bca4f ]
    
    Enabling CONFIG_TAU_INT causes random crashes:
    
    Unrecoverable exception 1700 at c0009414 (msr=1000)
    Oops: Unrecoverable exception, sig: 6 [#1]
    BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.7.0-pmac-00043-gd5f545e1a8593 #5
    NIP:  c0009414 LR: c0009414 CTR: c00116fc
    REGS: c0799eb8 TRAP: 1700   Not tainted  (5.7.0-pmac-00043-gd5f545e1a8593)
    MSR:  00001000 <ME>  CR: 22000228  XER: 00000100
    
    GPR00: 00000000 c0799f70 c076e300 00800000 0291c0ac 00e00000 c076e300 00049032
    GPR08: 00000001 c00116fc 00000000 dfbd3200 ffffffff 007f80a8 00000000 00000000
    GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 c075ce04
    GPR24: c075ce04 dfff8880 c07b0000 c075ce04 00080000 00000001 c079ef98 c079ef5c
    NIP [c0009414] arch_cpu_idle+0x24/0x6c
    LR [c0009414] arch_cpu_idle+0x24/0x6c
    Call Trace:
    [c0799f70] [00000001] 0x1 (unreliable)
    [c0799f80] [c0060990] do_idle+0xd8/0x17c
    [c0799fa0] [c0060ba4] cpu_startup_entry+0x20/0x28
    [c0799fb0] [c072d220] start_kernel+0x434/0x44c
    [c0799ff0] [00003860] 0x3860
    Instruction dump:
    XXXXXXXX XXXXXXXX XXXXXXXX 3d20c07b XXXXXXXX XXXXXXXX XXXXXXXX 7c0802a6
    XXXXXXXX XXXXXXXX XXXXXXXX 4e800421 XXXXXXXX XXXXXXXX XXXXXXXX 7d2000a6
    ---[ end trace 3a0c9b5cb216db6b ]---
    
    Resolve this problem by disabling each THRMn comparator when handling
    the associated THRMn interrupt and by disabling the TAU entirely when
    updating THRMn thresholds.
    
    Fixes: 1da177e4c3f41 ("Linux-2.6.12-rc2")
    Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
    Tested-by: Stan Johnson <userm57@yahoo.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/5a0ba3dc5612c7aac596727331284a3676c08472.1599260540.git.fthain@telegraphics.com.au
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1cd4be90cff1b32362825e9f4cec4e4c33c76166
Author: Finn Thain <fthain@telegraphics.com.au>
Date:   Sat Sep 5 09:02:20 2020 +1000

    powerpc/tau: Remove duplicated set_thresholds() call
    
    [ Upstream commit 420ab2bc7544d978a5d0762ee736412fe9c796ab ]
    
    The commentary at the call site seems to disagree with the code. The
    conditional prevents calling set_thresholds() via the exception handler,
    which appears to crash. Perhaps that's because it immediately triggers
    another TAU exception. Anyway, calling set_thresholds() from TAUupdate()
    is redundant because tau_timeout() does so.
    
    Fixes: 1da177e4c3f41 ("Linux-2.6.12-rc2")
    Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
    Tested-by: Stan Johnson <userm57@yahoo.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/d7c7ee33232cf72a6a6bbb6ef05838b2e2b113c0.1599260540.git.fthain@telegraphics.com.au
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 271d5a05732a5ca92b03873b1aaa4a5c9e0b63d0
Author: Finn Thain <fthain@telegraphics.com.au>
Date:   Sat Sep 5 09:02:20 2020 +1000

    powerpc/tau: Use appropriate temperature sample interval
    
    [ Upstream commit 66943005cc41f48e4d05614e8f76c0ca1812f0fd ]
    
    According to the MPC750 Users Manual, the SITV value in Thermal
    Management Register 3 is 13 bits long. The present code calculates the
    SITV value as 60 * 500 cycles. This would overflow to give 10 us on
    a 500 MHz CPU rather than the intended 60 us. (But according to the
    Microprocessor Datasheet, there is also a factor of 266 that has to be
    applied to this value on certain parts i.e. speed sort above 266 MHz.)
    Always use the maximum cycle count, as recommended by the Datasheet.
    
    Fixes: 1da177e4c3f41 ("Linux-2.6.12-rc2")
    Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
    Tested-by: Stan Johnson <userm57@yahoo.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/896f542e5f0f1d6cf8218524c2b67d79f3d69b3c.1599260540.git.fthain@telegraphics.com.au
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f7093cbc379214b3fe2b3e50b3b3c387ea4a3957
Author: Guillaume Tucker <guillaume.tucker@collabora.com>
Date:   Tue Sep 1 16:58:06 2020 +0100

    ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
    
    [ Upstream commit 8e007b367a59bcdf484c81f6df9bd5a4cc179ca6 ]
    
    The L310_PREFETCH_CTRL register bits 28 and 29 to enable data and
    instruction prefetch respectively can also be accessed via the
    L2X0_AUX_CTRL register.  They appear to be actually wired together in
    hardware between the registers.  Changing them in the prefetch
    register only will get undone when restoring the aux control register
    later on.  For this reason, set these bits in both registers during
    initialisation according to the devicetree property values.
    
    Link: https://lore.kernel.org/lkml/76f2f3ad5e77e356e0a5b99ceee1e774a2842c25.1597061474.git.guillaume.tucker@collabora.com/
    
    Fixes: ec3bd0e68a67 ("ARM: 8391/1: l2c: add options to overwrite prefetching behavior")
    Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c521b149da520b70cc6ef46ba1f51ed3f49f7f76
Author: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Date:   Thu Sep 3 15:42:17 2020 +1200

    mtd: mtdoops: Don't write panic data twice
    
    [ Upstream commit c1cf1d57d1492235309111ea6a900940213a9166 ]
    
    If calling mtdoops_write, don't also schedule work to be done later.
    
    Although this appears to not be causing an issue, possibly because the
    scheduled work will never get done, it is confusing.
    
    Fixes: 016c1291ce70 ("mtd: mtdoops: do not use mtd->panic_write directly")
    Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20200903034217.23079-1-mark.tomlinson@alliedtelesis.co.nz
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d7fc05f8862771c49776e256ad932669ca9b167
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 5 16:01:16 2020 +0200

    mtd: lpddr: fix excessive stack usage with clang
    
    [ Upstream commit 3e1b6469f8324bee5927b063e2aca30d3e56b907 ]
    
    Building lpddr2_nvm with clang can result in a giant stack usage
    in one function:
    
    drivers/mtd/lpddr/lpddr2_nvm.c:399:12: error: stack frame size of 1144 bytes in function 'lpddr2_nvm_probe' [-Werror,-Wframe-larger-than=]
    
    The problem is that clang decides to build a copy of the mtd_info
    structure on the stack and then do a memcpy() into the actual version. It
    shouldn't really do it that way, but it's not strictly a bug either.
    
    As a workaround, use a static const version of the structure to assign
    most of the members upfront and then only set the few members that
    require runtime knowledge at probe time.
    
    Fixes: 96ba9dd65788 ("mtd: lpddr: add driver for LPDDR2-NVM PCM memories")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20200505140136.263461-1-arnd@arndb.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8015c658f167e08303d77c167c6a5644a6e07ba9
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Wed Jul 4 10:03:27 2018 +0200

    powerpc/icp-hv: Fix missing of_node_put() in success path
    
    [ Upstream commit d3e669f31ec35856f5e85df9224ede5bdbf1bc7b ]
    
    Both of_find_compatible_node() and of_find_node_by_type() will return
    a refcounted node on success - thus for the success path the node must
    be explicitly released with a of_node_put().
    
    Fixes: 0b05ac6e2480 ("powerpc/xics: Rewrite XICS driver")
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/1530691407-3991-1-git-send-email-hofrat@osadl.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ac3d24dee8e618085df66abc5edeb7a5f4c5d864
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Mon Jul 2 11:08:16 2018 +0200

    powerpc/pseries: Fix missing of_node_put() in rng_init()
    
    [ Upstream commit 67c3e59443f5fc77be39e2ce0db75fbfa78c7965 ]
    
    The call to of_find_compatible_node() returns a node pointer with
    refcount incremented thus it must be explicitly decremented here
    before returning.
    
    Fixes: a489043f4626 ("powerpc/pseries: Implement arch_get_random_long() based on H_RANDOM")
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/1530522496-14816-1-git-send-email-hofrat@osadl.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit de0034fdfd84c056691c0c6cee424749b945e75c
Author: HÃ¥kon Bugge <haakon.bugge@oracle.com>
Date:   Mon Aug 3 08:19:41 2020 +0200

    IB/mlx4: Adjust delayed work when a dup is observed
    
    [ Upstream commit 785167a114855c5aa75efca97000e405c2cc85bf ]
    
    When scheduling delayed work to clean up the cache, if the entry already
    has been scheduled for deletion, we adjust the delay.
    
    Fixes: 3cf69cc8dbeb ("IB/mlx4: Add CM paravirtualization")
    Link: https://lore.kernel.org/r/20200803061941.1139994-7-haakon.bugge@oracle.com
    Signed-off-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c9d72c7710c64330d21a9b16c750d701cf920c7
Author: Valentin Vidic <vvidic@valentin-vidic.from.hr>
Date:   Mon Oct 12 00:03:29 2020 +0200

    net: korina: fix kfree of rx/tx descriptor array
    
    [ Upstream commit 3af5f0f5c74ecbaf757ef06c3f80d56751277637 ]
    
    kmalloc returns KSEG0 addresses so convert back from KSEG1
    in kfree. Also make sure array is freed when the driver is
    unloaded from the kernel.
    
    Fixes: ef11291bcd5f ("Add support the Korina (IDT RC32434) Ethernet MAC")
    Signed-off-by: Valentin Vidic <vvidic@valentin-vidic.from.hr>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e4d4f2a0a8a53fcbce32ebd37de598eaf88c3d5
Author: Tom Rix <trix@redhat.com>
Date:   Sun Oct 4 06:19:31 2020 -0700

    mwifiex: fix double free
    
    [ Upstream commit 53708f4fd9cfe389beab5c8daa763bcd0e0b4aef ]
    
    clang static analysis reports this problem:
    
    sdio.c:2403:3: warning: Attempt to free released memory
            kfree(card->mpa_rx.buf);
            ^~~~~~~~~~~~~~~~~~~~~~~
    
    When mwifiex_init_sdio() fails in its first call to
    mwifiex_alloc_sdio_mpa_buffer, it falls back to calling it
    again.  If the second alloc of mpa_tx.buf fails, the error
    handler will try to free the old, previously freed mpa_rx.buf.
    Reviewing the code, it looks like a second double free would
    happen with mwifiex_cleanup_sdio().
    
    So set both pointers to NULL when they are freed.
    
    Fixes: 5e6e3a92b9a4 ("wireless: mwifiex: initial commit for Marvell mwifiex driver")
    Signed-off-by: Tom Rix <trix@redhat.com>
    Reviewed-by: Brian Norris <briannorris@chromium.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20201004131931.29782-1-trix@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7f13679b08765ad6ad94af9d2d713aaf4314e6d
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Sep 28 13:07:18 2020 +0200

    nl80211: fix non-split wiphy information
    
    [ Upstream commit ab10c22bc3b2024f0c9eafa463899a071eac8d97 ]
    
    When dumping wiphy information, we try to split the data into
    many submessages, but for old userspace we still support the
    old mode where this doesn't happen.
    
    However, in this case we were not resetting our state correctly
    and dumping multiple messages for each wiphy, which would have
    broken such older userspace.
    
    This was broken pretty much immediately afterwards because it
    only worked in the original commit where non-split dumps didn't
    have any more data than split dumps...
    
    Fixes: fe1abafd942f ("nl80211: re-add channel width and extended capa advertising")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Link: https://lore.kernel.org/r/20200928130717.3e6d9c6bada2.Ie0f151a8d0d00a8e1e18f6a8c9244dd02496af67@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7374679c684fb88f37ead0e49da8f0536734d6f5
Author: Lorenzo Colitti <lorenzo@google.com>
Date:   Wed Aug 19 01:19:49 2020 +0900

    usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
    
    [ Upstream commit 4eea21dc67b0c6ba15ae41b1defa113a680a858e ]
    
    The u_ether driver has a qmult setting that multiplies the
    transmit queue length (which by default is 2).
    
    The intent is that it should be enabled at high/super speed, but
    because the code does not explicitly check for USB_SUPER_PLUS,
    it is disabled at that speed.
    
    Fix this by ensuring that the queue multiplier is enabled for any
    wired link at high speed or above. Using >= for USB_SPEED_*
    constants seems correct because it is what the gadget_is_xxxspeed
    functions do.
    
    The queue multiplier substantially helps performance at higher
    speeds. On a direct SuperSpeed Plus link to a Linux laptop,
    iperf3 single TCP stream:
    
    Before (qmult=1): 1.3 Gbps
    After  (qmult=5): 3.2 Gbps
    
    Fixes: 04617db7aa68 ("usb: gadget: add SS descriptors to Ethernet gadget")
    Reviewed-by: Maciej Żenczykowski <maze@google.com>
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit afad395152d2ff5a3e13c34f3911a59b55aab21e
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Sep 11 14:33:26 2020 +0300

    mfd: sm501: Fix leaks in probe()
    
    [ Upstream commit 8ce24f8967df2836b4557a23e74dc4bb098249f1 ]
    
    This code should clean up if sm501_init_dev() fails.
    
    Fixes: b6d6454fdb66 ("[PATCH] mfd: SM501 core driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8b71a17ba4c53c74d01689946f216a183b923eb3
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue Sep 29 22:25:10 2020 +0200

    net: enic: Cure the enic api locking trainwreck
    
    [ Upstream commit a53b59ece86c86d16d12ccdaa1ad0c78250a9d96 ]
    
    enic_dev_wait() has a BUG_ON(in_interrupt()).
    
    Chasing the callers of enic_dev_wait() revealed the gems of enic_reset()
    and enic_tx_hang_reset() which are both invoked through work queues in
    order to be able to call rtnl_lock(). So far so good.
    
    After locking rtnl both functions acquire enic::enic_api_lock which
    serializes against the (ab)use from infiniband. This is where the
    trainwreck starts.
    
    enic::enic_api_lock is a spin_lock() which implicitly disables preemption,
    but both functions invoke a ton of functions under that lock which can
    sleep. The BUG_ON(in_interrupt()) does not trigger in that case because it
    can't detect the preempt disabled condition.
    
    This clearly has never been tested with any of the mandatory debug options
    for 7+ years, which would have caught that for sure.
    
    Cure it by adding a enic_api_busy member to struct enic, which is modified
    and evaluated with enic::enic_api_lock held.
    
    If enic_api_devcmd_proxy_by_index() observes enic::enic_api_busy as true,
    it drops enic::enic_api_lock and busy waits for enic::enic_api_busy to
    become false.
    
    It would be smarter to wait for a completion of that busy period, but
    enic_api_devcmd_proxy_by_index() is called with other spin locks held which
    obviously can't sleep.
    
    Remove the BUG_ON(in_interrupt()) check as well because it's incomplete and
    with proper debugging enabled the problem would have been caught from the
    debug checks in schedule_timeout().
    
    Fixes: 0b038566c0ea ("drivers/net: enic: Add an interface for USNIC to interact with firmware")
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41d4df6ff1485c45ef2b687329c10f7d14fbcb84
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Sep 24 11:36:19 2020 -0700

    quota: clear padding in v2r1_mem2diskdqb()
    
    [ Upstream commit 3d3dc274ce736227e3197868ff749cff2f175f63 ]
    
    Freshly allocated memory contains garbage, better make sure
    to init all struct v2r1_disk_dqblk fields to avoid KMSAN report:
    
    BUG: KMSAN: uninit-value in qtree_entry_unused+0x137/0x1b0 fs/quota/quota_tree.c:218
    CPU: 0 PID: 23373 Comm: syz-executor.1 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
     qtree_entry_unused+0x137/0x1b0 fs/quota/quota_tree.c:218
     v2r1_mem2diskdqb+0x43d/0x710 fs/quota/quota_v2.c:285
     qtree_write_dquot+0x226/0x870 fs/quota/quota_tree.c:394
     v2_write_dquot+0x1ad/0x280 fs/quota/quota_v2.c:333
     dquot_commit+0x4af/0x600 fs/quota/dquot.c:482
     ext4_write_dquot fs/ext4/super.c:5934 [inline]
     ext4_mark_dquot_dirty+0x4d8/0x6a0 fs/ext4/super.c:5985
     mark_dquot_dirty fs/quota/dquot.c:347 [inline]
     mark_all_dquot_dirty fs/quota/dquot.c:385 [inline]
     dquot_alloc_inode+0xc05/0x12b0 fs/quota/dquot.c:1755
     __ext4_new_inode+0x8204/0x9d70 fs/ext4/ialloc.c:1155
     ext4_tmpfile+0x41a/0x850 fs/ext4/namei.c:2686
     vfs_tmpfile+0x2a2/0x570 fs/namei.c:3283
     do_tmpfile fs/namei.c:3316 [inline]
     path_openat+0x4035/0x6a90 fs/namei.c:3359
     do_filp_open+0x2b8/0x710 fs/namei.c:3395
     do_sys_openat2+0xa88/0x1140 fs/open.c:1168
     do_sys_open fs/open.c:1184 [inline]
     __do_compat_sys_openat fs/open.c:1242 [inline]
     __se_compat_sys_openat+0x2a4/0x310 fs/open.c:1240
     __ia32_compat_sys_openat+0x56/0x70 fs/open.c:1240
     do_syscall_32_irqs_on arch/x86/entry/common.c:80 [inline]
     __do_fast_syscall_32+0x129/0x180 arch/x86/entry/common.c:139
     do_fast_syscall_32+0x6a/0xc0 arch/x86/entry/common.c:162
     do_SYSENTER_32+0x73/0x90 arch/x86/entry/common.c:205
     entry_SYSENTER_compat_after_hwframe+0x4d/0x5c
    RIP: 0023:0xf7ff4549
    Code: b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 eb 0d 90 90 90 90 90 90 90 90 90 90 90 90
    RSP: 002b:00000000f55cd0cc EFLAGS: 00000296 ORIG_RAX: 0000000000000127
    RAX: ffffffffffffffda RBX: 00000000ffffff9c RCX: 0000000020000000
    RDX: 0000000000410481 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
    R13: 0000000000000000 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]
     slab_alloc mm/slub.c:2916 [inline]
     __kmalloc+0x2bb/0x4b0 mm/slub.c:3982
     kmalloc include/linux/slab.h:559 [inline]
     getdqbuf+0x56/0x150 fs/quota/quota_tree.c:52
     qtree_write_dquot+0xf2/0x870 fs/quota/quota_tree.c:378
     v2_write_dquot+0x1ad/0x280 fs/quota/quota_v2.c:333
     dquot_commit+0x4af/0x600 fs/quota/dquot.c:482
     ext4_write_dquot fs/ext4/super.c:5934 [inline]
     ext4_mark_dquot_dirty+0x4d8/0x6a0 fs/ext4/super.c:5985
     mark_dquot_dirty fs/quota/dquot.c:347 [inline]
     mark_all_dquot_dirty fs/quota/dquot.c:385 [inline]
     dquot_alloc_inode+0xc05/0x12b0 fs/quota/dquot.c:1755
     __ext4_new_inode+0x8204/0x9d70 fs/ext4/ialloc.c:1155
     ext4_tmpfile+0x41a/0x850 fs/ext4/namei.c:2686
     vfs_tmpfile+0x2a2/0x570 fs/namei.c:3283
     do_tmpfile fs/namei.c:3316 [inline]
     path_openat+0x4035/0x6a90 fs/namei.c:3359
     do_filp_open+0x2b8/0x710 fs/namei.c:3395
     do_sys_openat2+0xa88/0x1140 fs/open.c:1168
     do_sys_open fs/open.c:1184 [inline]
     __do_compat_sys_openat fs/open.c:1242 [inline]
     __se_compat_sys_openat+0x2a4/0x310 fs/open.c:1240
     __ia32_compat_sys_openat+0x56/0x70 fs/open.c:1240
     do_syscall_32_irqs_on arch/x86/entry/common.c:80 [inline]
     __do_fast_syscall_32+0x129/0x180 arch/x86/entry/common.c:139
     do_fast_syscall_32+0x6a/0xc0 arch/x86/entry/common.c:162
     do_SYSENTER_32+0x73/0x90 arch/x86/entry/common.c:205
     entry_SYSENTER_compat_after_hwframe+0x4d/0x5c
    
    Fixes: 498c60153ebb ("quota: Implement quota format with 64-bit space and inode limits")
    Link: https://lore.kernel.org/r/20200924183619.4176790-1-edumazet@google.com
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Jan Kara <jack@suse.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 92e9a5ca2c6cec0df1c61c03ffd02c4eac4fd741
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Sep 22 10:38:56 2020 +0200

    ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
    
    [ Upstream commit 2759caad2600d503c3b0ed800e7e03d2cd7a4c05 ]
    
    Recently we applied a fix to cover the whole OSS sequencer ioctls with
    the mutex for dealing with the possible races.  This works fine in
    general, but in theory, this may lead to unexpectedly long stall if an
    ioctl like SNDCTL_SEQ_SYNC is issued and an event with the far future
    timestamp was queued.
    
    For fixing such a potential stall, this patch changes the mutex lock
    applied conditionally excluding such an ioctl command.  Also, change
    the mutex_lock() with the interruptible version for user to allow
    escaping from the big-hammer mutex.
    
    Fixes: 80982c7e834e ("ALSA: seq: oss: Serialize ioctls")
    Suggested-by: Pavel Machek <pavel@ucw.cz>
    Link: https://lore.kernel.org/r/20200922083856.28572-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b50a0adaf4bb634250e0e47967c9af21a743f28f
Author: Souptick Joarder <jrdr.linux@gmail.com>
Date:   Sun Sep 20 08:21:35 2020 +0530

    misc: mic: scif: Fix error handling path
    
    [ Upstream commit a81072a9c0ae734b7889929b0bc070fe3f353f0e ]
    
    Inside __scif_pin_pages(), when map_flags != SCIF_MAP_KERNEL it
    will call pin_user_pages_fast() to map nr_pages. However,
    pin_user_pages_fast() might fail with a return value -ERRNO.
    
    The return value is stored in pinned_pages->nr_pages. which in
    turn is passed to unpin_user_pages(), which expects
    pinned_pages->nr_pages >=0, else disaster.
    
    Fix this by assigning pinned_pages->nr_pages to 0 if
    pin_user_pages_fast() returns -ERRNO.
    
    Fixes: ba612aa8b487 ("misc: mic: SCIF memory registration and unregistration")
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Ira Weiny <ira.weiny@intel.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: John Hubbard <jhubbard@nvidia.com>
    Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
    Link: https://lore.kernel.org/r/1600570295-29546-1-git-send-email-jrdr.linux@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86891e5934fe45aff3888aac192f455bd01925db
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Sep 18 17:27:32 2020 +0300

    ath6kl: wmi: prevent a shift wrapping bug in ath6kl_wmi_delete_pstream_cmd()
    
    [ Upstream commit 6a950755cec1a90ddaaff3e4acb5333617441c32 ]
    
    The "tsid" is a user controlled u8 which comes from debugfs.  Values
    more than 15 are invalid because "active_tsids" is a 16 bit variable.
    If the value of "tsid" is more than 31 then that leads to a shift
    wrapping bug.
    
    Fixes: 8fffd9e5ec9e ("ath6kl: Implement support for QOS-enable and QOS-disable from userspace")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200918142732.GA909725@mwanda
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4e3cd56bf188ca8fd2e49da8cd5f7ac8835de531
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Aug 24 11:57:35 2020 +0300

    HID: roccat: add bounds checking in kone_sysfs_write_settings()
    
    [ Upstream commit d4f98dbfe717490e771b6e701904bfcf4b4557f0 ]
    
    This code doesn't check if "settings->startup_profile" is within bounds
    and that could result in an out of bounds array access.  What the code
    does do is it checks if the settings can be written to the firmware, so
    it's possible that the firmware has a bounds check?  It's safer and
    easier to verify when the bounds checking is done in the kernel.
    
    Fixes: 14bf62cde794 ("HID: add driver for Roccat Kone gaming mouse")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 353ed733f14359d020d42492fc3e92885c1a139e
Author: Tom Rix <trix@redhat.com>
Date:   Wed Aug 5 07:52:08 2020 -0700

    video: fbdev: sis: fix null ptr dereference
    
    [ Upstream commit ad6f93e9cd56f0b10e9b22e3e137d17a1a035242 ]
    
    Clang static analysis reports this representative error
    
    init.c:2501:18: warning: Array access (from variable 'queuedata') results
      in a null pointer dereference
          templ |= ((queuedata[i] & 0xc0) << 3);
    
    This is the problem block of code
    
       if(ModeNo > 0x13) {
          ...
          if(SiS_Pr->ChipType == SIS_730) {
             queuedata = &FQBQData730[0];
          } else {
             queuedata = &FQBQData[0];
          }
       } else {
    
       }
    
    queuedata is not set in the else block
    
    Reviewing the old code, the arrays FQBQData730 and FQBQData were
    used directly.
    
    So hoist the setting of queuedata out of the if-else block.
    
    Fixes: 544393fe584d ("[PATCH] sisfb update")
    Signed-off-by: Tom Rix <trix@redhat.com>
    Cc: Thomas Winischhofer <thomas@winischhofer.net>
    Cc: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200805145208.17727-1-trix@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2ea7bdfae5d3c7b6d47129d0e5f9e11c892afc02
Author: Colin Ian King <colin.king@canonical.com>
Date:   Thu Jul 23 18:02:27 2020 +0100

    video: fbdev: vga16fb: fix setting of pixclock because a pass-by-value error
    
    [ Upstream commit c72fab81ceaa54408b827a2f0486d9a0f4be34cf ]
    
    The pixclock is being set locally because it is being passed as a
    pass-by-value argument rather than pass-by-reference, so the computed
    pixclock is never being set in var->pixclock. Fix this by passing
    by reference.
    
    [This dates back to 2002, I found the offending commit from the git
    history git://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git ]
    
    Addresses-Coverity: ("Unused value")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Jani Nikula <jani.nikula@intel.com>
    [b.zolnierkie: minor patch summary fixup]
    [b.zolnierkie: removed "Fixes:" tag (not in upstream tree)]
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200723170227.996229-1-colin.king@canonical.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0562d5581442d5df3395674f82b80e8c243505f
Author: Souptick Joarder <jrdr.linux@gmail.com>
Date:   Wed Sep 2 02:51:11 2020 +0530

    drivers/virt/fsl_hypervisor: Fix error handling path
    
    [ Upstream commit 7f360bec37857bfd5a48cef21d86f58a09a3df63 ]
    
    First, when memory allocation for sg_list_unaligned failed, there
    is a bug of calling put_pages() as we haven't pinned any pages.
    
    Second, if get_user_pages_fast() failed we should unpin num_pinned
    pages.
    
    This will address both.
    
    As part of these changes, minor update in documentation.
    
    Fixes: 6db7199407ca ("drivers/virt: introduce Freescale hypervisor management driver")
    Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
    Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: John Hubbard <jhubbard@nvidia.com>
    Link: https://lore.kernel.org/r/1598995271-6755-1-git-send-email-jrdr.linux@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8908ffa7742c880f919ed6901846d30d115a7dff
Author: Artem Savkov <asavkov@redhat.com>
Date:   Wed Sep 2 14:00:45 2020 +0200

    pty: do tty_flip_buffer_push without port->lock in pty_write
    
    [ Upstream commit 71a174b39f10b4b93223d374722aa894b5d8a82e ]
    
    b6da31b2c07c "tty: Fix data race in tty_insert_flip_string_fixed_flag"
    puts tty_flip_buffer_push under port->lock introducing the following
    possible circular locking dependency:
    
    [30129.876566] ======================================================
    [30129.876566] WARNING: possible circular locking dependency detected
    [30129.876567] 5.9.0-rc2+ #3 Tainted: G S      W
    [30129.876568] ------------------------------------------------------
    [30129.876568] sysrq.sh/1222 is trying to acquire lock:
    [30129.876569] ffffffff92c39480 (console_owner){....}-{0:0}, at: console_unlock+0x3fe/0xa90
    
    [30129.876572] but task is already holding lock:
    [30129.876572] ffff888107cb9018 (&pool->lock/1){-.-.}-{2:2}, at: show_workqueue_state.cold.55+0x15b/0x6ca
    
    [30129.876576] which lock already depends on the new lock.
    
    [30129.876577] the existing dependency chain (in reverse order) is:
    
    [30129.876578] -> #3 (&pool->lock/1){-.-.}-{2:2}:
    [30129.876581]        _raw_spin_lock+0x30/0x70
    [30129.876581]        __queue_work+0x1a3/0x10f0
    [30129.876582]        queue_work_on+0x78/0x80
    [30129.876582]        pty_write+0x165/0x1e0
    [30129.876583]        n_tty_write+0x47f/0xf00
    [30129.876583]        tty_write+0x3d6/0x8d0
    [30129.876584]        vfs_write+0x1a8/0x650
    
    [30129.876588] -> #2 (&port->lock#2){-.-.}-{2:2}:
    [30129.876590]        _raw_spin_lock_irqsave+0x3b/0x80
    [30129.876591]        tty_port_tty_get+0x1d/0xb0
    [30129.876592]        tty_port_default_wakeup+0xb/0x30
    [30129.876592]        serial8250_tx_chars+0x3d6/0x970
    [30129.876593]        serial8250_handle_irq.part.12+0x216/0x380
    [30129.876593]        serial8250_default_handle_irq+0x82/0xe0
    [30129.876594]        serial8250_interrupt+0xdd/0x1b0
    [30129.876595]        __handle_irq_event_percpu+0xfc/0x850
    
    [30129.876602] -> #1 (&port->lock){-.-.}-{2:2}:
    [30129.876605]        _raw_spin_lock_irqsave+0x3b/0x80
    [30129.876605]        serial8250_console_write+0x12d/0x900
    [30129.876606]        console_unlock+0x679/0xa90
    [30129.876606]        register_console+0x371/0x6e0
    [30129.876607]        univ8250_console_init+0x24/0x27
    [30129.876607]        console_init+0x2f9/0x45e
    
    [30129.876609] -> #0 (console_owner){....}-{0:0}:
    [30129.876611]        __lock_acquire+0x2f70/0x4e90
    [30129.876612]        lock_acquire+0x1ac/0xad0
    [30129.876612]        console_unlock+0x460/0xa90
    [30129.876613]        vprintk_emit+0x130/0x420
    [30129.876613]        printk+0x9f/0xc5
    [30129.876614]        show_pwq+0x154/0x618
    [30129.876615]        show_workqueue_state.cold.55+0x193/0x6ca
    [30129.876615]        __handle_sysrq+0x244/0x460
    [30129.876616]        write_sysrq_trigger+0x48/0x4a
    [30129.876616]        proc_reg_write+0x1a6/0x240
    [30129.876617]        vfs_write+0x1a8/0x650
    
    [30129.876619] other info that might help us debug this:
    
    [30129.876620] Chain exists of:
    [30129.876621]   console_owner --> &port->lock#2 --> &pool->lock/1
    
    [30129.876625]  Possible unsafe locking scenario:
    
    [30129.876626]        CPU0                    CPU1
    [30129.876626]        ----                    ----
    [30129.876627]   lock(&pool->lock/1);
    [30129.876628]                                lock(&port->lock#2);
    [30129.876630]                                lock(&pool->lock/1);
    [30129.876631]   lock(console_owner);
    
    [30129.876633]  *** DEADLOCK ***
    
    [30129.876634] 5 locks held by sysrq.sh/1222:
    [30129.876634]  #0: ffff8881d3ce0470 (sb_writers#3){.+.+}-{0:0}, at: vfs_write+0x359/0x650
    [30129.876637]  #1: ffffffff92c612c0 (rcu_read_lock){....}-{1:2}, at: __handle_sysrq+0x4d/0x460
    [30129.876640]  #2: ffffffff92c612c0 (rcu_read_lock){....}-{1:2}, at: show_workqueue_state+0x5/0xf0
    [30129.876642]  #3: ffff888107cb9018 (&pool->lock/1){-.-.}-{2:2}, at: show_workqueue_state.cold.55+0x15b/0x6ca
    [30129.876645]  #4: ffffffff92c39980 (console_lock){+.+.}-{0:0}, at: vprintk_emit+0x123/0x420
    
    [30129.876648] stack backtrace:
    [30129.876649] CPU: 3 PID: 1222 Comm: sysrq.sh Tainted: G S      W         5.9.0-rc2+ #3
    [30129.876649] Hardware name: Intel Corporation 2012 Client Platform/Emerald Lake 2, BIOS ACRVMBY1.86C.0078.P00.1201161002 01/16/2012
    [30129.876650] Call Trace:
    [30129.876650]  dump_stack+0x9d/0xe0
    [30129.876651]  check_noncircular+0x34f/0x410
    [30129.876653]  __lock_acquire+0x2f70/0x4e90
    [30129.876656]  lock_acquire+0x1ac/0xad0
    [30129.876658]  console_unlock+0x460/0xa90
    [30129.876660]  vprintk_emit+0x130/0x420
    [30129.876660]  printk+0x9f/0xc5
    [30129.876661]  show_pwq+0x154/0x618
    [30129.876662]  show_workqueue_state.cold.55+0x193/0x6ca
    [30129.876664]  __handle_sysrq+0x244/0x460
    [30129.876665]  write_sysrq_trigger+0x48/0x4a
    [30129.876665]  proc_reg_write+0x1a6/0x240
    [30129.876666]  vfs_write+0x1a8/0x650
    
    It looks like the commit was aimed to protect tty_insert_flip_string and
    there is no need for tty_flip_buffer_push to be under this lock.
    
    Fixes: b6da31b2c07c ("tty: Fix data race in tty_insert_flip_string_fixed_flag")
    Signed-off-by: Artem Savkov <asavkov@redhat.com>
    Acked-by: Jiri Slaby <jirislaby@kernel.org>
    Link: https://lore.kernel.org/r/20200902120045.3693075-1-asavkov@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 32561de8c5dfebe20011c1aeaecc85032e3c4ac1
Author: Tyrel Datwyler <tyreld@linux.ibm.com>
Date:   Thu Aug 20 18:46:38 2020 -0500

    tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup()
    
    [ Upstream commit 63ffcbdad738e3d1c857027789a2273df3337624 ]
    
    The code currently NULLs tty->driver_data in hvcs_close() with the
    intent of informing the next call to hvcs_open() that device needs to be
    reconfigured. However, when hvcs_cleanup() is called we copy hvcsd from
    tty->driver_data which was previoulsy NULLed by hvcs_close() and our
    call to tty_port_put(&hvcsd->port) doesn't actually do anything since
    &hvcsd->port ends up translating to NULL by chance. This has the side
    effect that when hvcs_remove() is called we have one too many port
    references preventing hvcs_destuct_port() from ever being called. This
    also prevents us from reusing the /dev/hvcsX node in a future
    hvcs_probe() and we can eventually run out of /dev/hvcsX devices.
    
    Fix this by waiting to NULL tty->driver_data in hvcs_cleanup().
    
    Fixes: 27bf7c43a19c ("TTY: hvcs, add tty install")
    Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
    Link: https://lore.kernel.org/r/20200820234643.70412-1-tyreld@linux.ibm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 547f4baf67b716c8174c8cc514c8f2d1bc2e1624
Author: Tong Zhang <ztong0001@gmail.com>
Date:   Fri Aug 28 08:39:50 2020 -0400

    tty: serial: earlycon dependency
    
    [ Upstream commit 0fb9342d06b0f667b915ba58bfefc030e534a218 ]
    
    parse_options() in drivers/tty/serial/earlycon.c calls uart_parse_earlycon
    in drivers/tty/serial/serial_core.c therefore selecting SERIAL_EARLYCON
    should automatically select SERIAL_CORE, otherwise will result in symbol
    not found error during linking if SERIAL_CORE is not configured as builtin
    
    Fixes: 9aac5887595b ("tty/serial: add generic serial earlycon")
    Signed-off-by: Tong Zhang <ztong0001@gmail.com>
    Link: https://lore.kernel.org/r/20200828123949.2642-1-ztong0001@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8fe65dbd5e49b2168a0e1b44f40f441ae17ae3db
Author: Alex Dewar <alex.dewar90@gmail.com>
Date:   Tue Aug 25 17:45:18 2020 +0100

    VMCI: check return value of get_user_pages_fast() for errors
    
    [ Upstream commit 90ca6333fd65f318c47bff425e1ea36c0a5539f6 ]
    
    In a couple of places in qp_host_get_user_memory(),
    get_user_pages_fast() is called without properly checking for errors. If
    e.g. -EFAULT is returned, this negative value will then be passed on to
    qp_release_pages(), which expects a u64 as input.
    
    Fix this by only calling qp_release_pages() when we have a positive
    number returned.
    
    Fixes: 06164d2b72aa ("VMCI: queue pairs implementation.")
    Signed-off-by: Alex Dewar <alex.dewar90@gmail.com>
    Link: https://lore.kernel.org/r/20200825164522.412392-1-alex.dewar90@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d22e0f8d72eddb31b50f6cfca0c20f3d68ac48b0
Author: dinghao.liu@zju.edu.cn <dinghao.liu@zju.edu.cn>
Date:   Thu Aug 20 14:38:17 2020 +0800

    backlight: sky81452-backlight: Fix refcount imbalance on error
    
    [ Upstream commit b7a4f80bc316a56d6ec8750e93e66f42431ed960 ]
    
    When of_property_read_u32_array() returns an error code, a
    pairing refcount decrement is needed to keep np's refcount
    balanced.
    
    Fixes: f705806c9f355 ("backlight: Add support Skyworks SKY81452 backlight driver")
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 397e425911c433690b7c55411ef8df38f208ab98
Author: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Date:   Sun Aug 2 19:15:31 2020 +0800

    scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
    
    [ Upstream commit 44f4daf8678ae5f08c93bbe70792f90cd88e4649 ]
    
    On an error exit path, a negative error code should be returned instead of
    a positive return value.
    
    Link: https://lore.kernel.org/r/20200802111531.5065-1-tianjia.zhang@linux.alibaba.com
    Fixes: f40e74ffa3de ("csiostor:firmware upgrade fix")
    Cc: Praveen Madhavan <praveenm@chelsio.com>
    Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd8d9c36730486badd9778439bd235efc49cb16d
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Aug 2 12:15:27 2020 +0200

    scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
    
    [ Upstream commit 574918e69720fe62ab3eb42ec3750230c8d16b06 ]
    
    Update the size used in 'dma_free_coherent()' in order to match the one
    used in the corresponding 'dma_alloc_coherent()'.
    
    Link: https://lore.kernel.org/r/20200802101527.676054-1-christophe.jaillet@wanadoo.fr
    Fixes: 4161cee52df8 ("[SCSI] qla4xxx: Add host statistics support")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b129b6d7e18b7f1a1ed93cf1a681ce3db85b6ef4
Author: Tom Rix <trix@redhat.com>
Date:   Wed Aug 5 13:59:11 2020 -0700

    drm/gma500: fix error check
    
    [ Upstream commit cdd296cdae1af2d27dae3fcfbdf12c5252ab78cf ]
    
    Reviewing this block of code in cdv_intel_dp_init()
    
    ret = cdv_intel_dp_aux_native_read(gma_encoder, DP_DPCD_REV, ...
    
    cdv_intel_edp_panel_vdd_off(gma_encoder);
    if (ret == 0) {
            /* if this fails, presume the device is a ghost */
            DRM_INFO("failed to retrieve link info, disabling eDP\n");
            drm_encoder_cleanup(encoder);
            cdv_intel_dp_destroy(connector);
            goto err_priv;
    } else {
    
    The (ret == 0) is not strict enough.
    cdv_intel_dp_aux_native_read() returns > 0 on success
    otherwise it is failure.
    
    So change to <=
    
    Fixes: d112a8163f83 ("gma500/cdv: Add eDP support")
    
    Signed-off-by: Tom Rix <trix@redhat.com>
    Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200805205911.20927-1-trix@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit acaf6a96220d777b64a2811eb043ceecbb110fb2
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Aug 9 11:29:06 2020 +0200

    mwifiex: Do not use GFP_KERNEL in atomic context
    
    [ Upstream commit d2ab7f00f4321370a8ee14e5630d4349fdacc42e ]
    
    A possible call chain is as follow:
      mwifiex_sdio_interrupt                            (sdio.c)
        --> mwifiex_main_process                        (main.c)
          --> mwifiex_process_cmdresp                   (cmdevt.c)
            --> mwifiex_process_sta_cmdresp             (sta_cmdresp.c)
              --> mwifiex_ret_802_11_scan               (scan.c)
                --> mwifiex_parse_single_response_buf   (scan.c)
    
    'mwifiex_sdio_interrupt()' is an interrupt function.
    
    Also note that 'mwifiex_ret_802_11_scan()' already uses GFP_ATOMIC.
    
    So use GFP_ATOMIC instead of GFP_KERNEL when memory is allocated in
    'mwifiex_parse_single_response_buf()'.
    
    Fixes: 7c6fa2a843c5 ("mwifiex: use cfg80211 dynamic scan table and cfg80211_get_bss API")
    or
    Fixes: 601216e12c65e ("mwifiex: process RX packets in SDIO IRQ thread directly")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200809092906.744621-1-christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 00cc1e83b923fbc2c046533bfbc7b08feabd009f
Author: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Date:   Sun Aug 2 01:48:24 2020 +0100

    wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
    
    [ Upstream commit 3b9fb6791e7113679b1eb472e6ce1659e80f5797 ]
    
    Qualcomm's document "80-WL007-1 Rev. J" states that the highest rx rate for
    the WCN3660 and WCN3680 on MCS 7 is 150 Mbps not the 72 Mbps stated here.
    
    This patch fixes the data-rate declared in the 5GHz table.
    
    Fixes: 8e84c2582169 ("wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680
    hardware")
    
    Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200802004824.1307124-1-bryan.odonoghue@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7937ef66b18f74b47074d72cfa07c17d3b874ba
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Aug 13 17:12:53 2020 +0300

    ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
    
    [ Upstream commit 2705cd7558e718a7240c64eb0afb2edad5f8c190 ]
    
    The value of "htc_hdr->endpoint_id" comes from skb->data so Smatch marks
    it as untrusted so we have to check it before using it as an array
    offset.
    
    This is similar to a bug that syzkaller found in commit e4ff08a4d727
    ("ath9k: Fix use-after-free Write in ath9k_htc_rx_msg") so it is
    probably a real issue.
    
    Fixes: fb9987d0f748 ("ath9k_htc: Support for AR9271 chipset.")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200813141253.GA457408@mwanda
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf3627c600cf0cfd5d1edab913f54de4087b1e11
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Aug 13 17:13:15 2020 +0300

    ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
    
    [ Upstream commit 54f9ab7b870934b70e5a21786d951fbcf663970f ]
    
    The value for "aid" comes from skb->data so Smatch marks it as
    untrusted.  If it's invalid then it can result in an out of bounds array
    access in ath6kl_add_new_sta().
    
    Fixes: 572e27c00c9d ("ath6kl: Fix AP mode connect event parsing and TIM updates")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200813141315.GB457408@mwanda
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d35b8ae3006001f4fc260f87a1dcd81ce5f9c1c
Author: Qiushi Wu <wu000273@umn.edu>
Date:   Sun Jun 14 04:56:05 2020 +0200

    media: ti-vpe: Fix a missing check and reference count leak
    
    [ Upstream commit 7dae2aaaf432767ca7aa11fa84643a7c2600dbdd ]
    
    pm_runtime_get_sync() increments the runtime PM usage counter even
    when it returns an error code, causing incorrect ref count if
    pm_runtime_put_noidle() is not called in error handling paths.
    And also, when the call of function vpe_runtime_get() failed,
    we won't call vpe_runtime_put().
    Thus call pm_runtime_put_noidle() if pm_runtime_get_sync() fails
    inside vpe_runtime_get().
    
    Fixes: 4571912743ac ("[media] v4l: ti-vpe: Add VPE mem to mem driver")
    Signed-off-by: Qiushi Wu <wu000273@umn.edu>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a138371ca26b8a9ddf31c19192dbefa085e80307
Author: Tom Rix <trix@redhat.com>
Date:   Sun Aug 30 18:30:43 2020 +0200

    media: tc358743: initialize variable
    
    [ Upstream commit 274cf92d5dff5c2fec1a518078542ffe70d07646 ]
    
    clang static analysis flags this error
    
    tc358743.c:1468:9: warning: Branch condition evaluates
      to a garbage value
            return handled ? IRQ_HANDLED : IRQ_NONE;
                   ^~~~~~~
    handled should be initialized to false.
    
    Fixes: d747b806abf4 ("[media] tc358743: add direct interrupt handling")
    Signed-off-by: Tom Rix <trix@redhat.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 734a5b5bc1c6db41ba094c44aa4e78daa6a451c2
Author: Tero Kristo <t-kristo@ti.com>
Date:   Mon Sep 7 10:56:24 2020 +0300

    crypto: omap-sham - fix digcnt register handling with export/import
    
    [ Upstream commit 3faf757bad75f3fc1b2736f0431e295a073a7423 ]
    
    Running export/import for hashes in peculiar order (mostly done by
    openssl) can mess up the internal book keeping of the OMAP SHA core.
    Fix by forcibly writing the correct DIGCNT back to hardware. This issue
    was noticed while transitioning to openssl 1.1 support.
    
    Fixes: 0d373d603202 ("crypto: omap-sham - Add OMAP4/AM33XX SHAM Support")
    Signed-off-by: Tero Kristo <t-kristo@ti.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 52f39ca0467cbf62bf19b65148d180e9c5aadaf6
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Mon Aug 24 08:53:52 2020 +0200

    media: omap3isp: Fix memleak in isp_probe
    
    [ Upstream commit d8fc21c17099635e8ebd986d042be65a6c6b5bd0 ]
    
    When devm_ioremap_resource() fails, isp should be
    freed just like other error paths in isp_probe.
    
    Fixes: 8644cdf972dd6 ("[media] omap3isp: Replace many MMIO regions by two")
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e1c798aebcb8d9fb83848d6cabfcc0b2e247e94e
Author: Tom Rix <trix@redhat.com>
Date:   Sun Jul 19 17:34:47 2020 +0200

    media: m5mols: Check function pointer in m5mols_sensor_power
    
    [ Upstream commit 52438c4463ac904d14bf3496765e67750766f3a6 ]
    
    clang static analysis reports this error
    
    m5mols_core.c:767:4: warning: Called function pointer
      is null (null dereference) [core.CallAndMessage]
        info->set_power(&client->dev, 0);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    In other places, the set_power ptr is checked.
    So add a check.
    
    Fixes: bc125106f8af ("[media] Add support for M-5MOLS 8 Mega Pixel camera ISP")
    Signed-off-by: Tom Rix <trix@redhat.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f6af2c161ba4f21d5ec7f7a8fdaf162625763ac1
Author: Sylwester Nawrocki <s.nawrocki@samsung.com>
Date:   Mon Aug 10 17:32:39 2020 +0200

    media: Revert "media: exynos4-is: Add missed check for pinctrl_lookup_state()"
    
    [ Upstream commit 00d21f325d58567d81d9172096692d0a9ea7f725 ]
    
    The "idle" pinctrl state is optional as documented in the DT binding.
    The change introduced by the commit being reverted makes that pinctrl state
    mandatory and breaks initialization of the whole media driver, since the
    "idle" state is not specified in any mainline dts.
    
    This reverts commit 18ffec750578 ("media: exynos4-is: Add missed check for pinctrl_lookup_state()")
    to fix the regression.
    
    Fixes: 18ffec750578 ("media: exynos4-is: Add missed check for pinctrl_lookup_state()")
    Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c35a3655c36b55226be15e757058672533e6282
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Aug 2 16:56:48 2020 +0200

    crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call
    
    [ Upstream commit f7ade9aaf66bd5599690acf0597df2c0f6cd825a ]
    
    Update the size used in 'dma_free_coherent()' in order to match the one
    used in the corresponding 'dma_alloc_coherent()', in 'setup_crypt_desc()'.
    
    Fixes: 81bef0150074 ("crypto: ixp4xx - Hardware crypto support for IXP4xx CPUs")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4531206532c677482a75785bfca68e0a853f6236
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Wed Aug 26 20:14:37 2020 +0800

    EDAC/i5100: Fix error handling order in i5100_init_one()
    
    [ Upstream commit 857a3139bd8be4f702c030c8ca06f3fd69c1741a ]
    
    When pci_get_device_func() fails, the driver doesn't need to execute
    pci_dev_put(). mci should still be freed, though, to prevent a memory
    leak. When pci_enable_device() fails, the error injection PCI device
    "einj" doesn't need to be disabled either.
    
     [ bp: Massage commit message, rename label to "bail_mc_free". ]
    
    Fixes: 52608ba205461 ("i5100_edac: probe for device 19 function 0")
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: https://lkml.kernel.org/r/20200826121437.31606-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5dfe2066b8136a9ed12e5e1f06cdeeff120c7581
Author: Roberto Sassu <roberto.sassu@huawei.com>
Date:   Fri Sep 4 11:23:28 2020 +0200

    ima: Don't ignore errors from crypto_shash_update()
    
    commit 60386b854008adc951c470067f90a2d85b5d520f upstream.
    
    Errors returned by crypto_shash_update() are not checked in
    ima_calc_boot_aggregate_tfm() and thus can be overwritten at the next
    iteration of the loop. This patch adds a check after calling
    crypto_shash_update() and returns immediately if the result is not zero.
    
    Cc: stable@vger.kernel.org
    Fixes: 3323eec921efd ("integrity: IMA as an integrity service provider")
    Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb0a8e9824989401c3a4175d7466f4133a96d43e
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Sep 16 23:18:21 2020 +0300

    cifs: remove bogus debug code
    
    commit d367cb960ce88914898cbfa43645c2e43ede9465 upstream.
    
    The "end" pointer is either NULL or it points to the next byte to parse.
    If there isn't a next byte then dereferencing "end" is an off-by-one out
    of bounds error.  And, of course, if it's NULL that leads to an Oops.
    Printing "*end" doesn't seem very useful so let's delete this code.
    
    Also for the last debug statement, I noticed that it should be printing
    "sequence_end" instead of "end" so fix that as well.
    
    Reported-by: Dominik Maier <dmaier@sect.tu-berlin.de>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9d0ba6aa7485aabed7b8f2ed5a3975684847e0b
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Oct 15 11:42:00 2020 -0700

    icmp: randomize the global rate limiter
    
    [ Upstream commit b38e7819cae946e2edf869e604af1e65a5d241c5 ]
    
    Keyu Man reported that the ICMP rate limiter could be used
    by attackers to get useful signal. Details will be provided
    in an upcoming academic publication.
    
    Our solution is to add some noise, so that the attackers
    no longer can get help from the predictable token bucket limiter.
    
    Fixes: 4cdf507d5452 ("icmp: add a global rate limitation")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Keyu Man <kman001@ucr.edu>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94b7768760e9666a08273b61e42513e12abdcf14
Author: Neal Cardwell <ncardwell@google.com>
Date:   Thu Oct 22 10:33:31 2020 -0400

    tcp: fix to update snd_wl1 in bulk receiver fast path
    
    [ Upstream commit 18ded910b589839e38a51623a179837ab4cc3789 ]
    
    In the header prediction fast path for a bulk data receiver, if no
    data is newly acknowledged then we do not call tcp_ack() and do not
    call tcp_ack_update_window(). This means that a bulk receiver that
    receives large amounts of data can have the incoming sequence numbers
    wrap, so that the check in tcp_may_update_window fails:
       after(ack_seq, tp->snd_wl1)
    
    If the incoming receive windows are zero in this state, and then the
    connection that was a bulk data receiver later wants to send data,
    that connection can find itself persistently rejecting the window
    updates in incoming ACKs. This means the connection can persistently
    fail to discover that the receive window has opened, which in turn
    means that the connection is unable to send anything, and the
    connection's sending process can get permanently "stuck".
    
    The fix is to update snd_wl1 in the header prediction fast path for a
    bulk data receiver, so that it keeps up and does not see wrapping
    problems.
    
    This fix is based on a very nice and thorough analysis and diagnosis
    by Apollon Oikonomopoulos (see link below).
    
    This is a stable candidate but there is no Fixes tag here since the
    bug predates current git history. Just for fun: looks like the bug
    dates back to when header prediction was added in Linux v2.1.8 in Nov
    1996. In that version tcp_rcv_established() was added, and the code
    only updates snd_wl1 in tcp_ack(), and in the new "Bulk data transfer:
    receiver" code path it does not call tcp_ack(). This fix seems to
    apply cleanly at least as far back as v3.2.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Reported-by: Apollon Oikonomopoulos <apoikos@dmesg.gr>
    Tested-by: Apollon Oikonomopoulos <apoikos@dmesg.gr>
    Link: https://www.spinics.net/lists/netdev/msg692430.html
    Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
    Acked-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20201022143331.1887495-1-ncardwell.kernel@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d82bb11ec5ad19cc5402552b9b619472b46001a
Author: Defang Bo <bodefang@126.com>
Date:   Mon Oct 19 19:38:58 2020 +0800

    nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in nfc_genl_fw_download()
    
    [ Upstream commit 280e3ebdafb863b3cb50d5842f056267e15bf40c ]
    
    Check that the NFC_ATTR_FIRMWARE_NAME attributes are provided by
    the netlink client prior to accessing them.This prevents potential
    unhandled NULL pointer dereference exceptions which can be triggered
    by malicious user-mode programs, if they omit one or both of these
    attributes.
    
    Similar to commit a0323b979f81 ("nfc: Ensure presence of required attributes in the activate_target handler").
    
    Fixes: 9674da8759df ("NFC: Add firmware upload netlink command")
    Signed-off-by: Defang Bo <bodefang@126.com>
    Link: https://lore.kernel.org/r/1603107538-4744-1-git-send-email-bodefang@126.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9479c3031f4ffecc5db58987dc168f649e77acbf
Author: Xie He <xie.he.0141@gmail.com>
Date:   Mon Oct 19 23:34:20 2020 -0700

    net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling ether_setup
    
    [ Upstream commit 5fce1e43e2d5bf2f7e3224d7b99b1c65ab2c26e2 ]
    
    This driver calls ether_setup to set up the network device.
    The ether_setup function would add the IFF_TX_SKB_SHARING flag to the
    device. This flag indicates that it is safe to transmit shared skbs to
    the device.
    
    However, this is not true. This driver may pad the frame (in eth_tx)
    before transmission, so the skb may be modified.
    
    Fixes: 550fd08c2ceb ("net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared")
    Cc: Neil Horman <nhorman@tuxdriver.com>
    Cc: Krzysztof Halasa <khc@pm.waw.pl>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Link: https://lore.kernel.org/r/20201020063420.187497-1-xie.he.0141@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 767dfe0b0f3ff87c2ca9fa1e59e632f0cbc051d1
Author: Xie He <xie.he.0141@gmail.com>
Date:   Mon Oct 19 18:31:52 2020 -0700

    net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
    
    [ Upstream commit 01c4ceae0a38a0bdbfea6896f41efcd985a9c064 ]
    
    The hdlc_rcv function is used as hdlc_packet_type.func to process any
    skb received in the kernel with skb->protocol == htons(ETH_P_HDLC).
    The purpose of this function is to provide second-stage processing for
    skbs not assigned a "real" L3 skb->protocol value in the first stage.
    
    This function assumes the device from which the skb is received is an
    HDLC device (a device created by this module). It assumes that
    netdev_priv(dev) returns a pointer to "struct hdlc_device".
    
    However, it is possible that some driver in the kernel (not necessarily
    in our control) submits a received skb with skb->protocol ==
    htons(ETH_P_HDLC), from a non-HDLC device. In this case, the skb would
    still be received by hdlc_rcv. This will cause problems.
    
    hdlc_rcv should be able to recognize and drop invalid skbs. It should
    first make sure "dev" is actually an HDLC device, before starting its
    processing. This patch adds this check to hdlc_rcv.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: Krzysztof Halasa <khc@pm.waw.pl>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Link: https://lore.kernel.org/r/20201020013152.89259-1-xie.he.0141@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68222f9e8ff15b6aa10d959e90f544bb11b8acab
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Fri Feb 10 12:54:05 2017 +0300

    x86/mm/ptdump: Fix soft lockup in page table walker
    
    commit 146fbb766934dc003fcbf755b519acef683576bf upstream.
    
    CONFIG_KASAN=y needs a lot of virtual memory mapped for its shadow.
    In that case ptdump_walk_pgd_level_core() takes a lot of time to
    walk across all page tables and doing this without
    a rescheduling causes soft lockups:
    
     NMI watchdog: BUG: soft lockup - CPU#3 stuck for 23s! [swapper/0:1]
     ...
     Call Trace:
      ptdump_walk_pgd_level_core+0x40c/0x550
      ptdump_walk_pgd_level_checkwx+0x17/0x20
      mark_rodata_ro+0x13b/0x150
      kernel_init+0x2f/0x120
      ret_from_fork+0x2c/0x40
    
    I guess that this issue might arise even without KASAN on huge machines
    with several terabytes of RAM.
    
    Stick cond_resched() in pgd loop to fix this.
    
    Reported-by: Tobias Regnery <tobias.regnery@gmail.com>
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: kasan-dev@googlegroups.com
    Cc: Alexander Potapenko <glider@google.com>
    Cc: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/20170210095405.31802-1-aryabinin@virtuozzo.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bwh: Backported to 4.4: adjust context]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3eedd10c0c7425af8f6e5e9e8c53645636483e5
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Thu Feb 1 21:00:50 2018 +0300

    lib/strscpy: Shut up KASAN false-positives in strscpy()
    
    commit 1a3241ff10d038ecd096d03380327f2a0b5840a6 upstream.
    
    strscpy() performs the word-at-a-time optimistic reads.  So it may may
    access the memory past the end of the object, which is perfectly fine
    since strscpy() doesn't use that (past-the-end) data and makes sure the
    optimistic read won't cross a page boundary.
    
    Use new read_word_at_a_time() to shut up the KASAN.
    
    Note that this potentially could hide some bugs.  In example bellow,
    stscpy() will copy more than we should (1-3 extra uninitialized bytes):
    
            char dst[8];
            char *src;
    
            src = kmalloc(5, GFP_KERNEL);
            memset(src, 0xff, 5);
            strscpy(dst, src, 8);
    
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 203ba216f29bfc7378d3595f31daab74fa72f9d7
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Thu Feb 1 21:00:49 2018 +0300

    compiler.h: Add read_word_at_a_time() function.
    
    commit 7f1e541fc8d57a143dd5df1d0a1276046e08c083 upstream.
    
    Sometimes we know that it's safe to do potentially out-of-bounds access
    because we know it won't cross a page boundary.  Still, KASAN will
    report this as a bug.
    
    Add read_word_at_a_time() function which is supposed to be used in such
    cases.  In read_word_at_a_time() KASAN performs relaxed check - only the
    first byte of access is validated.
    
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 4.4: adjust context]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36bd2ae6cc1887bd371ca259d433734ae68212f4
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Thu Feb 1 21:00:48 2018 +0300

    compiler.h, kasan: Avoid duplicating __read_once_size_nocheck()
    
    commit bdb5ac801af3d81d36732c2f640d6a1d3df83826 upstream.
    
    Instead of having two identical __read_once_size_nocheck() functions
    with different attributes, consolidate all the difference in new macro
    __no_kasan_or_inline and use it. No functional changes.
    
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 047d711a7a3e6e9b84f19c594a8bb3af04384e69
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Fri May 20 16:59:28 2016 -0700

    mm/kasan: add API to check memory regions
    
    commit 64f8ebaf115bcddc4aaa902f981c57ba6506bc42 upstream.
    
    Memory access coded in an assembly won't be seen by KASAN as a compiler
    can instrument only C code.  Add kasan_check_[read,write]() API which is
    going to be used to check a certain memory range.
    
    Link: http://lkml.kernel.org/r/1462538722-1574-3-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Acked-by: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [bwh: Backported to 4.4: drop change in MAINTAINERS]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb641c4d462e4c6b22d4b07b62dda9cc58ad6e6b
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Fri May 20 16:59:20 2016 -0700

    mm/kasan: print name of mem[set,cpy,move]() caller in report
    
    commit 936bb4bbbb832f81055328b84e5afe1fc7246a8d upstream.
    
    When bogus memory access happens in mem[set,cpy,move]() it's usually
    caller's fault.  So don't blame mem[set,cpy,move]() in bug report, blame
    the caller instead.
    
    Before:
      BUG: KASAN: out-of-bounds access in memset+0x23/0x40 at <address>
    After:
      BUG: KASAN: out-of-bounds access in <memset_caller> at <address>
    
    Link: http://lkml.kernel.org/r/1462538722-1574-2-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Acked-by: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 879c8163da5fa033b155e3a73dccf67b15e595e4
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Oct 7 10:49:28 2020 +0300

    ALSA: bebob: potential info leak in hwdep_read()
    
    commit b41c15f4e1c1f1657da15c482fa837c1b7384452 upstream.
    
    The "count" variable needs to be capped on every path so that we don't
    copy too much information to the user.
    
    Fixes: 618eabeae711 ("ALSA: bebob: Add hwdep interface")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20201007074928.GA2529578@mwanda
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 607da73902fec453584baa24b4cd99ec17fa05d3
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Thu Oct 1 09:23:02 2020 +0200

    r8169: fix data corruption issue on RTL8402
    
    [ Upstream commit ef9da46ddef071e1bbb943afbbe9b38771855554 ]
    
    Petr reported that after resume from suspend RTL8402 partially
    truncates incoming packets, and re-initializing register RxConfig
    before the actual chip re-initialization sequence is needed to avoid
    the issue.
    
    Reported-by: Petr Tesarik <ptesarik@suse.cz>
    Proposed-by: Petr Tesarik <ptesarik@suse.cz>
    Tested-by: Petr Tesarik <ptesarik@suse.cz>
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57ccecd8d6c04d0c9f2337e1dab52875518f74d7
Author: Maciej Żenczykowski <maze@google.com>
Date:   Wed Sep 23 13:18:15 2020 -0700

    net/ipv4: always honour route mtu during forwarding
    
    [ Upstream commit 02a1b175b0e92d9e0fa5df3957ade8d733ceb6a0 ]
    
    Documentation/networking/ip-sysctl.txt:46 says:
      ip_forward_use_pmtu - BOOLEAN
        By default we don't trust protocol path MTUs while forwarding
        because they could be easily forged and can lead to unwanted
        fragmentation by the router.
        You only need to enable this if you have user-space software
        which tries to discover path mtus by itself and depends on the
        kernel honoring this information. This is normally not the case.
        Default: 0 (disabled)
        Possible values:
        0 - disabled
        1 - enabled
    
    Which makes it pretty clear that setting it to 1 is a potential
    security/safety/DoS issue, and yet it is entirely reasonable to want
    forwarded traffic to honour explicitly administrator configured
    route mtus (instead of defaulting to device mtu).
    
    Indeed, I can't think of a single reason why you wouldn't want to.
    Since you configured a route mtu you probably know better...
    
    It is pretty common to have a higher device mtu to allow receiving
    large (jumbo) frames, while having some routes via that interface
    (potentially including the default route to the internet) specify
    a lower mtu.
    
    Note that ipv6 forwarding uses device mtu unless the route is locked
    (in which case it will use the route mtu).
    
    This approach is not usable for IPv4 where an 'mtu lock' on a route
    also has the side effect of disabling TCP path mtu discovery via
    disabling the IPv4 DF (don't frag) bit on all outgoing frames.
    
    I'm not aware of a way to lock a route from an IPv6 RA, so that also
    potentially seems wrong.
    
    Signed-off-by: Maciej Żenczykowski <maze@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Cc: Lorenzo Colitti <lorenzo@google.com>
    Cc: Sunmeet Gill (Sunny) <sgill@quicinc.com>
    Cc: Vinay Paradkar <vparadka@qti.qualcomm.com>
    Cc: Tyler Wear <twear@quicinc.com>
    Cc: David Ahern <dsahern@kernel.org>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77cffe70bcd906f6c806c5686a28bbd09a5b698e
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Wed Oct 7 21:12:50 2020 -0700

    tipc: fix the skb_unshare() in tipc_buf_append()
    
    [ Upstream commit ed42989eab57d619667d7e87dfbd8fe207db54fe ]
    
    skb_unshare() drops a reference count on the old skb unconditionally,
    so in the failure case, we end up freeing the skb twice here.
    And because the skb is allocated in fclone and cloned by caller
    tipc_msg_reassemble(), the consequence is actually freeing the
    original skb too, thus triggered the UAF by syzbot.
    
    Fix this by replacing this skb_unshare() with skb_cloned()+skb_copy().
    
    Fixes: ff48b6222e65 ("tipc: use skb_unshare() instead in tipc_buf_append()")
    Reported-and-tested-by: syzbot+e96a7ba46281824cc46a@syzkaller.appspotmail.com
    Cc: Jon Maloy <jmaloy@redhat.com>
    Cc: Ying Xue <ying.xue@windriver.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Reviewed-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 88fd84fb83b279fb9875c8392175116f1dd60a19
Author: David Wilder <dwilder@us.ibm.com>
Date:   Tue Oct 13 16:20:14 2020 -0700

    ibmveth: Identify ingress large send packets.
    
    [ Upstream commit 413f142cc05cb03f2d1ea83388e40c1ddc0d74e9 ]
    
    Ingress large send packets are identified by either:
    The IBMVETH_RXQ_LRG_PKT flag in the receive buffer
    or with a -1 placed in the ip header checksum.
    The method used depends on firmware version. Frame
    geometry and sufficient header validation is performed by the
    hypervisor eliminating the need for further header checks here.
    
    Fixes: 7b5967389f5a ("ibmveth: set correct gso_size and gso_type")
    Signed-off-by: David Wilder <dwilder@us.ibm.com>
    Reviewed-by: Thomas Falcon <tlfalcon@linux.ibm.com>
    Reviewed-by: Cristobal Forno <cris.forno@ibm.com>
    Reviewed-by: Pradeep Satyanarayana <pradeeps@linux.vnet.ibm.com>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>