From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Jason Gunthorpe <jgg@nvidia.com>,
Kevin Tian <kevin.tian@intel.com>,
Alex Williamson <alex.williamson@redhat.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.9 054/163] vfio/pci: Use unmap_mapping_range()
Date: Tue, 23 Jul 2024 20:23:03 +0200 [thread overview]
Message-ID: <20240723180145.562046373@linuxfoundation.org> (raw)
In-Reply-To: <20240723180143.461739294@linuxfoundation.org>
6.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alex Williamson <alex.williamson@redhat.com>
[ Upstream commit aac6db75a9fc2c7a6f73e152df8f15101dda38e6 ]
With the vfio device fd tied to the address space of the pseudo fs
inode, we can use the mm to track all vmas that might be mmap'ing
device BARs, which removes our vma_list and all the complicated lock
ordering necessary to manually zap each related vma.
Note that we can no longer store the pfn in vm_pgoff if we want to use
unmap_mapping_range() to zap a selective portion of the device fd
corresponding to BAR mappings.
This also converts our mmap fault handler to use vmf_insert_pfn()
because we no longer have a vma_list to avoid the concurrency problem
with io_remap_pfn_range(). The goal is to eventually use the vm_ops
huge_fault handler to avoid the additional faulting overhead, but
vmf_insert_pfn_{pmd,pud}() need to learn about pfnmaps first.
Also, Jason notes that a race exists between unmap_mapping_range() and
the fops mmap callback if we were to call io_remap_pfn_range() to
populate the vma on mmap. Specifically, mmap_region() does call_mmap()
before it does vma_link_file() which gives a window where the vma is
populated but invisible to unmap_mapping_range().
Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Link: https://lore.kernel.org/r/20240530045236.1005864-3-alex.williamson@redhat.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/vfio/pci/vfio_pci_core.c | 264 +++++++------------------------
include/linux/vfio_pci_core.h | 2 -
2 files changed, 55 insertions(+), 211 deletions(-)
diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
index ea36d2139590f..727a51ce9ad71 100644
--- a/drivers/vfio/pci/vfio_pci_core.c
+++ b/drivers/vfio/pci/vfio_pci_core.c
@@ -1607,100 +1607,20 @@ ssize_t vfio_pci_core_write(struct vfio_device *core_vdev, const char __user *bu
}
EXPORT_SYMBOL_GPL(vfio_pci_core_write);
-/* Return 1 on zap and vma_lock acquired, 0 on contention (only with @try) */
-static int vfio_pci_zap_and_vma_lock(struct vfio_pci_core_device *vdev, bool try)
+static void vfio_pci_zap_bars(struct vfio_pci_core_device *vdev)
{
- struct vfio_pci_mmap_vma *mmap_vma, *tmp;
+ struct vfio_device *core_vdev = &vdev->vdev;
+ loff_t start = VFIO_PCI_INDEX_TO_OFFSET(VFIO_PCI_BAR0_REGION_INDEX);
+ loff_t end = VFIO_PCI_INDEX_TO_OFFSET(VFIO_PCI_ROM_REGION_INDEX);
+ loff_t len = end - start;
- /*
- * Lock ordering:
- * vma_lock is nested under mmap_lock for vm_ops callback paths.
- * The memory_lock semaphore is used by both code paths calling
- * into this function to zap vmas and the vm_ops.fault callback
- * to protect the memory enable state of the device.
- *
- * When zapping vmas we need to maintain the mmap_lock => vma_lock
- * ordering, which requires using vma_lock to walk vma_list to
- * acquire an mm, then dropping vma_lock to get the mmap_lock and
- * reacquiring vma_lock. This logic is derived from similar
- * requirements in uverbs_user_mmap_disassociate().
- *
- * mmap_lock must always be the top-level lock when it is taken.
- * Therefore we can only hold the memory_lock write lock when
- * vma_list is empty, as we'd need to take mmap_lock to clear
- * entries. vma_list can only be guaranteed empty when holding
- * vma_lock, thus memory_lock is nested under vma_lock.
- *
- * This enables the vm_ops.fault callback to acquire vma_lock,
- * followed by memory_lock read lock, while already holding
- * mmap_lock without risk of deadlock.
- */
- while (1) {
- struct mm_struct *mm = NULL;
-
- if (try) {
- if (!mutex_trylock(&vdev->vma_lock))
- return 0;
- } else {
- mutex_lock(&vdev->vma_lock);
- }
- while (!list_empty(&vdev->vma_list)) {
- mmap_vma = list_first_entry(&vdev->vma_list,
- struct vfio_pci_mmap_vma,
- vma_next);
- mm = mmap_vma->vma->vm_mm;
- if (mmget_not_zero(mm))
- break;
-
- list_del(&mmap_vma->vma_next);
- kfree(mmap_vma);
- mm = NULL;
- }
- if (!mm)
- return 1;
- mutex_unlock(&vdev->vma_lock);
-
- if (try) {
- if (!mmap_read_trylock(mm)) {
- mmput(mm);
- return 0;
- }
- } else {
- mmap_read_lock(mm);
- }
- if (try) {
- if (!mutex_trylock(&vdev->vma_lock)) {
- mmap_read_unlock(mm);
- mmput(mm);
- return 0;
- }
- } else {
- mutex_lock(&vdev->vma_lock);
- }
- list_for_each_entry_safe(mmap_vma, tmp,
- &vdev->vma_list, vma_next) {
- struct vm_area_struct *vma = mmap_vma->vma;
-
- if (vma->vm_mm != mm)
- continue;
-
- list_del(&mmap_vma->vma_next);
- kfree(mmap_vma);
-
- zap_vma_ptes(vma, vma->vm_start,
- vma->vm_end - vma->vm_start);
- }
- mutex_unlock(&vdev->vma_lock);
- mmap_read_unlock(mm);
- mmput(mm);
- }
+ unmap_mapping_range(core_vdev->inode->i_mapping, start, len, true);
}
void vfio_pci_zap_and_down_write_memory_lock(struct vfio_pci_core_device *vdev)
{
- vfio_pci_zap_and_vma_lock(vdev, false);
down_write(&vdev->memory_lock);
- mutex_unlock(&vdev->vma_lock);
+ vfio_pci_zap_bars(vdev);
}
u16 vfio_pci_memory_lock_and_enable(struct vfio_pci_core_device *vdev)
@@ -1722,99 +1642,41 @@ void vfio_pci_memory_unlock_and_restore(struct vfio_pci_core_device *vdev, u16 c
up_write(&vdev->memory_lock);
}
-/* Caller holds vma_lock */
-static int __vfio_pci_add_vma(struct vfio_pci_core_device *vdev,
- struct vm_area_struct *vma)
-{
- struct vfio_pci_mmap_vma *mmap_vma;
-
- mmap_vma = kmalloc(sizeof(*mmap_vma), GFP_KERNEL_ACCOUNT);
- if (!mmap_vma)
- return -ENOMEM;
-
- mmap_vma->vma = vma;
- list_add(&mmap_vma->vma_next, &vdev->vma_list);
-
- return 0;
-}
-
-/*
- * Zap mmaps on open so that we can fault them in on access and therefore
- * our vma_list only tracks mappings accessed since last zap.
- */
-static void vfio_pci_mmap_open(struct vm_area_struct *vma)
-{
- zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start);
-}
-
-static void vfio_pci_mmap_close(struct vm_area_struct *vma)
+static unsigned long vma_to_pfn(struct vm_area_struct *vma)
{
struct vfio_pci_core_device *vdev = vma->vm_private_data;
- struct vfio_pci_mmap_vma *mmap_vma;
+ int index = vma->vm_pgoff >> (VFIO_PCI_OFFSET_SHIFT - PAGE_SHIFT);
+ u64 pgoff;
- mutex_lock(&vdev->vma_lock);
- list_for_each_entry(mmap_vma, &vdev->vma_list, vma_next) {
- if (mmap_vma->vma == vma) {
- list_del(&mmap_vma->vma_next);
- kfree(mmap_vma);
- break;
- }
- }
- mutex_unlock(&vdev->vma_lock);
+ pgoff = vma->vm_pgoff &
+ ((1U << (VFIO_PCI_OFFSET_SHIFT - PAGE_SHIFT)) - 1);
+
+ return (pci_resource_start(vdev->pdev, index) >> PAGE_SHIFT) + pgoff;
}
static vm_fault_t vfio_pci_mmap_fault(struct vm_fault *vmf)
{
struct vm_area_struct *vma = vmf->vma;
struct vfio_pci_core_device *vdev = vma->vm_private_data;
- struct vfio_pci_mmap_vma *mmap_vma;
- vm_fault_t ret = VM_FAULT_NOPAGE;
+ unsigned long pfn, pgoff = vmf->pgoff - vma->vm_pgoff;
+ vm_fault_t ret = VM_FAULT_SIGBUS;
- mutex_lock(&vdev->vma_lock);
- down_read(&vdev->memory_lock);
+ pfn = vma_to_pfn(vma);
- /*
- * Memory region cannot be accessed if the low power feature is engaged
- * or memory access is disabled.
- */
- if (vdev->pm_runtime_engaged || !__vfio_pci_memory_enabled(vdev)) {
- ret = VM_FAULT_SIGBUS;
- goto up_out;
- }
+ down_read(&vdev->memory_lock);
- /*
- * We populate the whole vma on fault, so we need to test whether
- * the vma has already been mapped, such as for concurrent faults
- * to the same vma. io_remap_pfn_range() will trigger a BUG_ON if
- * we ask it to fill the same range again.
- */
- list_for_each_entry(mmap_vma, &vdev->vma_list, vma_next) {
- if (mmap_vma->vma == vma)
- goto up_out;
- }
+ if (vdev->pm_runtime_engaged || !__vfio_pci_memory_enabled(vdev))
+ goto out_disabled;
- if (io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
- vma->vm_end - vma->vm_start,
- vma->vm_page_prot)) {
- ret = VM_FAULT_SIGBUS;
- zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start);
- goto up_out;
- }
+ ret = vmf_insert_pfn(vma, vmf->address, pfn + pgoff);
- if (__vfio_pci_add_vma(vdev, vma)) {
- ret = VM_FAULT_OOM;
- zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start);
- }
-
-up_out:
+out_disabled:
up_read(&vdev->memory_lock);
- mutex_unlock(&vdev->vma_lock);
+
return ret;
}
static const struct vm_operations_struct vfio_pci_mmap_ops = {
- .open = vfio_pci_mmap_open,
- .close = vfio_pci_mmap_close,
.fault = vfio_pci_mmap_fault,
};
@@ -1877,11 +1739,12 @@ int vfio_pci_core_mmap(struct vfio_device *core_vdev, struct vm_area_struct *vma
vma->vm_private_data = vdev;
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
- vma->vm_pgoff = (pci_resource_start(pdev, index) >> PAGE_SHIFT) + pgoff;
+ vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot);
/*
- * See remap_pfn_range(), called from vfio_pci_fault() but we can't
- * change vm_flags within the fault handler. Set them now.
+ * Set vm_flags now, they should not be changed in the fault handler.
+ * We want the same flags and page protection (decrypted above) as
+ * io_remap_pfn_range() would set.
*
* VM_ALLOW_ANY_UNCACHED: The VMA flag is implemented for ARM64,
* allowing KVM stage 2 device mapping attributes to use Normal-NC
@@ -2199,8 +2062,6 @@ int vfio_pci_core_init_dev(struct vfio_device *core_vdev)
mutex_init(&vdev->ioeventfds_lock);
INIT_LIST_HEAD(&vdev->dummy_resources_list);
INIT_LIST_HEAD(&vdev->ioeventfds_list);
- mutex_init(&vdev->vma_lock);
- INIT_LIST_HEAD(&vdev->vma_list);
INIT_LIST_HEAD(&vdev->sriov_pfs_item);
init_rwsem(&vdev->memory_lock);
xa_init(&vdev->ctx);
@@ -2216,7 +2077,6 @@ void vfio_pci_core_release_dev(struct vfio_device *core_vdev)
mutex_destroy(&vdev->igate);
mutex_destroy(&vdev->ioeventfds_lock);
- mutex_destroy(&vdev->vma_lock);
kfree(vdev->region);
kfree(vdev->pm_save);
}
@@ -2494,26 +2354,15 @@ static int vfio_pci_dev_set_pm_runtime_get(struct vfio_device_set *dev_set)
return ret;
}
-/*
- * We need to get memory_lock for each device, but devices can share mmap_lock,
- * therefore we need to zap and hold the vma_lock for each device, and only then
- * get each memory_lock.
- */
static int vfio_pci_dev_set_hot_reset(struct vfio_device_set *dev_set,
struct vfio_pci_group_info *groups,
struct iommufd_ctx *iommufd_ctx)
{
- struct vfio_pci_core_device *cur_mem;
- struct vfio_pci_core_device *cur_vma;
- struct vfio_pci_core_device *cur;
+ struct vfio_pci_core_device *vdev;
struct pci_dev *pdev;
- bool is_mem = true;
int ret;
mutex_lock(&dev_set->lock);
- cur_mem = list_first_entry(&dev_set->device_list,
- struct vfio_pci_core_device,
- vdev.dev_set_list);
pdev = vfio_pci_dev_set_resettable(dev_set);
if (!pdev) {
@@ -2530,7 +2379,7 @@ static int vfio_pci_dev_set_hot_reset(struct vfio_device_set *dev_set,
if (ret)
goto err_unlock;
- list_for_each_entry(cur_vma, &dev_set->device_list, vdev.dev_set_list) {
+ list_for_each_entry(vdev, &dev_set->device_list, vdev.dev_set_list) {
bool owned;
/*
@@ -2554,38 +2403,38 @@ static int vfio_pci_dev_set_hot_reset(struct vfio_device_set *dev_set,
* Otherwise, reset is not allowed.
*/
if (iommufd_ctx) {
- int devid = vfio_iommufd_get_dev_id(&cur_vma->vdev,
+ int devid = vfio_iommufd_get_dev_id(&vdev->vdev,
iommufd_ctx);
owned = (devid > 0 || devid == -ENOENT);
} else {
- owned = vfio_dev_in_groups(&cur_vma->vdev, groups);
+ owned = vfio_dev_in_groups(&vdev->vdev, groups);
}
if (!owned) {
ret = -EINVAL;
- goto err_undo;
+ break;
}
/*
- * Locking multiple devices is prone to deadlock, runaway and
- * unwind if we hit contention.
+ * Take the memory write lock for each device and zap BAR
+ * mappings to prevent the user accessing the device while in
+ * reset. Locking multiple devices is prone to deadlock,
+ * runaway and unwind if we hit contention.
*/
- if (!vfio_pci_zap_and_vma_lock(cur_vma, true)) {
+ if (!down_write_trylock(&vdev->memory_lock)) {
ret = -EBUSY;
- goto err_undo;
+ break;
}
+
+ vfio_pci_zap_bars(vdev);
}
- cur_vma = NULL;
- list_for_each_entry(cur_mem, &dev_set->device_list, vdev.dev_set_list) {
- if (!down_write_trylock(&cur_mem->memory_lock)) {
- ret = -EBUSY;
- goto err_undo;
- }
- mutex_unlock(&cur_mem->vma_lock);
+ if (!list_entry_is_head(vdev,
+ &dev_set->device_list, vdev.dev_set_list)) {
+ vdev = list_prev_entry(vdev, vdev.dev_set_list);
+ goto err_undo;
}
- cur_mem = NULL;
/*
* The pci_reset_bus() will reset all the devices in the bus.
@@ -2596,25 +2445,22 @@ static int vfio_pci_dev_set_hot_reset(struct vfio_device_set *dev_set,
* cause the PCI config space reset without restoring the original
* state (saved locally in 'vdev->pm_save').
*/
- list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list)
- vfio_pci_set_power_state(cur, PCI_D0);
+ list_for_each_entry(vdev, &dev_set->device_list, vdev.dev_set_list)
+ vfio_pci_set_power_state(vdev, PCI_D0);
ret = pci_reset_bus(pdev);
+ vdev = list_last_entry(&dev_set->device_list,
+ struct vfio_pci_core_device, vdev.dev_set_list);
+
err_undo:
- list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list) {
- if (cur == cur_mem)
- is_mem = false;
- if (cur == cur_vma)
- break;
- if (is_mem)
- up_write(&cur->memory_lock);
- else
- mutex_unlock(&cur->vma_lock);
- }
+ list_for_each_entry_from_reverse(vdev, &dev_set->device_list,
+ vdev.dev_set_list)
+ up_write(&vdev->memory_lock);
+
+ list_for_each_entry(vdev, &dev_set->device_list, vdev.dev_set_list)
+ pm_runtime_put(&vdev->pdev->dev);
- list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list)
- pm_runtime_put(&cur->pdev->dev);
err_unlock:
mutex_unlock(&dev_set->lock);
return ret;
diff --git a/include/linux/vfio_pci_core.h b/include/linux/vfio_pci_core.h
index a2c8b8bba7119..f87067438ed48 100644
--- a/include/linux/vfio_pci_core.h
+++ b/include/linux/vfio_pci_core.h
@@ -93,8 +93,6 @@ struct vfio_pci_core_device {
struct list_head sriov_pfs_item;
struct vfio_pci_core_device *sriov_pf_core_dev;
struct notifier_block nb;
- struct mutex vma_lock;
- struct list_head vma_list;
struct rw_semaphore memory_lock;
};
--
2.43.0
next prev parent reply other threads:[~2024-07-23 18:39 UTC|newest]
Thread overview: 177+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-23 18:22 [PATCH 6.9 000/163] 6.9.11-rc1 review Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 001/163] cifs: fix noisy message on copy_file_range Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 002/163] scsi: core: alua: I/O errors for ALUA state transitions Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 003/163] scsi: sr: Fix unintentional arithmetic wraparound Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 004/163] scsi: qedf: Dont process stag work during unload and recovery Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 005/163] scsi: qedf: Wait for stag work during unload Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 006/163] scsi: qedf: Set qed_slowpath_params to zero before use Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 007/163] efi/libstub: zboot.lds: Discard .discard sections Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 008/163] ACPI: EC: Abort address space access upon error Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 009/163] ACPI: EC: Avoid returning AE_OK on errors in address space handler Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 010/163] btrfs: ensure fast fsync waits for ordered extents after a write failure Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 011/163] tools/power/cpupower: Fix Pstate frequency reporting on AMD Family 1Ah CPUs Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 012/163] PNP: Hide pnp_bus_type from the non-PNP code Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 013/163] ACPI: AC: Properly notify powermanagement core about changes Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 014/163] wifi: mac80211: mesh: init nonpeer_pm to active by default in mesh sdata Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 015/163] wifi: mac80211: apply mcast rate only if interface is up Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 016/163] wifi: mac80211: handle tasklet frames before stopping Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 017/163] wifi: cfg80211: fix 6 GHz scan request building Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 018/163] wifi: iwlwifi: mvm: d3: fix WoWLAN command version lookup Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 019/163] wifi: iwlwifi: mvm: remove stale STA link data during restart Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 020/163] wifi: iwlwifi: mvm: Handle BIGTK cipher in kek_kck cmd Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 021/163] wifi: iwlwifi: mvm: handle BA session teardown in RF-kill Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 022/163] wifi: iwlwifi: mvm: properly set 6 GHz channel direct probe option Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 023/163] wifi: iwlwifi: mvm: Fix scan abort handling with HW rfkill Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 024/163] wifi: mac80211: fix UBSAN noise in ieee80211_prep_hw_scan() Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 025/163] selftests: cachestat: Fix build warnings on ppc64 Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 026/163] selftests/openat2: " Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 027/163] selftests/overlayfs: Fix build error " Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 028/163] selftests/futex: pass _GNU_SOURCE without a value to the compiler Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 029/163] of/irq: Factor out parsing of interrupt-map parent phandle+args from of_irq_parse_raw() Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 030/163] nvme-fabrics: use reserved tag for reg read/write command Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 031/163] LoongArch: Fix GMACs phy-mode definitions in dts Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 032/163] Input: silead - Always support 10 fingers Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 033/163] platform/x86/amd/hsmp: Check HSMP support on AMD family of processors Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 034/163] net: ipv6: rpl_iptunnel: block BH in rpl_output() and rpl_input() Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 035/163] ila: block BH in ila_output() Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 036/163] io_uring: fix possible deadlock in io_register_iowq_max_workers() Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 037/163] arm64: armv8_deprecated: Fix warning in isndep cpuhp starting process Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 038/163] drm/amdgpu/pptable: Fix UBSAN array-index-out-of-bounds Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 039/163] null_blk: fix validation of block size Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 040/163] kconfig: gconf: give a proper initial state to the Save button Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 041/163] kconfig: remove wrong expr_trans_bool() Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 042/163] input: Add event code for accessibility key Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 043/163] input: Add support for "Do Not Disturb" Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 044/163] HID: Ignore battery for ELAN touchscreens 2F2C and 4116 Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 045/163] NFSv4: Fix memory leak in nfs4_set_security_label Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 046/163] nfs: propagate readlink errors in nfs_symlink_filler Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 047/163] nfs: Avoid flushing many pages with NFS_FILE_SYNC Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 048/163] nfs: dont invalidate dentries on transient errors Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 049/163] cachefiles: add consistency check for copen/cread Greg Kroah-Hartman
2024-07-23 18:22 ` [PATCH 6.9 050/163] cachefiles: Set object to close if ondemand_id < 0 in copen Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 051/163] cachefiles: make on-demand read killable Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 052/163] fs/file: fix the check in find_next_fd() Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 053/163] vfio: Create vfio_fs_type with inode per device Greg Kroah-Hartman
2024-07-23 18:23 ` Greg Kroah-Hartman [this message]
2024-07-23 18:23 ` [PATCH 6.9 055/163] mei: demote client disconnect warning on suspend to debug Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 056/163] parport: amiga: Mark driver struct with __refdata to prevent section mismatch Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 057/163] iomap: Fix iomap_adjust_read_range for plen calculation Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 058/163] drm/exynos: dp: drop driver owner initialization Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 059/163] drm: panel-orientation-quirks: Add quirk for Aya Neo KUN Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 060/163] drm: renesas: shmobile: Call drm_atomic_helper_shutdown() at shutdown time Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 061/163] drm/mediatek: " Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 062/163] nvme: avoid double free special payload Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 063/163] nvmet: always initialize cqe.result Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 064/163] vfio/pci: Insert full vma on mmapd MMIO fault Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 065/163] loop: Disable fallocate() zero and discard if not supported Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 066/163] ALSA: hda: cs35l56: Fix lifecycle of codec pointer Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 067/163] wifi: cfg80211: wext: add extra SIOCSIWSCAN data check Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 068/163] ALSA: hda: cs35l41: Support Lenovo Thinkbook 16P Gen 5 Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 069/163] ALSA: hda: cs35l41: Support Lenovo Thinkbook 13x Gen 4 Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 070/163] ALSA: hda/realtek: Support Lenovo Thinkbook 16P Gen 5 Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 071/163] ALSA: hda/realtek: Support Lenovo Thinkbook 13x Gen 4 Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 072/163] wifi: mac80211: Avoid address calculations via out of bounds array indexing Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 073/163] KVM: PPC: Book3S HV: Prevent UAF in kvm_spapr_tce_attach_iommu_group() Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 074/163] drm/vmwgfx: Fix missing HYPERVISOR_GUEST dependency Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 075/163] ALSA: hda/realtek: Add more codec ID to no shutup pins list Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 076/163] spi: Fix OCTAL mode support Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 077/163] cpumask: limit FORCE_NR_CPUS to just the UP case Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 078/163] selftests: openvswitch: Set value to nla flags Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 079/163] drm/amdgpu: Indicate CU havest info to CP Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 080/163] drm/amd/display: Change dram_clock_latency to 34us for dcn351 Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 081/163] drm/amd/display: change dram_clock_latency to 34us for dcn35 Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 082/163] drm/amdgpu: init TA fw for psp v14 Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 083/163] ALSA: hda: cs35l56: Select SERIAL_MULTI_INSTANTIATE Greg Kroah-Hartman
2024-07-24 9:35 ` Simon Trimmer
2024-07-24 13:48 ` 'Greg Kroah-Hartman'
2024-07-24 15:57 ` Simon Trimmer
2024-07-23 18:23 ` [PATCH 6.9 084/163] mips: fix compat_sys_lseek syscall Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 085/163] closures: Change BUG_ON() to WARN_ON() Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 086/163] workqueue: Refactor worker ID formatting and make wq_worker_comm() use full ID string Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 087/163] Input: elantech - fix touchpad state on resume for Lenovo N24 Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 088/163] Input: i8042 - add Ayaneo Kun to i8042 quirk table Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 089/163] ASoC: rt722-sdca-sdw: add silence detection register as volatile Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 090/163] ASoC: codecs: ES8326: Solve headphone detection issue Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 091/163] Input: xpad - add support for ASUS ROG RAIKIRI PRO Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 092/163] ASoC: topology: Fix references to freed memory Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 093/163] ASoC: Intel: avs: Fix route override Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 094/163] ASoC: topology: Do not assign fields that are already set Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 095/163] bytcr_rt5640 : inverse jack detect for Archos 101 cesium Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 096/163] ALSA: dmaengine: Synchronize dma channel after drop() Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 097/163] ASoC: ti: davinci-mcasp: Set min period size using FIFO config Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 098/163] ASoC: ti: omap-hdmi: Fix too long driver name Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 099/163] ASoC: SOF: sof-audio: Skip unprepare for in-use widgets on error rollback Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 100/163] ASoC: rt722-sdca-sdw: add debounce time for type detection Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 101/163] ASoC: cs35l56: Disconnect ASP1 TX sources when ASP1 DAI is hooked up Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 102/163] nvme: fix NVME_NS_DEAC may incorrectly identifying the disk as EXT_LBA Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 103/163] Input: ads7846 - use spi_device_id table Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 104/163] can: kvaser_usb: fix return value for hif_usb_send_regout Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 105/163] net: mvpp2: fill-in dev_port attribute Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 106/163] gpio: pca953x: fix pca953x_irq_bus_sync_unlock race Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 107/163] octeontx2-pf: Fix coverity and klockwork issues in octeon PF driver Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 108/163] s390/sclp: Fix sclp_init() cleanup on failure Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 109/163] platform/mellanox: nvsw-sn2201: Add check for platform_device_add_resources Greg Kroah-Hartman
2024-07-23 18:23 ` [PATCH 6.9 110/163] platform/x86: wireless-hotkey: Add support for LG Airplane Button Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 111/163] platform/x86: lg-laptop: Remove LGEX0815 hotkey handling Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 112/163] platform/x86: lg-laptop: Change ACPI device id Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 113/163] platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 114/163] btrfs: scrub: handle RST lookup error correctly Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 115/163] btrfs: qgroup: fix quota root leak after quota disable failure Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 116/163] ibmvnic: Add tx check to prevent skb leak Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 117/163] ALSA: PCM: Allow resume only for suspended streams Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 118/163] ALSA: hda/relatek: Enable Mute LED on HP Laptop 15-gw0xxx Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 119/163] ALSA: dmaengine_pcm: terminate dmaengine before synchronize Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 120/163] drm/amd/swsmu: add MALL init support workaround for smu_v14_0_1 Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 121/163] ASoC: amd: yc: Fix non-functional mic on ASUS M5602RA Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 122/163] net: usb: qmi_wwan: add Telit FN912 compositions Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 123/163] clk: qcom: apss-ipq-pll: remove config_ctl_hi_val from Stromer pll configs Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 124/163] net: mac802154: Fix racy device stats updates by DEV_STATS_INC() and DEV_STATS_ADD() Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 125/163] powerpc/pseries: Whitelist dtl slub object for copying to userspace Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 126/163] powerpc/eeh: avoid possible crash when edev->pdev changes Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 127/163] scsi: libsas: Fix exp-attached device scan after probe failure scanned in again after probe failed Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 128/163] tee: optee: ffa: Fix missing-field-initializers warning Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 129/163] Bluetooth: hci_core: cancel all works upon hci_unregister_dev() Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 130/163] Bluetooth: btnxpuart: Enable Power Save feature on startup Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 131/163] bluetooth/l2cap: sync sock recv cb and release Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 132/163] erofs: ensure m_llen is reset to 0 if metadata is invalid Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 133/163] drm/amd/display: Add refresh rate range check Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 134/163] drm/amd/display: Account for cursor prefetch BW in DML1 mode support Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 135/163] drm/amd/display: Fix refresh rate range for some panel Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 136/163] drm/amd/display: Update efficiency bandwidth for dcn351 Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 137/163] drm/amd/display: Fix array-index-out-of-bounds in dml2/FCLKChangeSupport Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 138/163] drm/radeon: check bo_va->bo is non-NULL before using it Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 139/163] btrfs: fix uninitialized return value in the ref-verify tool Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 140/163] fs: better handle deep ancestor chains in is_subdir() Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 141/163] wifi: iwlwifi: properly set WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 142/163] drivers/perf: riscv: Reset the counter to hpmevent mapping while starting cpus Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 143/163] riscv: stacktrace: fix usage of ftrace_graph_ret_addr() Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 144/163] spi: imx: Dont expect DMA for i.MX{25,35,50,51,53} cspi devices Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 145/163] spi: davinci: Unset POWERDOWN bit when releasing resources Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 146/163] ksmbd: return FILE_DEVICE_DISK instead of super magic Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 147/163] ASoC: SOF: Intel: hda-pcm: Limit the maximum number of periods by MAX_BDL_ENTRIES Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 148/163] selftest/timerns: fix clang build failures for abs() calls Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 149/163] selftests/vDSO: fix clang build errors and warnings Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 150/163] hfsplus: fix uninit-value in copy_name Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 151/163] selftests/bpf: Extend tcx tests to cover late tcx_entry release Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 152/163] spi: mux: set ctlr->bits_per_word_mask Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 153/163] ALSA: hda: Use imply for suggesting CONFIG_SERIAL_MULTI_INSTANTIATE Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 154/163] mm: page_ref: remove folio_try_get_rcu() Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 155/163] Bluetooth: L2CAP: Fix deadlock Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 156/163] ALSA: hda: cs35l41: Fix swapped l/r audio channels for Lenovo ThinBook 13x Gen4 Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 157/163] of/irq: Disable "interrupt-map" parsing for PASEMI Nemo Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 158/163] wifi: cfg80211: wext: set ssids=NULL for passive scans Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 159/163] wifi: mac80211: disable softirqs for queued frame handling Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 160/163] wifi: iwlwifi: mvm: dont wake up rx_sync_waitq upon RFKILL Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 161/163] netfs, fscache: export fscache_put_volume() and add fscache_try_get_volume() Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 162/163] cachefiles: fix slab-use-after-free in fscache_withdraw_volume() Greg Kroah-Hartman
2024-07-23 18:24 ` [PATCH 6.9 163/163] cachefiles: fix slab-use-after-free in cachefiles_withdraw_cookie() Greg Kroah-Hartman
2024-07-23 21:30 ` [PATCH 6.9 000/163] 6.9.11-rc1 review Florian Fainelli
2024-07-24 6:01 ` Pavel Machek
2024-07-24 7:35 ` Jon Hunter
2024-07-24 11:11 ` Conor Dooley
2024-07-24 11:13 ` Mark Brown
2024-07-24 13:50 ` Peter Schneider
2024-07-24 15:15 ` Shuah Khan
2024-07-24 16:43 ` Justin Forbes
2024-07-24 17:08 ` Naresh Kamboju
2024-07-25 5:17 ` Ron Economos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240723180145.562046373@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=alex.williamson@redhat.com \
--cc=jgg@nvidia.com \
--cc=kevin.tian@intel.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).