commit 9e8a7b701479b322a44324f1160f2c33e47489e9
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Oct 9 13:25:59 2021 +0200

    Linux 4.9.286
    
    Link: https://lore.kernel.org/r/20211008112713.941269121@linuxfoundation.org
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ab891b1f28d79f90e828997d45d77c9a93632dc
Author: Kate Hsuan <hpa@redhat.com>
Date:   Fri Sep 3 17:44:11 2021 +0800

    libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
    
    commit 7a8526a5cd51cf5f070310c6c37dd7293334ac49 upstream.
    
    Many users are reporting that the Samsung 860 and 870 SSD are having
    various issues when combined with AMD/ATI (vendor ID 0x1002)  SATA
    controllers and only completely disabling NCQ helps to avoid these
    issues.
    
    Always disabling NCQ for Samsung 860/870 SSDs regardless of the host
    SATA adapter vendor will cause I/O performance degradation with well
    behaved adapters. To limit the performance impact to ATI adapters,
    introduce the ATA_HORKAGE_NO_NCQ_ON_ATI flag to force disable NCQ
    only for these adapters.
    
    Also, two libata.force parameters (noncqati and ncqati) are introduced
    to disable and enable the NCQ for the system which equipped with ATI
    SATA adapter and Samsung 860 and 870 SSDs. The user can determine NCQ
    function to be enabled or disabled according to the demand.
    
    After verifying the chipset from the user reports, the issue appears
    on AMD/ATI SB7x0/SB8x0/SB9x0 SATA Controllers and does not appear on
    recent AMD SATA adapters. The vendor ID of ATI should be 0x1002.
    Therefore, ATA_HORKAGE_NO_NCQ_ON_AMD was modified to
    ATA_HORKAGE_NO_NCQ_ON_ATI.
    
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=201693
    Signed-off-by: Kate Hsuan <hpa@redhat.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20210903094411.58749-1-hpa@redhat.com
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Cc: Krzysztof Olędzki <ole@ans.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bf8cf942064e3ba863518b2d3784971b84284ed
Author: Faizel K B <faizel.kb@dicortech.com>
Date:   Thu Sep 2 17:14:44 2021 +0530

    usb: testusb: Fix for showing the connection speed
    
    [ Upstream commit f81c08f897adafd2ed43f86f00207ff929f0b2eb ]
    
    testusb' application which uses 'usbtest' driver reports 'unknown speed'
    from the function 'find_testdev'. The variable 'entry->speed' was not
    updated from  the application. The IOCTL mentioned in the FIXME comment can
    only report whether the connection is low speed or not. Speed is read using
    the IOCTL USBDEVFS_GET_SPEED which reports the proper speed grade.  The
    call is implemented in the function 'handle_testdev' where the file
    descriptor was availble locally. Sample output is given below where 'high
    speed' is printed as the connected speed.
    
    sudo ./testusb -a
    high speed      /dev/bus/usb/001/011    0
    /dev/bus/usb/001/011 test 0,    0.000015 secs
    /dev/bus/usb/001/011 test 1,    0.194208 secs
    /dev/bus/usb/001/011 test 2,    0.077289 secs
    /dev/bus/usb/001/011 test 3,    0.170604 secs
    /dev/bus/usb/001/011 test 4,    0.108335 secs
    /dev/bus/usb/001/011 test 5,    2.788076 secs
    /dev/bus/usb/001/011 test 6,    2.594610 secs
    /dev/bus/usb/001/011 test 7,    2.905459 secs
    /dev/bus/usb/001/011 test 8,    2.795193 secs
    /dev/bus/usb/001/011 test 9,    8.372651 secs
    /dev/bus/usb/001/011 test 10,    6.919731 secs
    /dev/bus/usb/001/011 test 11,   16.372687 secs
    /dev/bus/usb/001/011 test 12,   16.375233 secs
    /dev/bus/usb/001/011 test 13,    2.977457 secs
    /dev/bus/usb/001/011 test 14 --> 22 (Invalid argument)
    /dev/bus/usb/001/011 test 17,    0.148826 secs
    /dev/bus/usb/001/011 test 18,    0.068718 secs
    /dev/bus/usb/001/011 test 19,    0.125992 secs
    /dev/bus/usb/001/011 test 20,    0.127477 secs
    /dev/bus/usb/001/011 test 21 --> 22 (Invalid argument)
    /dev/bus/usb/001/011 test 24,    4.133763 secs
    /dev/bus/usb/001/011 test 27,    2.140066 secs
    /dev/bus/usb/001/011 test 28,    2.120713 secs
    /dev/bus/usb/001/011 test 29,    0.507762 secs
    
    Signed-off-by: Faizel K B <faizel.kb@dicortech.com>
    Link: https://lore.kernel.org/r/20210902114444.15106-1-faizel.kb@dicortech.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3e5a9208466b63f27a2509a691023b446ea5105
