commit 1feba1d9c860c6082d5f7acfde54feae74151a61
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Mar 11 13:48:03 2021 +0100

    Linux 4.9.261
    
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Jason Self <jason@bluehome.net>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Link: https://lore.kernel.org/r/20210310132320.393957501@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c52e592d413098e366a18d8e398edaa42971f33b
Author: Aswath Govindraju <a-govindraju@ti.com>
Date:   Tue Jan 5 16:28:12 2021 +0530

    misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
    
    [ Upstream commit f6f1f8e6e3eea25f539105d48166e91f0ab46dd1 ]
    
    A dummy zero bit is sent preceding the data during a read transfer by the
    Microchip 93LC46B eeprom (section 2.7 of[1]). This results in right shift
    of data during a read. In order to ignore this bit a quirk can be added to
    send an extra zero bit after the read address.
    
    Add a quirk to ignore the zero bit sent before data by adding a zero bit
    after the read address.
    
    [1] - https://www.mouser.com/datasheet/2/268/20001749K-277859.pdf
    
    Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
    Link: https://lore.kernel.org/r/20210105105817.17644-3-a-govindraju@ti.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60fa1eaeb18eb606275c8af402c32d08cbc804f1
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Tue Nov 10 16:00:57 2020 -0600

    PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
    
    [ Upstream commit 059983790a4c963d92943e55a61fca55be427d55 ]
    
    Add function 1 DMA alias quirk for Marvell 88SS9215 PCIe SSD Controller.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=42679#c135
    Link: https://lore.kernel.org/r/20201110220516.697934-1-helgaas@kernel.org
    Reported-by: John Smith <LK7S2ED64JHGLKj75shg9klejHWG49h5hk@protonmail.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dcfafc6a2c5f281841418b3b6d8e66589382d5bf
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Mon Oct 19 20:56:26 2020 +0200

    platform/x86: acer-wmi: Add new force_caps module parameter
    
    [ Upstream commit 39aa009bb66f9d5fbd1e58ca4aa03d6e6f2c9915 ]
    
    Add a new force_caps module parameter to allow overriding the drivers
    builtin capability detection mechanism.
    
    This can be used to for example:
    -Disable rfkill functionality on devices where there is an AA OEM DMI
     record advertising non functional rfkill switches
    -Force loading of the driver on devices with a missing AA OEM DMI record
    
    Note that force_caps is -1 when unset, this allows forcing the
    capability field to 0, which results in acer-wmi only providing WMI
    hotkey handling while disabling all other (led, rfkill, backlight)
    functionality.
    
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20201019185628.264473-4-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1d648460d7c513b1f500b7887c9af98285340432
Author: Andrey Ryabinin <arbn@yandex-team.com>
Date:   Wed Feb 17 17:30:04 2021 +0300

    iommu/amd: Fix sleeping in atomic in increase_address_space()
    
    commit 140456f994195b568ecd7fc2287a34eadffef3ca upstream.
    
    increase_address_space() calls get_zeroed_page(gfp) under spin_lock with
    disabled interrupts. gfp flags passed to increase_address_space() may allow
    sleeping, so it comes to this:
    
     BUG: sleeping function called from invalid context at mm/page_alloc.c:4342
     in_atomic(): 1, irqs_disabled(): 1, pid: 21555, name: epdcbbf1qnhbsd8
    
     Call Trace:
      dump_stack+0x66/0x8b
      ___might_sleep+0xec/0x110
      __alloc_pages_nodemask+0x104/0x300
      get_zeroed_page+0x15/0x40
      iommu_map_page+0xdd/0x3e0
      amd_iommu_map+0x50/0x70
      iommu_map+0x106/0x220
      vfio_iommu_type1_ioctl+0x76e/0x950 [vfio_iommu_type1]
      do_vfs_ioctl+0xa3/0x6f0
      ksys_ioctl+0x66/0x70
      __x64_sys_ioctl+0x16/0x20
      do_syscall_64+0x4e/0x100
      entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fix this by moving get_zeroed_page() out of spin_lock/unlock section.
    
    Fixes: 754265bcab ("iommu/amd: Fix race in increase_address_space()")
    Signed-off-by: Andrey Ryabinin <arbn@yandex-team.com>
    Acked-by: Will Deacon <will@kernel.org>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210217143004.19165-1-arbn@yandex-team.com
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Andrey Ryabinin <arbn@yandex-team.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a36aeadeb4c2ff2272933b5df0ff26bc66e5d787
Author: Jeffle Xu <jefflexu@linux.alibaba.com>
Date:   Tue Mar 9 11:20:23 2021 +0800

    dm table: fix DAX iterate_devices based device capability checks
    
    commit 5b0fab508992c2e120971da658ce80027acbc405 upstream.
    
    Fix dm_table_supports_dax() and invert logic of both
    iterate_devices_callout_fn so that all devices' DAX capabilities are
    properly checked.
    
    Fixes: 545ed20e6df6 ("dm: add infrastructure for DAX support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jeffle Xu <jefflexu@linux.alibaba.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    [jeffle: no dax write cache, no dax synchronous]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75c5d315412626fbeea2349e2849be348edb5300
Author: Jeffle Xu <jefflexu@linux.alibaba.com>
Date:   Tue Mar 9 11:20:22 2021 +0800

    dm table: fix iterate_devices based device capability checks
    
    commit a4c8dd9c2d0987cf542a2a0c42684c9c6d78a04e upstream.
    
    According to the definition of dm_iterate_devices_fn:
     * This function must iterate through each section of device used by the
     * target until it encounters a non-zero return code, which it then returns.
     * Returns zero if no callout returned non-zero.
    
    For some target type (e.g. dm-stripe), one call of iterate_devices() may
    iterate multiple underlying devices internally, in which case a non-zero
    return code returned by iterate_devices_callout_fn will stop the iteration
    in advance. No iterate_devices_callout_fn should return non-zero unless
    device iteration should stop.
    
    Rename dm_table_requires_stable_pages() to dm_table_any_dev_attr() and
    elevate it for reuse to stop iterating (and return non-zero) on the
    first device that causes iterate_devices_callout_fn to return non-zero.
    Use dm_table_any_dev_attr() to properly iterate through devices.
    
    Rename device_is_nonrot() to device_is_rotational() and invert logic
    accordingly to fix improper disposition.
    
    [jeffle: backport notes]
    No stable writes. Also convert the no_sg_merge capability check, which
    is introduced by commit 200612ec33e5 ("dm table: propagate
    QUEUE_FLAG_NO_SG_MERGE"), and removed since commit 2705c93742e9 ("block:
    kill QUEUE_FLAG_NO_SG_MERGE") in v5.1.
    
    Fixes: c3c4555edd10 ("dm table: clear add_random unless all devices have it set")
    Fixes: 4693c9668fdc ("dm table: propagate non rotational flag")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jeffle Xu <jefflexu@linux.alibaba.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b2caacb95a00251ef586dac134b8614ddde7565d
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Mar 3 13:59:12 2021 +0300

    rsxx: Return -EFAULT if copy_to_user() fails
    
    [ Upstream commit 77516d25f54912a7baedeeac1b1b828b6f285152 ]
    
    The copy_to_user() function returns the number of bytes remaining but
    we want to return -EFAULT to the user if it can't complete the copy.
    The "st" variable only holds zero on success or negative error codes on
    failure so the type should be int.
    
    Fixes: 36f988e978f8 ("rsxx: Adding in debugfs entries.")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 44e48ebe5d17fcd0b42d7a4059eea5619737e948
Author: Colin Ian King <colin.king@canonical.com>
Date:   Sat Feb 27 00:15:27 2021 +0000

    ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits
    
    [ Upstream commit 26a9630c72ebac7c564db305a6aee54a8edde70e ]
    
    Currently the mask operation on variable conf is just 3 bits so
    the switch statement case value of 8 is unreachable dead code.
    The function daio_mgr_dao_init can be passed a 4 bit value,
    function dao_rsc_init calls it with conf set to:
    
         conf = (desc->msr & 0x7) | (desc->passthru << 3);
    
    so clearly when desc->passthru is set to 1 then conf can be
    at least 8.
    
    Fix this by changing the mask to 0xf.
    
    Fixes: 8cc72361481f ("ALSA: SB X-Fi driver merge")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Link: https://lore.kernel.org/r/20210227001527.1077484-1-colin.king@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4f836aa4fc449693e3e79cfe7e1fc08a3ea967aa
Author: Antonio Borneo <borneo.antonio@gmail.com>
Date:   Thu Jun 18 02:08:44 2020 +0200

    usbip: tools: fix build error for multiple definition
    
    commit d5efc2e6b98fe661dbd8dd0d5d5bfb961728e57a upstream.
    
    With GCC 10, building usbip triggers error for multiple definition
    of 'udev_context', in:
    - libsrc/vhci_driver.c:18 and
    - libsrc/usbip_host_common.c:27.
    
    Declare as extern the definition in libsrc/usbip_host_common.c.
    
    Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
    Acked-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20200618000844.1048309-1-borneo.antonio@gmail.com
    Cc: Petr Štetiar <ynezz@true.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d511a8b6f358d672ab3be2497ab843aee8da400
Author: Ira Weiny <ira.weiny@intel.com>
Date:   Wed Jan 27 22:15:03 2021 -0800

    btrfs: fix raid6 qstripe kmap
    
    commit d70cef0d46729808dc53f145372c02b145c92604 upstream.
    
    When a qstripe is required an extra page is allocated and mapped.  There
    were 3 problems:
    
    1) There is no corresponding call of kunmap() for the qstripe page.
    2) There is no reason to map the qstripe page more than once if the
       number of bits set in rbio->dbitmap is greater than one.
    3) There is no reason to map the parity page and unmap it each time
       through the loop.
    
    The page memory can continue to be reused with a single mapping on each
    iteration by raid6_call.gen_syndrome() without remapping.  So map the
    page for the duration of the loop.
    
    Similarly, improve the algorithm by mapping the parity page just 1 time.
    
    Fixes: 5a6ac9eacb49 ("Btrfs, raid56: support parity scrub on raid56")
    CC: stable@vger.kernel.org # 4.4.x: c17af96554a8: btrfs: raid56: simplify tracking of Q stripe presence
    CC: stable@vger.kernel.org # 4.4.x
    Signed-off-by: Ira Weiny <ira.weiny@intel.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c3c5136bb8446136098e53ddc622e7caac42277
Author: David Sterba <dsterba@suse.com>
Date:   Wed Feb 19 15:17:20 2020 +0100

    btrfs: raid56: simplify tracking of Q stripe presence
    
    commit c17af96554a8a8777cbb0fd53b8497250e548b43 upstream.
    
    There are temporary variables tracking the index of P and Q stripes, but
    none of them is really used as such, merely for determining if the Q
    stripe is present. This leads to compiler warnings with
    -Wunused-but-set-variable and has been reported several times.
    
    fs/btrfs/raid56.c: In function ‘finish_rmw’:
    fs/btrfs/raid56.c:1199:6: warning: variable ‘p_stripe’ set but not used [-Wunused-but-set-variable]
     1199 |  int p_stripe = -1;
          |      ^~~~~~~~
    fs/btrfs/raid56.c: In function ‘finish_parity_scrub’:
    fs/btrfs/raid56.c:2356:6: warning: variable ‘p_stripe’ set but not used [-Wunused-but-set-variable]
     2356 |  int p_stripe = -1;
          |      ^~~~~~~~
    
    Replace the two variables with one that has a clear meaning and also get
    rid of the warnings. The logic that verifies that there are only 2
    valid cases is unchanged.
    
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>