FAILED: patch "[PATCH] PCI: Allow per function PCI slots to fix slot reset on s390" failed to apply to 7.2-stable tree
Subsystems (4)
[email protected]
maintainerThe patch below does not apply to the 7.2-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 <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-7.2.y
git checkout FETCH_HEAD
git cherry-pick -x dcc5bec09e23bbc4f9de055a11fce9937244f2c8
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026090354-paralyses-labored-e273@gregkh' --subject-prefix 'PATCH 7.2.y' 'HEAD^..'
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From dcc5bec09e23bbc4f9de055a11fce9937244f2c8 Mon Sep 17 00:00:00 2001
From: Farhan Ali <[email protected]>
Date: Wed, 5 Aug 2026 09:55:15 -0700
Subject: [PATCH] PCI: Allow per function PCI slots to fix slot reset on s390
On s390 systems, which use a machine level hypervisor, PCI devices are always accessed through a form of PCI pass-through which fundamentally operates on a per PCI function granularity. This is also reflected in the s390 PCI hotplug driver which creates hotplug slots for individual PCI functions. Its reset_slot() function, which is a wrapper for zpci_hot_reset_device(), thus also resets individual functions.
Currently, the pci_create_slot() assigns the same pci_slot object to multifunction devices. This approach worked fine on s390 systems that only exposed virtual functions as individual PCI domains to the operating system. Since commit 44510d6fa0c0 ("s390/pci: Handling multifunctions") s390 supports exposing the topology of multifunction PCI devices by grouping them in a shared PCI domain. This creates a problem when resetting a function through the hotplug driver's slot_reset() interface.
When attempting to reset a function through the hotplug driver, the shared slot assignment causes the wrong function to be reset instead of the intended one. It also leaks memory as we do create a pci_slot object for the function, but don't correctly free it in pci_slot_release().
Add a flag for struct pci_slot to allow per function PCI slots for functions managed through a hypervisor, which exposes individual PCI functions while retaining the topology. Since we can use all 8 bits for slot 'number' (for ARI devices), change slot 'number' u16 to account for special values PCI_SLOT_PLACEHOLDER and PCI_SLOT_ALL_DEVICES.
drivers/pci/pci.c +3 -2
@@ -4897,8 +4897,9 @@ static int pci_reset_hotplug_slot(struct hotplug_slot *hotplug, bool probe)static int pci_dev_reset_slot_function (struct pci_dev *dev,bool probe) { -if (dev->multifunction || dev->subordinate || !dev->slot || - dev->dev_flags &PCI_DEV_FLAGS_NO_BUS_RESET ) +if (dev->subordinate || !dev->slot || + dev->dev_flags &PCI_DEV_FLAGS_NO_BUS_RESET || + (dev->multifunction && !dev->slot->per_func_slot))return -ENOTTY ;return pci_reset_hotplug_slot (dev->slot->hotplug, probe);
drivers/pci/slot.c +23 -6
@@ -72,6 +72,23 @@ static ssize_t cur_speed_read_file(struct pci_slot *slot, char *buf)return bus_speed_read (slot->bus->cur_bus_speed, buf); } +static bool pci_dev_matches_slot (struct pci_dev *dev,struct pci_slot *slot) +{ +if (slot->per_func_slot) +return dev->devfn == slot->number; + +return slot->number ==PCI_SLOT_ALL_DEVICES || +PCI_SLOT (dev->devfn) == slot->number; +} + +static bool pci_slot_enabled_per_func (void ) +{ +if (IS_ENABLED (CONFIG_S390 )) +return true; + +return false; +} +static void pci_slot_release (struct kobject *kobj) {struct pci_dev *dev;
@@ -82,8 +99,7 @@ static void pci_slot_release(struct kobject *kobj)down_read (&pci_bus_sem);list_for_each_entry (dev, &slot->bus->devices, bus_list) -if (slot->number ==PCI_SLOT_ALL_DEVICES || -PCI_SLOT (dev->devfn) == slot->number) +if (pci_dev_matches_slot (dev, slot)) dev->slot =NULL ;up_read (&pci_bus_sem);
@@ -187,8 +203,7 @@ void pci_dev_assign_slot(struct pci_dev *dev)mutex_lock (&pci_slot_mutex);list_for_each_entry (slot, &dev->bus->slots, list) -if (slot->number ==PCI_SLOT_ALL_DEVICES || -PCI_SLOT (dev->devfn) == slot->number) +if (pci_dev_matches_slot (dev, slot)) dev->slot = slot;mutex_unlock (&pci_slot_mutex); }
@@ -299,6 +314,9 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr, slot->bus =pci_bus_get (parent); slot->number = slot_nr; +if (pci_slot_enabled_per_func ()) + slot->per_func_slot =1 ; + slot->kobj.kset = pci_slots_kset; slot_name =make_slot_name (name);
@@ -319,8 +337,7 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,down_read (&pci_bus_sem);list_for_each_entry (dev, &parent->devices, bus_list) -if (slot_nr ==PCI_SLOT_ALL_DEVICES || -PCI_SLOT (dev->devfn) == slot_nr) +if (pci_dev_matches_slot (dev, slot)) dev->slot = slot;up_read (&pci_bus_sem);
include/linux/pci.h +4 -3
@@ -79,17 +79,18 @@* and, if ARI Forwarding is enabled, functions may appear to be on multiple * devices. */ -#define PCI_SLOT_ALL_DEVICES 0xfe +#define PCI_SLOT_ALL_DEVICES 0xfeff/* Used to identify a slot as a placeholder */ -#define PCI_SLOT_PLACEHOLDER 0xff +#define PCI_SLOT_PLACEHOLDER 0xffff/* pci_slot represents a physical slot */ struct pci_slot {struct pci_bus *bus;/* Bus this slot is on */ struct list_head list;/* Node in list of slots */ struct hotplug_slot *hotplug;/* Hotplug info (move here) */ -unsigned char number;/* Device nr, or PCI_SLOT_ALL_DEVICES */ +u16 number;/* Device nr, or PCI_SLOT_ALL_DEVICES */ +unsigned int per_func_slot:1 ;/* Allow per function slot */ struct kobject kobj; };
Sasha Levin
maintainerPATCH 1/2 PCI: Introduce PCI_SLOT_PLACEHOLDER constant for slot_nr placeholder value
From: Farhan Ali <[email protected]>
[ Upstream commit c243e6c470c4695965cc8287767925bc1d9a7867 ]
Introduce a constant for placeholder value and update the kerneldoc for pci_create_slot() to reference PCI_SLOT_PLACEHOLDER instead of -1 throughout. No functional change.
Stable-dep-of: dcc5bec09e23 ("PCI: Allow per function PCI slots to fix slot reset on s390")
--- drivers/pci/hotplug/pnv_php.c | 2 +- drivers/pci/hotplug/rpaphp_slot.c | 2 +- drivers/pci/slot.c | 21 +++++++++++---------- include/linux/pci.h | 3 +++ 4 files changed, 16 insertions(+), 12 deletions(-)
drivers/pci/hotplug/pnv_php.c +1 -1
@@ -808,7 +808,7 @@ static struct pnv_php_slot *pnv_php_alloc_slot(struct device_node *dn)if (dn->child &&PCI_DN (dn->child)) php_slot->slot_no =PCI_SLOT (PCI_DN (dn->child)->devfn);else - php_slot->slot_no =-1 ;/* Placeholder slot */ + php_slot->slot_no =PCI_SLOT_PLACEHOLDER ;/* Placeholder slot */ kref_init (&php_slot->kref); php_slot->state =PNV_PHP_STATE_INITIALIZED ;
drivers/pci/hotplug/rpaphp_slot.c +1 -1
@@ -84,7 +84,7 @@ int rpaphp_register_slot(struct slot *slot)struct hotplug_slot *php_slot = &slot->hotplug_slot;u32 my_index;int retval; -int slotno =-1 ; +int slotno =PCI_SLOT_PLACEHOLDER ; dbg("%s registering slot:path[%pOF] index[%x], name[%s] pdomain[%x] type[%d]\n", __func__, slot->dn, slot->index, slot->name,
drivers/pci/slot.c +11 -10
@@ -37,7 +37,7 @@ static const struct sysfs_ops pci_slot_sysfs_ops = {static ssize_t address_read_file (struct pci_slot *slot,char *buf) { -if (slot->number ==0xff ) +if (slot->number ==PCI_SLOT_PLACEHOLDER )return sysfs_emit (buf,"%04x:%02x\n" ,pci_domain_nr (slot->bus), slot->bus->number);
@@ -210,7 +210,7 @@ static struct pci_slot *get_slot(struct pci_bus *parent, int slot_nr)/** * pci_create_slot - create or increment refcount for physical PCI slot * @parent: struct pci_bus of parent bridge -* @slot_nr: PCI_SLOT(pci_dev->devfn), -1 for placeholder, or +* @slot_nr: PCI_SLOT(pci_dev->devfn), PCI_SLOT_PLACEHOLDER for placeholder, or * PCI_SLOT_ALL_DEVICES * @name: user visible string presented in /sys/bus/pci/slots/<name> * @hotplug: set if caller is hotplug driver, NULL otherwise
@@ -236,15 +236,16 @@ static struct pci_slot *get_slot(struct pci_bus *parent, int slot_nr)* In most cases, @pci_bus, @slot_nr will be sufficient to uniquely identify * a slot. There is one notable exception - pSeries (rpaphp), where the * @slot_nr cannot be determined until a device is actually inserted into -* the slot. In this scenario, the caller may pass -1 for @slot_nr. +* the slot. In this scenario, the caller may pass PCI_SLOT_PLACEHOLDER for @slot_nr. * * The following semantics are imposed when the caller passes @slot_nr == -* -1. First, we no longer check for an existing %struct pci_slot, as there -* may be many slots with @slot_nr of -1. The other change in semantics is -* user-visible, which is the 'address' parameter presented in sysfs will -* consist solely of a dddd:bb tuple, where dddd is the PCI domain of the -* %struct pci_bus and bb is the bus number. In other words, the devfn of -* the 'placeholder' slot will not be displayed. +* PCI_SLOT_PLACEHOLDER. First, we no longer check for an existing %struct +* pci_slot, as there may be many slots with @slot_nr of +* PCI_SLOT_PLACEHOLDER. The other change in semantics is user-visible, +* which is the 'address' parameter presented in sysfs will consist solely +* of a dddd:bb tuple, where dddd is the PCI domain of the %struct pci_bus +* and bb is the bus number. In other words, the devfn of the 'placeholder' +* slot will not be displayed. * * Bus-wide slots: * For PCIe hotplug, the physical slot encompasses the entire secondary
@@ -267,7 +268,7 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,mutex_lock (&pci_slot_mutex); -if (slot_nr ==-1 ) +if (slot_nr ==PCI_SLOT_PLACEHOLDER ) goto placeholder;/*
include/linux/pci.h +3 -0
@@ -81,6 +81,9 @@*/ #define PCI_SLOT_ALL_DEVICES 0xfe +/* Used to identify a slot as a placeholder */ +#define PCI_SLOT_PLACEHOLDER 0xff +/* pci_slot represents a physical slot */ struct pci_slot {struct pci_bus *bus;/* Bus this slot is on */
Signature · 1 line
2.53.0
Sasha Levin
maintainerPATCH 2/2 PCI: Allow per function PCI slots to fix slot reset on s390
From: Farhan Ali <[email protected]>
[ Upstream commit dcc5bec09e23bbc4f9de055a11fce9937244f2c8 ]
On s390 systems, which use a machine level hypervisor, PCI devices are always accessed through a form of PCI pass-through which fundamentally operates on a per PCI function granularity. This is also reflected in the s390 PCI hotplug driver which creates hotplug slots for individual PCI functions. Its reset_slot() function, which is a wrapper for zpci_hot_reset_device(), thus also resets individual functions.
Currently, the pci_create_slot() assigns the same pci_slot object to multifunction devices. This approach worked fine on s390 systems that only exposed virtual functions as individual PCI domains to the operating system. Since commit 44510d6fa0c0 ("s390/pci: Handling multifunctions") s390 supports exposing the topology of multifunction PCI devices by grouping them in a shared PCI domain. This creates a problem when resetting a function through the hotplug driver's slot_reset() interface.
When attempting to reset a function through the hotplug driver, the shared slot assignment causes the wrong function to be reset instead of the intended one. It also leaks memory as we do create a pci_slot object for the function, but don't correctly free it in pci_slot_release().
Add a flag for struct pci_slot to allow per function PCI slots for functions managed through a hypervisor, which exposes individual PCI functions while retaining the topology. Since we can use all 8 bits for slot 'number' (for ARI devices), change slot 'number' u16 to account for special values PCI_SLOT_PLACEHOLDER and PCI_SLOT_ALL_DEVICES.
--- drivers/pci/pci.c | 5 +++-- drivers/pci/slot.c | 29 +++++++++++++++++++++++------ include/linux/pci.h | 7 ++++--- 3 files changed, 30 insertions(+), 11 deletions(-)
drivers/pci/pci.c +3 -2
@@ -4897,8 +4897,9 @@ static int pci_reset_hotplug_slot(struct hotplug_slot *hotplug, bool probe)static int pci_dev_reset_slot_function (struct pci_dev *dev,bool probe) { -if (dev->multifunction || dev->subordinate || !dev->slot || - dev->dev_flags &PCI_DEV_FLAGS_NO_BUS_RESET ) +if (dev->subordinate || !dev->slot || + dev->dev_flags &PCI_DEV_FLAGS_NO_BUS_RESET || + (dev->multifunction && !dev->slot->per_func_slot))return -ENOTTY ;return pci_reset_hotplug_slot (dev->slot->hotplug, probe);
drivers/pci/slot.c +23 -6
@@ -72,6 +72,23 @@ static ssize_t cur_speed_read_file(struct pci_slot *slot, char *buf)return bus_speed_read (slot->bus->cur_bus_speed, buf); } +static bool pci_dev_matches_slot (struct pci_dev *dev,struct pci_slot *slot) +{ +if (slot->per_func_slot) +return dev->devfn == slot->number; + +return slot->number ==PCI_SLOT_ALL_DEVICES || +PCI_SLOT (dev->devfn) == slot->number; +} + +static bool pci_slot_enabled_per_func (void ) +{ +if (IS_ENABLED (CONFIG_S390 )) +return true; + +return false; +} +static void pci_slot_release (struct kobject *kobj) {struct pci_dev *dev;
@@ -82,8 +99,7 @@ static void pci_slot_release(struct kobject *kobj)down_read (&pci_bus_sem);list_for_each_entry (dev, &slot->bus->devices, bus_list) -if (slot->number ==PCI_SLOT_ALL_DEVICES || -PCI_SLOT (dev->devfn) == slot->number) +if (pci_dev_matches_slot (dev, slot)) dev->slot =NULL ;up_read (&pci_bus_sem);
@@ -187,8 +203,7 @@ void pci_dev_assign_slot(struct pci_dev *dev)mutex_lock (&pci_slot_mutex);list_for_each_entry (slot, &dev->bus->slots, list) -if (slot->number ==PCI_SLOT_ALL_DEVICES || -PCI_SLOT (dev->devfn) == slot->number) +if (pci_dev_matches_slot (dev, slot)) dev->slot = slot;mutex_unlock (&pci_slot_mutex); }
@@ -299,6 +314,9 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr, slot->bus =pci_bus_get (parent); slot->number = slot_nr; +if (pci_slot_enabled_per_func ()) + slot->per_func_slot =1 ; + slot->kobj.kset = pci_slots_kset; slot_name =make_slot_name (name);
@@ -319,8 +337,7 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,down_read (&pci_bus_sem);list_for_each_entry (dev, &parent->devices, bus_list) -if (slot_nr ==PCI_SLOT_ALL_DEVICES || -PCI_SLOT (dev->devfn) == slot_nr) +if (pci_dev_matches_slot (dev, slot)) dev->slot = slot;up_read (&pci_bus_sem);
include/linux/pci.h +4 -3
@@ -79,17 +79,18 @@* and, if ARI Forwarding is enabled, functions may appear to be on multiple * devices. */ -#define PCI_SLOT_ALL_DEVICES 0xfe +#define PCI_SLOT_ALL_DEVICES 0xfeff/* Used to identify a slot as a placeholder */ -#define PCI_SLOT_PLACEHOLDER 0xff +#define PCI_SLOT_PLACEHOLDER 0xffff/* pci_slot represents a physical slot */ struct pci_slot {struct pci_bus *bus;/* Bus this slot is on */ struct list_head list;/* Node in list of slots */ struct hotplug_slot *hotplug;/* Hotplug info (move here) */ -unsigned char number;/* Device nr, or PCI_SLOT_ALL_DEVICES */ +u16 number;/* Device nr, or PCI_SLOT_ALL_DEVICES */ +unsigned int per_func_slot:1 ;/* Allow per function slot */ struct kobject kobj; };
Signature · 1 line
2.53.0
Patch "PCI: Introduce PCI_SLOT_PLACEHOLDER constant for slot_nr placeholder value" has been added to the 7.2-stable tree
In reply to Sasha LevinThis is a note to let you know that I've just added the patch titled
PCI: Introduce PCI_SLOT_PLACEHOLDER constant for slot_nr placeholder value
to the 7.2-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
pci-introduce-pci_slot_placeholder-constant-for-slot_nr-placeholder-value.patch
and it can be found in the queue-7.2 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
From [email protected] Wed Sep 9 14:48:10 2026
From: Sasha Levin <[email protected]>
Date: Wed, 9 Sep 2026 07:47:43 -0400
Subject: PCI: Introduce PCI_SLOT_PLACEHOLDER constant for slot_nr placeholder value
To: [email protected]
Cc: Farhan Ali <[email protected]>, Bjorn Helgaas <[email protected]>, Madhavan Srinivasan <[email protected]>, Tyrel Datwyler <[email protected]>, [email protected], Sasha Levin <[email protected]>
Message-ID: <[email protected]>
From: Farhan Ali <[email protected]>
[ Upstream commit c243e6c470c4695965cc8287767925bc1d9a7867 ]
Introduce a constant for placeholder value and update the kerneldoc for pci_create_slot() to reference PCI_SLOT_PLACEHOLDER instead of -1 throughout. No functional change.
Stable-dep-of: dcc5bec09e23 ("PCI: Allow per function PCI slots to fix slot reset on s390")
--- drivers/pci/hotplug/pnv_php.c | 2 +- drivers/pci/hotplug/rpaphp_slot.c | 2 +- drivers/pci/slot.c | 21 +++++++++++---------- include/linux/pci.h | 3 +++ 4 files changed, 16 insertions(+), 12 deletions(-)
drivers/pci/hotplug/pnv_php.c +1 -1
@@ -808,7 +808,7 @@ static struct pnv_php_slot *pnv_php_alloif (dn->child &&PCI_DN (dn->child)) php_slot->slot_no =PCI_SLOT (PCI_DN (dn->child)->devfn);else - php_slot->slot_no =-1 ;/* Placeholder slot */ + php_slot->slot_no =PCI_SLOT_PLACEHOLDER ;/* Placeholder slot */ kref_init (&php_slot->kref); php_slot->state =PNV_PHP_STATE_INITIALIZED ;
drivers/pci/hotplug/rpaphp_slot.c +1 -1
@@ -84,7 +84,7 @@ int rpaphp_register_slot(struct slot *slstruct hotplug_slot *php_slot = &slot->hotplug_slot;u32 my_index;int retval; -int slotno =-1 ; +int slotno =PCI_SLOT_PLACEHOLDER ; dbg("%s registering slot:path[%pOF] index[%x], name[%s] pdomain[%x] type[%d]\n", __func__, slot->dn, slot->index, slot->name,
drivers/pci/slot.c +11 -10
@@ -37,7 +37,7 @@ static const struct sysfs_ops pci_slot_sstatic ssize_t address_read_file (struct pci_slot *slot,char *buf) { -if (slot->number ==0xff ) +if (slot->number ==PCI_SLOT_PLACEHOLDER )return sysfs_emit (buf,"%04x:%02x\n" ,pci_domain_nr (slot->bus), slot->bus->number);
@@ -210,7 +210,7 @@ static struct pci_slot *get_slot(struct/** * pci_create_slot - create or increment refcount for physical PCI slot * @parent: struct pci_bus of parent bridge -* @slot_nr: PCI_SLOT(pci_dev->devfn), -1 for placeholder, or +* @slot_nr: PCI_SLOT(pci_dev->devfn), PCI_SLOT_PLACEHOLDER for placeholder, or * PCI_SLOT_ALL_DEVICES * @name: user visible string presented in /sys/bus/pci/slots/<name> * @hotplug: set if caller is hotplug driver, NULL otherwise
@@ -236,15 +236,16 @@ static struct pci_slot *get_slot(struct* In most cases, @pci_bus, @slot_nr will be sufficient to uniquely identify * a slot. There is one notable exception - pSeries (rpaphp), where the * @slot_nr cannot be determined until a device is actually inserted into -* the slot. In this scenario, the caller may pass -1 for @slot_nr. +* the slot. In this scenario, the caller may pass PCI_SLOT_PLACEHOLDER for @slot_nr. * * The following semantics are imposed when the caller passes @slot_nr == -* -1. First, we no longer check for an existing %struct pci_slot, as there -* may be many slots with @slot_nr of -1. The other change in semantics is -* user-visible, which is the 'address' parameter presented in sysfs will -* consist solely of a dddd:bb tuple, where dddd is the PCI domain of the -* %struct pci_bus and bb is the bus number. In other words, the devfn of -* the 'placeholder' slot will not be displayed. +* PCI_SLOT_PLACEHOLDER. First, we no longer check for an existing %struct +* pci_slot, as there may be many slots with @slot_nr of +* PCI_SLOT_PLACEHOLDER. The other change in semantics is user-visible, +* which is the 'address' parameter presented in sysfs will consist solely +* of a dddd:bb tuple, where dddd is the PCI domain of the %struct pci_bus +* and bb is the bus number. In other words, the devfn of the 'placeholder' +* slot will not be displayed. * * Bus-wide slots: * For PCIe hotplug, the physical slot encompasses the entire secondary
@@ -267,7 +268,7 @@ struct pci_slot *pci_create_slot(structmutex_lock (&pci_slot_mutex); -if (slot_nr ==-1 ) +if (slot_nr ==PCI_SLOT_PLACEHOLDER ) goto placeholder;/*
include/linux/pci.h +3 -0
@@ -81,6 +81,9 @@*/ #define PCI_SLOT_ALL_DEVICES 0xfe +/* Used to identify a slot as a placeholder */ +#define PCI_SLOT_PLACEHOLDER 0xff +/* pci_slot represents a physical slot */ struct pci_slot {struct pci_bus *bus;/* Bus this slot is on */
Patches currently in stable-queue which might be from [email protected] are
queue-7.2/bpf-factor-stackid_init-function-from-__bpf_get_stackid.patch queue-7.2/kvm-x86-mmu-use-split-zap-all-fast-helpers-when-invalidating-memslot.patch queue-7.2/net-skbuff-don-t-skb_tx_error-the-source-skb-in-skb_.patch queue-7.2/remoteproc-qcom-pas-guard-dtb-metadata-release-with-dtb_pas_id-check.patch queue-7.2/zram-move-lockmap-to-be-per-zram-instead-per-table.patch queue-7.2/usb-gadget-ffs-fix-mm-lifetime-handling.patch queue-7.2/bpf-disable-preemption-in-bpf_get_stackid.patch queue-7.2/acpi-battery-protect-all-properties-with-a-separated-mutex.patch queue-7.2/pci-allow-per-function-pci-slots-to-fix-slot-reset-on-s390.patch queue-7.2/bpf-factor-stackid_new_bucket-from-__bpf_get_stackid.patch queue-7.2/bpf-factor-stackid_fastpath-function-from-__bpf_get_stackid.patch queue-7.2/kvm-x86-mmu-fold-kvm_mmu_zap_memslot-into-kvm_arch_flush_shadow_memslot.patch queue-7.2/kvm-x86-mmu-split-kvm_mmu_zap_all_fast-into-front-and-back-halves.patch queue-7.2/nfsd-prevent-client-use-after-free-during-blocked-lock-reaping.patch queue-7.2/nfsd-prevent-client-use-after-free-during-close_lru-reaping.patch queue-7.2/nfsd-annotate-caller-preconditions-for-the-state-table-walkers.patch queue-7.2/kvm-sev-forcefully-invalidate-snp-vmsa-if-its-backing-gmem-page-is-zapped.patch queue-7.2/nfsd-guard-admin-state-revocation-walks-with-nfsd_net_up.patch queue-7.2/power-supply-ab8500_fg-fix-use-after-free-on-remove.patch queue-7.2/ceph-properly-decrypt-filenames-in-vmalloc-buffers.patch queue-7.2/zram-fix-slot-lock-bit-position-on-big-endian-64-bit.patch queue-7.2/pci-introduce-pci_slot_placeholder-constant-for-slot_nr-placeholder-value.patch queue-7.2/nfsd-prevent-client-use-after-free-during-export-state-revocation.patch queue-7.2/hid-sony-clean-up-device-list-on-probe-failure.patch queue-7.2/bpf-use-stack-id-functions-instead-of-__bpf_get_stackid.patch queue-7.2/rpcrdma-arm-rn_done-before-publishing-the-notification.patch queue-7.2/power-supply-ab8500_fg-remove-redundant-dev_err-dev_err_probe.patch queue-7.2/usb-gadget-f_fs-fix-use-after-free-in-aio-error-path.patch queue-7.2/acpi-battery-use-kstrtoul-over-sscanf-lu-n.patch queue-7.2/mm-page_alloc-don-t-spin_trylock-in-nmi-on-up.patch queue-7.2/hid-sony-use-guard-and-scoped_guard.patch queue-7.2/nfsd-consolidate-the-revocation-path-client-unpin.patch