Author: Ming Lei <ming.lei@redhat.com>
Date:   Mon Sep 6 17:01:12 2021 +0800

    scsi: sd: Free scsi_disk device via put_device()
    
    [ Upstream commit 265dfe8ebbabae7959060bd1c3f75c2473b697ed ]
    
    After a device is initialized via device_initialize() it should be freed
    via put_device(). sd_probe() currently gets this wrong, fix it up.
    
    Link: https://lore.kernel.org/r/20210906090112.531442-1-ming.lei@redhat.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aae02f819c3a9c66ce01648d68050481c9ce5877
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Sep 21 23:32:33 2021 +0300

    ext2: fix sleeping in atomic bugs on error
    
    [ Upstream commit 372d1f3e1bfede719864d0d1fbf3146b1e638c88 ]
    
    The ext2_error() function syncs the filesystem so it sleeps.  The caller
    is holding a spinlock so it's not allowed to sleep.
    
       ext2_statfs() <- disables preempt
       -> ext2_count_free_blocks()
          -> ext2_get_group_desc()
    
    Fix this by using WARN() to print an error message and a stack trace
    instead of using ext2_error().
    
    Link: https://lore.kernel.org/r/20210921203233.GA16529@kili
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc027c500af26867dbfdf1f8172f34d17ad02f55
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Sep 20 10:56:32 2021 -0700

    sparc64: fix pci_iounmap() when CONFIG_PCI is not set
    
    [ Upstream commit d8b1e10a2b8efaf71d151aa756052fbf2f3b6d57 ]
    
    Guenter reported [1] that the pci_iounmap() changes remain problematic,
    with sparc64 allnoconfig and tinyconfig still not building due to the
    header file changes and confusion with the arch-specific pci_iounmap()
    implementation.
    
    I'm pretty convinced that sparc should just use GENERIC_IOMAP instead of
    doing its own thing, since it turns out that the sparc64 version of
    pci_iounmap() is somewhat buggy (see [2]).  But in the meantime, this
    just fixes the build by avoiding the trivial re-definition of the empty
    case.
    
    Link: https://lore.kernel.org/lkml/20210920134424.GA346531@roeck-us.net/ [1]
    Link: https://lore.kernel.org/lkml/CAHk-=wgheheFx9myQyy5osh79BAazvmvYURAtub2gQtMvLrhqQ@mail.gmail.com/ [2]
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Cc: David Miller <davem@davemloft.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d3734d86de75260dd1221efe89d35e9ba028c208
Author: Jan Beulich <jbeulich@suse.com>
Date:   Fri Sep 17 08:27:10 2021 +0200

    xen-netback: correct success/error reporting for the SKB-with-fraglist case
    
    [ Upstream commit 3ede7f84c7c21f93c5eac611d60eba3f2c765e0f ]
    
    When re-entering the main loop of xenvif_tx_check_gop() a 2nd time, the
    special considerations for the head of the SKB no longer apply. Don't
    mistakenly report ERROR to the frontend for the first entry in the list,
    even if - from all I can tell - this shouldn't matter much as the overall
    transmit will need to be considered failed anyway.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Paul Durrant <paul@xen.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8ddeafb0c6a705940192f83fd3d76801cf80c44
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Fri Sep 17 16:34:32 2021 +0300

    net: mdio: introduce a shutdown method to mdio device drivers
    
    [ Upstream commit cf9579976f724ad517cc15b7caadea728c7e245c ]
    
    MDIO-attached devices might have interrupts and other things that might
    need quiesced when we kexec into a new kernel. Things are even more
    creepy when those interrupt lines are shared, and in that case it is
    absolutely mandatory to disable all interrupt sources.
    
    Moreover, MDIO devices might be DSA switches, and DSA needs its own
    shutdown method to unlink from the DSA master, which is a new
    requirement that appeared after commit 2f1e8ea726e9 ("net: dsa: link
    interfaces with the DSA master to get rid of lockdep warnings").
    
    So introduce a ->shutdown method in the MDIO device driver structure.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 09818f629bafbe20e24bac919019853ea3ac5ca4
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Sep 29 15:57:50 2021 -0700

    af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
    
    commit 35306eb23814444bd4021f8a1c3047d3cb0c8b2b upstream.
    
    Jann Horn reported that SO_PEERCRED and SO_PEERGROUPS implementations
    are racy, as af_unix can concurrently change sk_peer_pid and sk_peer_cred.
    
    In order to fix this issue, this patch adds a new spinlock that needs
    to be used whenever these fields are read or written.
    
    Jann also pointed out that l2cap_sock_get_peer_pid_cb() is currently
    reading sk->sk_peer_pid which makes no sense, as this field
    is only possibly set by AF_UNIX sockets.
    We will have to clean this in a separate patch.
    This could be done by reverting b48596d1dc25 "Bluetooth: L2CAP: Add get_peer_pid callback"
    or implementing what was truly expected.
    
    Fixes: 109f6e39fa07 ("af_unix: Allow SO_PEERCRED to work across namespaces.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Jann Horn <jannh@google.com>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Cc: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [backport note: 4.4 and 4.9 don't have SO_PEERGROUPS, only SO_PEERCRED]
    [backport note: got rid of sk_get_peer_cred(), no users in 4.4/4.9]
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>