+++ /dev/null
-From 4be1996a4a9494744cb506b8563e3a8ba3961312 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 31 Oct 2024 13:54:23 +0100
-Subject: clocksource/drivers/timer-ti-dm: Fix child node refcount handling
-
-From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
-
-[ Upstream commit e5cfc0989d9a2849c51c720a16b90b2c061a1aeb ]
-
-of_find_compatible_node() increments the node's refcount, and it must be
-decremented again with a call to of_node_put() when the pointer is no
-longer required to avoid leaking the resource.
-
-Instead of adding the missing calls to of_node_put() in all execution
-paths, use the cleanup attribute for 'arm_timer' by means of the
-__free() macro, which automatically calls of_node_put() when the
-variable goes out of scope.
-
-Fixes: 25de4ce5ed02 ("clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940")
-Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
-Link: https://lore.kernel.org/r/20241031-timer-ti-dm-systimer-of_node_put-v3-1-063ee822b73a@gmail.com
-Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/clocksource/timer-ti-dm-systimer.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/clocksource/timer-ti-dm-systimer.c b/drivers/clocksource/timer-ti-dm-systimer.c
-index 632523c1232f6..734920e8c5759 100644
---- a/drivers/clocksource/timer-ti-dm-systimer.c
-+++ b/drivers/clocksource/timer-ti-dm-systimer.c
-@@ -688,9 +688,9 @@ subsys_initcall(dmtimer_percpu_timer_startup);
-
- static int __init dmtimer_percpu_quirk_init(struct device_node *np, u32 pa)
- {
-- struct device_node *arm_timer;
-+ struct device_node *arm_timer __free(device_node) =
-+ of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
-
-- arm_timer = of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
- if (of_device_is_available(arm_timer)) {
- pr_warn_once("ARM architected timer wrap issue i940 detected\n");
- return 0;
---
-2.43.0
-
+++ /dev/null
-From e9649129d33dca561305fc590a7c4ba8c3e5675a Mon Sep 17 00:00:00 2001
-From: Kunkun Jiang <jiangkunkun@huawei.com>
-Date: Thu, 7 Nov 2024 13:41:36 -0800
-Subject: KVM: arm64: vgic-its: Clear DTE when MAPD unmaps a device
-
-From: Kunkun Jiang <jiangkunkun@huawei.com>
-
-commit e9649129d33dca561305fc590a7c4ba8c3e5675a upstream.
-
-vgic_its_save_device_tables will traverse its->device_list to
-save DTE for each device. vgic_its_restore_device_tables will
-traverse each entry of device table and check if it is valid.
-Restore if valid.
-
-But when MAPD unmaps a device, it does not invalidate the
-corresponding DTE. In the scenario of continuous saves
-and restores, there may be a situation where a device's DTE
-is not saved but is restored. This is unreasonable and may
-cause restore to fail. This patch clears the corresponding
-DTE when MAPD unmaps a device.
-
-Cc: stable@vger.kernel.org
-Fixes: 57a9a117154c ("KVM: arm64: vgic-its: Device table save/restore")
-Co-developed-by: Shusen Li <lishusen2@huawei.com>
-Signed-off-by: Shusen Li <lishusen2@huawei.com>
-Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com>
-[Jing: Update with entry write helper]
-Signed-off-by: Jing Zhang <jingzhangos@google.com>
-Link: https://lore.kernel.org/r/20241107214137.428439-5-jingzhangos@google.com
-Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/arm64/kvm/vgic/vgic-its.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/kvm/vgic/vgic-its.c
-+++ b/arch/arm64/kvm/vgic/vgic-its.c
-@@ -1186,9 +1186,11 @@ static int vgic_its_cmd_handle_mapd(stru
- bool valid = its_cmd_get_validbit(its_cmd);
- u8 num_eventid_bits = its_cmd_get_size(its_cmd);
- gpa_t itt_addr = its_cmd_get_ittaddr(its_cmd);
-+ int dte_esz = vgic_its_get_abi(its)->dte_esz;
- struct its_device *device;
-+ gpa_t gpa;
-
-- if (!vgic_its_check_id(its, its->baser_device_table, device_id, NULL))
-+ if (!vgic_its_check_id(its, its->baser_device_table, device_id, &gpa))
- return E_ITS_MAPD_DEVICE_OOR;
-
- if (valid && num_eventid_bits > VITS_TYPER_IDBITS)
-@@ -1209,7 +1211,7 @@ static int vgic_its_cmd_handle_mapd(stru
- * is an error, so we are done in any case.
- */
- if (!valid)
-- return 0;
-+ return vgic_its_write_entry_lock(its, gpa, 0, dte_esz);
-
- device = vgic_its_alloc_device(its, device_id, itt_addr,
- num_eventid_bits);
kcsan-seqlock-fix-incorrect-assumption-in-read_seqbe.patch
clkdev-remove-config_clkdev_lookup.patch
clocksource-drivers-sp804-make-user-selectable.patch
-clocksource-drivers-timer-ti-dm-fix-child-node-refco.patch
spi-spi-fsl-lpspi-downgrade-log-level-for-pio-mode.patch
spi-spi-fsl-lpspi-use-irqf_no_autoen-flag-in-request.patch
soc-ti-smartreflex-use-irqf_no_autoen-flag-in-reques.patch
crypto-x86-aegis128-access-32-bit-arguments-as-32-bit.patch
kvm-arm64-ignore-pmcntenset_el0-while-checking-for-overflow-status.patch
kvm-arm64-vgic-its-clear-ite-when-discard-frees-an-ite.patch
-kvm-arm64-vgic-its-clear-dte-when-mapd-unmaps-a-device.patch
pci-fix-use-after-free-of-slot-bus-on-hot-remove.patch
fsnotify-fix-sending-inotify-event-with-unexpected-filename.patch
comedi-flush-partial-mappings-in-error-case.patch
+++ /dev/null
-From 13e9e6ffa1f36077018e0f5d7913381689ce4e9c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 31 Oct 2024 13:54:23 +0100
-Subject: clocksource/drivers/timer-ti-dm: Fix child node refcount handling
-
-From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
-
-[ Upstream commit e5cfc0989d9a2849c51c720a16b90b2c061a1aeb ]
-
-of_find_compatible_node() increments the node's refcount, and it must be
-decremented again with a call to of_node_put() when the pointer is no
-longer required to avoid leaking the resource.
-
-Instead of adding the missing calls to of_node_put() in all execution
-paths, use the cleanup attribute for 'arm_timer' by means of the
-__free() macro, which automatically calls of_node_put() when the
-variable goes out of scope.
-
-Fixes: 25de4ce5ed02 ("clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940")
-Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
-Link: https://lore.kernel.org/r/20241031-timer-ti-dm-systimer-of_node_put-v3-1-063ee822b73a@gmail.com
-Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/clocksource/timer-ti-dm-systimer.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/clocksource/timer-ti-dm-systimer.c b/drivers/clocksource/timer-ti-dm-systimer.c
-index 632523c1232f6..734920e8c5759 100644
---- a/drivers/clocksource/timer-ti-dm-systimer.c
-+++ b/drivers/clocksource/timer-ti-dm-systimer.c
-@@ -688,9 +688,9 @@ subsys_initcall(dmtimer_percpu_timer_startup);
-
- static int __init dmtimer_percpu_quirk_init(struct device_node *np, u32 pa)
- {
-- struct device_node *arm_timer;
-+ struct device_node *arm_timer __free(device_node) =
-+ of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
-
-- arm_timer = of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
- if (of_device_is_available(arm_timer)) {
- pr_warn_once("ARM architected timer wrap issue i940 detected\n");
- return 0;
---
-2.43.0
-
+++ /dev/null
-From e9649129d33dca561305fc590a7c4ba8c3e5675a Mon Sep 17 00:00:00 2001
-From: Kunkun Jiang <jiangkunkun@huawei.com>
-Date: Thu, 7 Nov 2024 13:41:36 -0800
-Subject: KVM: arm64: vgic-its: Clear DTE when MAPD unmaps a device
-
-From: Kunkun Jiang <jiangkunkun@huawei.com>
-
-commit e9649129d33dca561305fc590a7c4ba8c3e5675a upstream.
-
-vgic_its_save_device_tables will traverse its->device_list to
-save DTE for each device. vgic_its_restore_device_tables will
-traverse each entry of device table and check if it is valid.
-Restore if valid.
-
-But when MAPD unmaps a device, it does not invalidate the
-corresponding DTE. In the scenario of continuous saves
-and restores, there may be a situation where a device's DTE
-is not saved but is restored. This is unreasonable and may
-cause restore to fail. This patch clears the corresponding
-DTE when MAPD unmaps a device.
-
-Cc: stable@vger.kernel.org
-Fixes: 57a9a117154c ("KVM: arm64: vgic-its: Device table save/restore")
-Co-developed-by: Shusen Li <lishusen2@huawei.com>
-Signed-off-by: Shusen Li <lishusen2@huawei.com>
-Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com>
-[Jing: Update with entry write helper]
-Signed-off-by: Jing Zhang <jingzhangos@google.com>
-Link: https://lore.kernel.org/r/20241107214137.428439-5-jingzhangos@google.com
-Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/arm64/kvm/vgic/vgic-its.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/kvm/vgic/vgic-its.c
-+++ b/arch/arm64/kvm/vgic/vgic-its.c
-@@ -1186,9 +1186,11 @@ static int vgic_its_cmd_handle_mapd(stru
- bool valid = its_cmd_get_validbit(its_cmd);
- u8 num_eventid_bits = its_cmd_get_size(its_cmd);
- gpa_t itt_addr = its_cmd_get_ittaddr(its_cmd);
-+ int dte_esz = vgic_its_get_abi(its)->dte_esz;
- struct its_device *device;
-+ gpa_t gpa;
-
-- if (!vgic_its_check_id(its, its->baser_device_table, device_id, NULL))
-+ if (!vgic_its_check_id(its, its->baser_device_table, device_id, &gpa))
- return E_ITS_MAPD_DEVICE_OOR;
-
- if (valid && num_eventid_bits > VITS_TYPER_IDBITS)
-@@ -1209,7 +1211,7 @@ static int vgic_its_cmd_handle_mapd(stru
- * is an error, so we are done in any case.
- */
- if (!valid)
-- return 0;
-+ return vgic_its_write_entry_lock(its, gpa, 0, dte_esz);
-
- device = vgic_its_alloc_device(its, device_id, itt_addr,
- num_eventid_bits);
kcsan-seqlock-support-seqcount_latch_t.patch
kcsan-seqlock-fix-incorrect-assumption-in-read_seqbe.patch
clocksource-drivers-sp804-make-user-selectable.patch
-clocksource-drivers-timer-ti-dm-fix-child-node-refco.patch
spi-spi-fsl-lpspi-downgrade-log-level-for-pio-mode.patch
spi-spi-fsl-lpspi-use-irqf_no_autoen-flag-in-request.patch
soc-ti-smartreflex-use-irqf_no_autoen-flag-in-reques.patch
powerpc-pseries-fix-kvm-guest-detection-for-disabling-hardlockup-detector.patch
kvm-arm64-ignore-pmcntenset_el0-while-checking-for-overflow-status.patch
kvm-arm64-vgic-its-clear-ite-when-discard-frees-an-ite.patch
-kvm-arm64-vgic-its-clear-dte-when-mapd-unmaps-a-device.patch
pci-fix-use-after-free-of-slot-bus-on-hot-remove.patch
fsnotify-fix-sending-inotify-event-with-unexpected-filename.patch
comedi-flush-partial-mappings-in-error-case.patch
+++ /dev/null
-From e9649129d33dca561305fc590a7c4ba8c3e5675a Mon Sep 17 00:00:00 2001
-From: Kunkun Jiang <jiangkunkun@huawei.com>
-Date: Thu, 7 Nov 2024 13:41:36 -0800
-Subject: KVM: arm64: vgic-its: Clear DTE when MAPD unmaps a device
-
-From: Kunkun Jiang <jiangkunkun@huawei.com>
-
-commit e9649129d33dca561305fc590a7c4ba8c3e5675a upstream.
-
-vgic_its_save_device_tables will traverse its->device_list to
-save DTE for each device. vgic_its_restore_device_tables will
-traverse each entry of device table and check if it is valid.
-Restore if valid.
-
-But when MAPD unmaps a device, it does not invalidate the
-corresponding DTE. In the scenario of continuous saves
-and restores, there may be a situation where a device's DTE
-is not saved but is restored. This is unreasonable and may
-cause restore to fail. This patch clears the corresponding
-DTE when MAPD unmaps a device.
-
-Cc: stable@vger.kernel.org
-Fixes: 57a9a117154c ("KVM: arm64: vgic-its: Device table save/restore")
-Co-developed-by: Shusen Li <lishusen2@huawei.com>
-Signed-off-by: Shusen Li <lishusen2@huawei.com>
-Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com>
-[Jing: Update with entry write helper]
-Signed-off-by: Jing Zhang <jingzhangos@google.com>
-Link: https://lore.kernel.org/r/20241107214137.428439-5-jingzhangos@google.com
-Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/arm64/kvm/vgic/vgic-its.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/kvm/vgic/vgic-its.c
-+++ b/arch/arm64/kvm/vgic/vgic-its.c
-@@ -1215,9 +1215,11 @@ static int vgic_its_cmd_handle_mapd(stru
- bool valid = its_cmd_get_validbit(its_cmd);
- u8 num_eventid_bits = its_cmd_get_size(its_cmd);
- gpa_t itt_addr = its_cmd_get_ittaddr(its_cmd);
-+ int dte_esz = vgic_its_get_abi(its)->dte_esz;
- struct its_device *device;
-+ gpa_t gpa;
-
-- if (!vgic_its_check_id(its, its->baser_device_table, device_id, NULL))
-+ if (!vgic_its_check_id(its, its->baser_device_table, device_id, &gpa))
- return E_ITS_MAPD_DEVICE_OOR;
-
- if (valid && num_eventid_bits > VITS_TYPER_IDBITS)
-@@ -1238,7 +1240,7 @@ static int vgic_its_cmd_handle_mapd(stru
- * is an error, so we are done in any case.
- */
- if (!valid)
-- return 0;
-+ return vgic_its_write_entry_lock(its, gpa, 0, dte_esz);
-
- device = vgic_its_alloc_device(its, device_id, itt_addr,
- num_eventid_bits);
kvm-arm64-vgic-v3-sanitise-guest-writes-to-gicr_invlpir.patch
kvm-arm64-ignore-pmcntenset_el0-while-checking-for-overflow-status.patch
kvm-arm64-vgic-its-clear-ite-when-discard-frees-an-ite.patch
-kvm-arm64-vgic-its-clear-dte-when-mapd-unmaps-a-device.patch
pci-fix-use-after-free-of-slot-bus-on-hot-remove.patch
fsnotify-fix-sending-inotify-event-with-unexpected-filename.patch
comedi-flush-partial-mappings-in-error-case.patch