The patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From c119565a15a628efdfa51352f9f6c5186e506a1c Mon Sep 17 00:00:00 2001
From: Christophe Leroy <christophe.leroy(a)csgroup.eu>
Date: Mon, 1 Feb 2021 06:29:50 +0000
Subject: [PATCH] powerpc/603: Fix protection of user pages mapped with
PROT_NONE
On book3s/32, page protection is defined by the PP bits in the PTE
which provide the following protection depending on the access
keys defined in the matching segment register:
- PP 00 means RW with key 0 and N/A with key 1.
- PP 01 means RW with key 0 and RO with key 1.
- PP 10 means RW with both key 0 and key 1.
- PP 11 means RO with both key 0 and key 1.
Since the implementation of kernel userspace access protection,
PP bits have been set as follows:
- PP00 for pages without _PAGE_USER
- PP01 for pages with _PAGE_USER and _PAGE_RW
- PP11 for pages with _PAGE_USER and without _PAGE_RW
For kernelspace segments, kernel accesses are performed with key 0
and user accesses are performed with key 1. As PP00 is used for
non _PAGE_USER pages, user can't access kernel pages not flagged
_PAGE_USER while kernel can.
For userspace segments, both kernel and user accesses are performed
with key 0, therefore pages not flagged _PAGE_USER are still
accessible to the user.
This shouldn't be an issue, because userspace is expected to be
accessible to the user. But unlike most other architectures, powerpc
implements PROT_NONE protection by removing _PAGE_USER flag instead of
flagging the page as not valid. This means that pages in userspace
that are not flagged _PAGE_USER shall remain inaccessible.
To get the expected behaviour, just mimic other architectures in the
TLB miss handler by checking _PAGE_USER permission on userspace
accesses as if it was the _PAGE_PRESENT bit.
Note that this problem only is only for 603 cores. The 604+ have
an hash table, and hash_page() function already implement the
verification of _PAGE_USER permission on userspace pages.
Fixes: f342adca3afc ("powerpc/32s: Prepare Kernel Userspace Access Protection")
Cc: stable(a)vger.kernel.org # v5.2+
Reported-by: Christoph Plattner <christoph.plattner(a)thalesgroup.com>
Signed-off-by: Christophe Leroy <christophe.leroy(a)csgroup.eu>
Signed-off-by: Michael Ellerman <mpe(a)ellerman.id.au>
Link: https://lore.kernel.org/r/4a0c6e3bb8f0c162457bf54d9bc6fd8d7b55129f.16121609…
diff --git a/arch/powerpc/kernel/head_book3s_32.S b/arch/powerpc/kernel/head_book3s_32.S
index 727fdab557c9..565e84e20a72 100644
--- a/arch/powerpc/kernel/head_book3s_32.S
+++ b/arch/powerpc/kernel/head_book3s_32.S
@@ -457,11 +457,12 @@ InstructionTLBMiss:
cmplw 0,r1,r3
#endif
mfspr r2, SPRN_SDR1
- li r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
+ li r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC | _PAGE_USER
rlwinm r2, r2, 28, 0xfffff000
#ifdef CONFIG_MODULES
bgt- 112f
lis r2, (swapper_pg_dir - PAGE_OFFSET)@ha /* if kernel address, use */
+ li r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
addi r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l /* kernel page table */
#endif
112: rlwimi r2,r3,12,20,29 /* insert top 10 bits of address */
@@ -520,10 +521,11 @@ DataLoadTLBMiss:
lis r1, TASK_SIZE@h /* check if kernel address */
cmplw 0,r1,r3
mfspr r2, SPRN_SDR1
- li r1, _PAGE_PRESENT | _PAGE_ACCESSED
+ li r1, _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_USER
rlwinm r2, r2, 28, 0xfffff000
bgt- 112f
lis r2, (swapper_pg_dir - PAGE_OFFSET)@ha /* if kernel address, use */
+ li r1, _PAGE_PRESENT | _PAGE_ACCESSED
addi r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l /* kernel page table */
112: rlwimi r2,r3,12,20,29 /* insert top 10 bits of address */
lwz r2,0(r2) /* get pmd entry */
@@ -597,10 +599,11 @@ DataStoreTLBMiss:
lis r1, TASK_SIZE@h /* check if kernel address */
cmplw 0,r1,r3
mfspr r2, SPRN_SDR1
- li r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED
+ li r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_USER
rlwinm r2, r2, 28, 0xfffff000
bgt- 112f
lis r2, (swapper_pg_dir - PAGE_OFFSET)@ha /* if kernel address, use */
+ li r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED
addi r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l /* kernel page table */
112: rlwimi r2,r3,12,20,29 /* insert top 10 bits of address */
lwz r2,0(r2) /* get pmd entry */
The patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From cf25ef6b631c6fc6c0435fc91eba8734cca20511 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 1 Mar 2021 10:05:19 +0100
Subject: [PATCH] gpio: fix gpio-device list corruption
Make sure to hold the gpio_lock when removing the gpio device from the
gpio_devices list (when dropping the last reference) to avoid corrupting
the list when there are concurrent accesses.
Fixes: ff2b13592299 ("gpio: make the gpiochip a real device")
Cc: stable(a)vger.kernel.org # 4.6
Reviewed-by: Saravana Kannan <saravanak(a)google.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 6e0572515d02..4253837f870b 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -475,8 +475,12 @@ EXPORT_SYMBOL_GPL(gpiochip_line_is_valid);
static void gpiodevice_release(struct device *dev)
{
struct gpio_device *gdev = container_of(dev, struct gpio_device, dev);
+ unsigned long flags;
+ spin_lock_irqsave(&gpio_lock, flags);
list_del(&gdev->list);
+ spin_unlock_irqrestore(&gpio_lock, flags);
+
ida_free(&gpio_ida, gdev->id);
kfree_const(gdev->label);
kfree(gdev->descs);
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From cf25ef6b631c6fc6c0435fc91eba8734cca20511 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 1 Mar 2021 10:05:19 +0100
Subject: [PATCH] gpio: fix gpio-device list corruption
Make sure to hold the gpio_lock when removing the gpio device from the
gpio_devices list (when dropping the last reference) to avoid corrupting
the list when there are concurrent accesses.
Fixes: ff2b13592299 ("gpio: make the gpiochip a real device")
Cc: stable(a)vger.kernel.org # 4.6
Reviewed-by: Saravana Kannan <saravanak(a)google.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 6e0572515d02..4253837f870b 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -475,8 +475,12 @@ EXPORT_SYMBOL_GPL(gpiochip_line_is_valid);
static void gpiodevice_release(struct device *dev)
{
struct gpio_device *gdev = container_of(dev, struct gpio_device, dev);
+ unsigned long flags;
+ spin_lock_irqsave(&gpio_lock, flags);
list_del(&gdev->list);
+ spin_unlock_irqrestore(&gpio_lock, flags);
+
ida_free(&gpio_ida, gdev->id);
kfree_const(gdev->label);
kfree(gdev->descs);
The patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From cf25ef6b631c6fc6c0435fc91eba8734cca20511 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 1 Mar 2021 10:05:19 +0100
Subject: [PATCH] gpio: fix gpio-device list corruption
Make sure to hold the gpio_lock when removing the gpio device from the
gpio_devices list (when dropping the last reference) to avoid corrupting
the list when there are concurrent accesses.
Fixes: ff2b13592299 ("gpio: make the gpiochip a real device")
Cc: stable(a)vger.kernel.org # 4.6
Reviewed-by: Saravana Kannan <saravanak(a)google.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 6e0572515d02..4253837f870b 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -475,8 +475,12 @@ EXPORT_SYMBOL_GPL(gpiochip_line_is_valid);
static void gpiodevice_release(struct device *dev)
{
struct gpio_device *gdev = container_of(dev, struct gpio_device, dev);
+ unsigned long flags;
+ spin_lock_irqsave(&gpio_lock, flags);
list_del(&gdev->list);
+ spin_unlock_irqrestore(&gpio_lock, flags);
+
ida_free(&gpio_ida, gdev->id);
kfree_const(gdev->label);
kfree(gdev->descs);
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From cf25ef6b631c6fc6c0435fc91eba8734cca20511 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 1 Mar 2021 10:05:19 +0100
Subject: [PATCH] gpio: fix gpio-device list corruption
Make sure to hold the gpio_lock when removing the gpio device from the
gpio_devices list (when dropping the last reference) to avoid corrupting
the list when there are concurrent accesses.
Fixes: ff2b13592299 ("gpio: make the gpiochip a real device")
Cc: stable(a)vger.kernel.org # 4.6
Reviewed-by: Saravana Kannan <saravanak(a)google.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 6e0572515d02..4253837f870b 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -475,8 +475,12 @@ EXPORT_SYMBOL_GPL(gpiochip_line_is_valid);
static void gpiodevice_release(struct device *dev)
{
struct gpio_device *gdev = container_of(dev, struct gpio_device, dev);
+ unsigned long flags;
+ spin_lock_irqsave(&gpio_lock, flags);
list_del(&gdev->list);
+ spin_unlock_irqrestore(&gpio_lock, flags);
+
ida_free(&gpio_ida, gdev->id);
kfree_const(gdev->label);
kfree(gdev->descs);
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From cf25ef6b631c6fc6c0435fc91eba8734cca20511 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 1 Mar 2021 10:05:19 +0100
Subject: [PATCH] gpio: fix gpio-device list corruption
Make sure to hold the gpio_lock when removing the gpio device from the
gpio_devices list (when dropping the last reference) to avoid corrupting
the list when there are concurrent accesses.
Fixes: ff2b13592299 ("gpio: make the gpiochip a real device")
Cc: stable(a)vger.kernel.org # 4.6
Reviewed-by: Saravana Kannan <saravanak(a)google.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 6e0572515d02..4253837f870b 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -475,8 +475,12 @@ EXPORT_SYMBOL_GPL(gpiochip_line_is_valid);
static void gpiodevice_release(struct device *dev)
{
struct gpio_device *gdev = container_of(dev, struct gpio_device, dev);
+ unsigned long flags;
+ spin_lock_irqsave(&gpio_lock, flags);
list_del(&gdev->list);
+ spin_unlock_irqrestore(&gpio_lock, flags);
+
ida_free(&gpio_ida, gdev->id);
kfree_const(gdev->label);
kfree(gdev->descs);
From: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
This is the start of the stable review cycle for the 5.10.23 release.
There are 47 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Fri, 12 Mar 2021 18:28:23 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.23-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.10.23-rc2
Pascal Terjan <pterjan(a)google.com>
nvme-pci: add quirks for Lexar 256GB SSD
Julian Einwag <jeinwag-nvme(a)marcapo.com>
nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
Babu Moger <babu.moger(a)amd.com>
KVM: SVM: Clear the CR4 register on reset
Avri Altman <avri.altman(a)wdc.com>
scsi: ufs: Fix a duplicate dev quirk number
Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
ASoC: Intel: sof_sdw: add quirk for HP Spectre x360 convertible
Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
ASoC: Intel: sof_sdw: reorganize quirks by generation
Nadeem Athani <nadeem(a)cadence.com>
PCI: cadence: Retrain Link to work around Gen2 training defect
Fabian Lesniak <fabian(a)lesniak-it.de>
ALSA: usb-audio: add mixer quirks for Pioneer DJM-900NXS2
Olivia Mackintosh <livvy(a)base.nu>
ALSA: usb-audio: Add DJM750 to Pioneer mixer quirk
Hans de Goede <hdegoede(a)redhat.com>
HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo Winpad A15
Jisheng Zhang <Jisheng.Zhang(a)synaptics.com>
mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
AngeloGioacchino Del Regno <angelogioacchino.delregno(a)somainline.org>
drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
Kiwoong Kim <kwmad.kim(a)samsung.com>
scsi: ufs: ufs-exynos: Use UFSHCD_QUIRK_ALIGN_SG_WITH_PAGE_SIZE
Kiwoong Kim <kwmad.kim(a)samsung.com>
scsi: ufs: ufs-exynos: Apply vendor-specific values for three timeouts
Kiwoong Kim <kwmad.kim(a)samsung.com>
scsi: ufs: Introduce a quirk to allow only page-aligned sg entries
Aswath Govindraju <a-govindraju(a)ti.com>
misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
Kiwoong Kim <kwmad.kim(a)samsung.com>
scsi: ufs: Add a quirk to permit overriding UniPro defaults
Stanley Chu <stanley.chu(a)mediatek.com>
scsi: ufs-mediatek: Enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL
Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
ASoC: Intel: sof_sdw: add missing TGL_HDMI quirk for Dell SKU 0A32
Vitaly Kuznetsov <vkuznets(a)redhat.com>
KVM: x86: Supplement __cr4_reserved_bits() with X86_FEATURE_PCID check
Bjorn Helgaas <bhelgaas(a)google.com>
PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
Roger Quadros <rogerq(a)ti.com>
usb: cdns3: fix NULL pointer dereference on no platform data
Peter Chen <peter.chen(a)nxp.com>
usb: cdns3: add quirk for enable runtime pm by default
Peter Chen <peter.chen(a)nxp.com>
usb: cdns3: host: add xhci_plat_priv quirk XHCI_SKIP_PHY_INIT
Peter Chen <peter.chen(a)nxp.com>
usb: cdns3: host: add .suspend_quirk for xhci-plat.c
Chris Chiu <chiu(a)endlessos.org>
ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140
Jasper St. Pierre <jstpierre(a)mecheye.net>
ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807
Daniel Lee Kruse <daniel.lee.kruse(a)protonmail.com>
media: cx23885: add more quirks for reset DMA on some AMD IOMMU
Ethan Warth <redyoshi49q(a)gmail.com>
HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter
Hans de Goede <hdegoede(a)redhat.com>
platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch 10E SW3-016
Hans de Goede <hdegoede(a)redhat.com>
platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices
Hans de Goede <hdegoede(a)redhat.com>
platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag
Hans de Goede <hdegoede(a)redhat.com>
platform/x86: acer-wmi: Add new force_caps module parameter
Hans de Goede <hdegoede(a)redhat.com>
platform/x86: acer-wmi: Cleanup accelerometer device handling
Hans de Goede <hdegoede(a)redhat.com>
platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
Tony Lindgren <tony(a)atomide.com>
bus: ti-sysc: Implement GPMC debug quirk to drop platform data
Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
ASoC: Intel: sof_sdw: add quirk for new TigerLake-SDCA device
Tsuchiya Yuto <kitakar(a)gmail.com>
mwifiex: pcie: skip cancel_work_sync() on reset failure path
Abhishek Pandit-Subedi <abhishekpandit(a)chromium.org>
Bluetooth: btqca: Add valid le states quirk
Andrey Ryabinin <arbn(a)yandex-team.com>
iommu/amd: Fix sleeping in atomic in increase_address_space()
Nikolay Borisov <nborisov(a)suse.com>
btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
Nikolay Borisov <nborisov(a)suse.com>
btrfs: export and rename qgroup_reserve_meta
Nathan Chancellor <nathan(a)kernel.org>
arm64: Make CPU_BIG_ENDIAN depend on ld.bfd or ld.lld 13.0.0+
Helge Deller <deller(a)gmx.de>
parisc: Enable -mlong-calls gcc option with CONFIG_COMPILE_TEST
Zoltán Böszörményi <zboszor(a)gmail.com>
nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state
Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
ASoC: SOF: Intel: broadwell: fix mutual exclusion with catpt driver
Hans de Goede <hdegoede(a)redhat.com>
ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter handling
-------------
Diffstat:
Makefile | 4 +-
arch/arm64/Kconfig | 5 +-
arch/parisc/Kconfig | 7 +-
arch/x86/kvm/svm/svm.c | 1 +
arch/x86/kvm/x86.h | 2 +
drivers/acpi/acpica/acobject.h | 1 +
drivers/acpi/acpica/evhandler.c | 7 +
drivers/acpi/acpica/evregion.c | 64 +++-
drivers/acpi/acpica/evxfregn.c | 2 +
drivers/acpi/video_detect.c | 7 +
drivers/bluetooth/hci_qca.c | 19 +-
drivers/bus/ti-sysc.c | 10 +
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 2 -
drivers/hid/hid-ids.h | 3 +
drivers/hid/hid-mf.c | 2 +
drivers/hid/hid-quirks.c | 2 +
drivers/hid/i2c-hid/i2c-hid-core.c | 2 +
drivers/iommu/amd/iommu.c | 10 +-
drivers/media/pci/cx23885/cx23885-core.c | 4 +
drivers/misc/eeprom/eeprom_93xx46.c | 15 +
drivers/mmc/host/sdhci-of-dwcmshc.c | 1 +
drivers/net/wireless/marvell/mwifiex/pcie.c | 18 +-
drivers/net/wireless/marvell/mwifiex/pcie.h | 2 +
drivers/nvme/host/pci.c | 8 +-
drivers/pci/controller/cadence/pci-j721e.c | 3 +
drivers/pci/controller/cadence/pcie-cadence-host.c | 81 ++++-
drivers/pci/controller/cadence/pcie-cadence.h | 11 +-
drivers/pci/quirks.c | 3 +
drivers/platform/x86/acer-wmi.c | 169 ++++++++--
drivers/scsi/ufs/ufs-exynos.c | 9 +-
drivers/scsi/ufs/ufs-mediatek.c | 1 +
drivers/scsi/ufs/ufshcd.c | 42 +--
drivers/scsi/ufs/ufshcd.h | 10 +
drivers/usb/cdns3/core.c | 3 +-
drivers/usb/cdns3/core.h | 4 +
drivers/usb/cdns3/host-export.h | 6 +
drivers/usb/cdns3/host.c | 60 +++-
fs/btrfs/delayed-inode.c | 3 +-
fs/btrfs/inode.c | 2 +-
fs/btrfs/qgroup.c | 8 +-
fs/btrfs/qgroup.h | 2 +
include/linux/eeprom_93xx46.h | 2 +
include/linux/platform_data/ti-sysc.h | 1 +
sound/soc/intel/boards/bytcr_rt5640.c | 12 +
sound/soc/intel/boards/sof_sdw.c | 78 +++--
sound/soc/sof/intel/Kconfig | 2 +-
sound/usb/mixer_quirks.c | 367 ++++++++++++++-------
47 files changed, 820 insertions(+), 257 deletions(-)
From: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
This is the start of the stable review cycle for the 5.11.6 release.
There are 36 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Fri, 12 Mar 2021 13:23:09 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.11.6-rc1…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.11.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.11.6-rc1
Pascal Terjan <pterjan(a)google.com>
nvme-pci: add quirks for Lexar 256GB SSD
Julian Einwag <jeinwag-nvme(a)marcapo.com>
nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
Babu Moger <babu.moger(a)amd.com>
KVM: SVM: Clear the CR4 register on reset
Avri Altman <avri.altman(a)wdc.com>
scsi: ufs: Fix a duplicate dev quirk number
Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
ASoC: Intel: sof_sdw: add quirk for HP Spectre x360 convertible
Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
ASoC: Intel: sof_sdw: reorganize quirks by generation
Nadeem Athani <nadeem(a)cadence.com>
PCI: cadence: Retrain Link to work around Gen2 training defect
Hans de Goede <hdegoede(a)redhat.com>
HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E
Fabian Lesniak <fabian(a)lesniak-it.de>
ALSA: usb-audio: add mixer quirks for Pioneer DJM-900NXS2
Olivia Mackintosh <livvy(a)base.nu>
ALSA: usb-audio: Add DJM750 to Pioneer mixer quirk
Hans de Goede <hdegoede(a)redhat.com>
HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo Winpad A15
Jisheng Zhang <Jisheng.Zhang(a)synaptics.com>
mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
AngeloGioacchino Del Regno <angelogioacchino.delregno(a)somainline.org>
drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
Kiwoong Kim <kwmad.kim(a)samsung.com>
scsi: ufs: ufs-exynos: Use UFSHCD_QUIRK_ALIGN_SG_WITH_PAGE_SIZE
Kiwoong Kim <kwmad.kim(a)samsung.com>
scsi: ufs: ufs-exynos: Apply vendor-specific values for three timeouts
Kiwoong Kim <kwmad.kim(a)samsung.com>
scsi: ufs: Introduce a quirk to allow only page-aligned sg entries
Aswath Govindraju <a-govindraju(a)ti.com>
misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
Kiwoong Kim <kwmad.kim(a)samsung.com>
scsi: ufs: Add a quirk to permit overriding UniPro defaults
Stanley Chu <stanley.chu(a)mediatek.com>
scsi: ufs-mediatek: Enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL
Andrey Ryabinin <arbn(a)yandex-team.com>
iommu/amd: Fix sleeping in atomic in increase_address_space()
Nikolay Borisov <nborisov(a)suse.com>
btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
Nikolay Borisov <nborisov(a)suse.com>
btrfs: export and rename qgroup_reserve_meta
Nathan Chancellor <nathan(a)kernel.org>
arm64: Make CPU_BIG_ENDIAN depend on ld.bfd or ld.lld 13.0.0+
Helge Deller <deller(a)gmx.de>
parisc: Enable -mlong-calls gcc option with CONFIG_COMPILE_TEST
Zoltán Böszörményi <zboszor(a)gmail.com>
nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state
Jernej Skrabec <jernej.skrabec(a)siol.net>
media: cedrus: Remove checking for required controls
Pavel Begunkov <asml.silence(a)gmail.com>
io_uring: don't take uring_lock during iowq cancel
Pavel Begunkov <asml.silence(a)gmail.com>
io_uring/io-wq: return 2-step work swap scheme
Jens Axboe <axboe(a)kernel.dk>
io_uring/io-wq: kill off now unused IO_WQ_WORK_NO_CANCEL
Jens Axboe <axboe(a)kernel.dk>
io_uring: get rid of intermediate IORING_OP_CLOSE stage
Jens Axboe <axboe(a)kernel.dk>
fs: provide locked helper variant of close_fd_get_file()
Pavel Begunkov <asml.silence(a)gmail.com>
io_uring: deduplicate failing task_work_add
Pavel Begunkov <asml.silence(a)gmail.com>
io_uring: unpark SQPOLL thread for cancelation
Pavel Begunkov <asml.silence(a)gmail.com>
io_uring: deduplicate core cancellations sequence
Pavel Begunkov <asml.silence(a)gmail.com>
io_uring: fix inconsistent lock state
Hans de Goede <hdegoede(a)redhat.com>
ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter handling
-------------
Diffstat:
Makefile | 4 +-
arch/arm64/Kconfig | 5 +-
arch/parisc/Kconfig | 7 +-
arch/x86/kvm/svm/svm.c | 1 +
drivers/acpi/acpica/acobject.h | 1 +
drivers/acpi/acpica/evhandler.c | 7 +
drivers/acpi/acpica/evregion.c | 64 +++-
drivers/acpi/acpica/evxfregn.c | 2 +
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 2 -
drivers/hid/hid-ids.h | 2 +
drivers/hid/hid-ite.c | 12 +-
drivers/hid/i2c-hid/i2c-hid-core.c | 2 +
drivers/iommu/amd/iommu.c | 10 +-
drivers/misc/eeprom/eeprom_93xx46.c | 15 +
drivers/mmc/host/sdhci-of-dwcmshc.c | 1 +
drivers/nvme/host/pci.c | 8 +-
drivers/pci/controller/cadence/pci-j721e.c | 3 +
drivers/pci/controller/cadence/pcie-cadence-host.c | 81 ++++-
drivers/pci/controller/cadence/pcie-cadence.h | 11 +-
drivers/scsi/ufs/ufs-exynos.c | 9 +-
drivers/scsi/ufs/ufs-mediatek.c | 1 +
drivers/scsi/ufs/ufshcd.c | 42 +--
drivers/scsi/ufs/ufshcd.h | 10 +
drivers/staging/media/sunxi/cedrus/cedrus.c | 49 ---
drivers/staging/media/sunxi/cedrus/cedrus.h | 1 -
fs/btrfs/delayed-inode.c | 3 +-
fs/btrfs/inode.c | 2 +-
fs/btrfs/qgroup.c | 8 +-
fs/btrfs/qgroup.h | 2 +
fs/file.c | 36 +-
fs/internal.h | 1 +
fs/io-wq.c | 17 +-
fs/io-wq.h | 5 +-
fs/io_uring.c | 241 +++++++-------
include/linux/eeprom_93xx46.h | 2 +
sound/soc/intel/boards/sof_sdw.c | 89 +++--
sound/usb/mixer_quirks.c | 367 ++++++++++++++-------
37 files changed, 686 insertions(+), 437 deletions(-)
Recent patch to prevent calling __nvme_fc_abort_outstanding_ios in
interrupt context results in a possible race condition. A controller
reset results in errored io completions, which schedules error
work. The change of error work to a work element allows it to fire
after the ctrl state transition to NVME_CTRL_CONNECTING, causing
any outstanding io (used to initialize the controller) to fail and
cause problems for connect_work.
Add a state check to only schedule error work if not in the RESETTING
state.
Fixes: 19fce0470f05 ("nvme-fc: avoid calling _nvme_fc_abort_outstanding_ios from interrupt context")
Cc: <stable(a)vger.kernel.org> # v5.10+
Signed-off-by: Nigel Kirkland <nkirkland2304(a)gmail.com>
Signed-off-by: James Smart <jsmart2021(a)gmail.com>
---
v2: clean up typo in commit header
---
drivers/nvme/host/fc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
index 20dadd86e981..0f92bd12123e 100644
--- a/drivers/nvme/host/fc.c
+++ b/drivers/nvme/host/fc.c
@@ -2055,7 +2055,7 @@ nvme_fc_fcpio_done(struct nvmefc_fcp_req *req)
nvme_fc_complete_rq(rq);
check_error:
- if (terminate_assoc)
+ if (terminate_assoc && ctrl->ctrl.state != NVME_CTRL_RESETTING)
queue_work(nvme_reset_wq, &ctrl->ioerr_work);
}
--
2.26.2