]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop a bunch of patches that broke stuff or was asked to be dropped as part of review
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 9 Jun 2024 11:15:42 +0000 (13:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 9 Jun 2024 11:15:42 +0000 (13:15 +0200)
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
26 files changed:
queue-5.10/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch [deleted file]
queue-5.10/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch [deleted file]
queue-5.10/series
queue-5.15/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch [deleted file]
queue-5.15/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch [deleted file]
queue-5.15/series
queue-5.4/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch [deleted file]
queue-5.4/series
queue-6.1/nilfs2-make-superblock-data-array-index-computation-.patch [deleted file]
queue-6.1/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch [deleted file]
queue-6.1/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch [deleted file]
queue-6.1/series
queue-6.6/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch [deleted file]
queue-6.6/fs-move-kiocb_start_write-into-vfs_iocb_iter_write.patch [deleted file]
queue-6.6/nilfs2-make-superblock-data-array-index-computation-.patch [deleted file]
queue-6.6/ovl-add-helper-ovl_file_modified.patch [deleted file]
queue-6.6/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch [deleted file]
queue-6.6/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch [deleted file]
queue-6.6/remove-call_-read-write-_iter-functions.patch [deleted file]
queue-6.6/series
queue-6.6/splice-remove-permission-hook-from-iter_file_splice_.patch [deleted file]
queue-6.9/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch [deleted file]
queue-6.9/nilfs2-make-superblock-data-array-index-computation-.patch [deleted file]
queue-6.9/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch [deleted file]
queue-6.9/remove-call_-read-write-_iter-functions.patch [deleted file]
queue-6.9/series

diff --git a/queue-5.10/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch b/queue-5.10/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
deleted file mode 100644 (file)
index 3ad8515..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-From 6f4e7901c3ed3c0bd3da7af5854dbb765fad2e00 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 2 Apr 2024 16:30:57 +0200
-Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key
- events
-
-From: Armin Wolf <W_Armin@gmx.de>
-
-[ Upstream commit 290680c2da8061e410bcaec4b21584ed951479af ]
-
-Multiple WMI events can be received concurrently, so multiple instances
-of xiaomi_wmi_notify() can be active at the same time. Since the input
-device is shared between those handlers, the key input sequence can be
-disturbed.
-
-Fix this by protecting the key input sequence with a mutex.
-
-Compile-tested only.
-
-Fixes: edb73f4f0247 ("platform/x86: wmi: add Xiaomi WMI key driver")
-Signed-off-by: Armin Wolf <W_Armin@gmx.de>
-Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de
-Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/xiaomi-wmi.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/platform/x86/xiaomi-wmi.c b/drivers/platform/x86/xiaomi-wmi.c
-index 54a2546bb93bf..be80f0bda9484 100644
---- a/drivers/platform/x86/xiaomi-wmi.c
-+++ b/drivers/platform/x86/xiaomi-wmi.c
-@@ -2,8 +2,10 @@
- /* WMI driver for Xiaomi Laptops */
- #include <linux/acpi.h>
-+#include <linux/device.h>
- #include <linux/input.h>
- #include <linux/module.h>
-+#include <linux/mutex.h>
- #include <linux/wmi.h>
- #include <uapi/linux/input-event-codes.h>
-@@ -20,12 +22,21 @@
- struct xiaomi_wmi {
-       struct input_dev *input_dev;
-+      struct mutex key_lock;  /* Protects the key event sequence */
-       unsigned int key_code;
- };
-+static void xiaomi_mutex_destroy(void *data)
-+{
-+      struct mutex *lock = data;
-+
-+      mutex_destroy(lock);
-+}
-+
- static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
- {
-       struct xiaomi_wmi *data;
-+      int ret;
-       if (wdev == NULL || context == NULL)
-               return -EINVAL;
-@@ -35,6 +46,11 @@ static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
-               return -ENOMEM;
-       dev_set_drvdata(&wdev->dev, data);
-+      mutex_init(&data->key_lock);
-+      ret = devm_add_action_or_reset(&wdev->dev, xiaomi_mutex_destroy, &data->key_lock);
-+      if (ret < 0)
-+              return ret;
-+
-       data->input_dev = devm_input_allocate_device(&wdev->dev);
-       if (data->input_dev == NULL)
-               return -ENOMEM;
-@@ -59,10 +75,12 @@ static void xiaomi_wmi_notify(struct wmi_device *wdev, union acpi_object *dummy)
-       if (data == NULL)
-               return;
-+      mutex_lock(&data->key_lock);
-       input_report_key(data->input_dev, data->key_code, 1);
-       input_sync(data->input_dev);
-       input_report_key(data->input_dev, data->key_code, 0);
-       input_sync(data->input_dev);
-+      mutex_unlock(&data->key_lock);
- }
- static const struct wmi_device_id xiaomi_wmi_id_table[] = {
--- 
-2.43.0
-
diff --git a/queue-5.10/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch b/queue-5.10/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
deleted file mode 100644 (file)
index a4fa64c..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From aef23da48335eb44fe56060767d2bbf789ab6feb Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 29 May 2024 22:30:29 +1000
-Subject: powerpc/uaccess: Use YZ asm constraint for ld
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-[ Upstream commit 50934945d54238d2d6d8db4b7c1d4c90d2696c57 ]
-
-The 'ld' instruction requires a 4-byte aligned displacement because it
-is a DS-form instruction. But the "m" asm constraint doesn't enforce
-that.
-
-Add a special case of __get_user_asm2_goto() so that the "YZ" constraint
-can be used for "ld".
-
-The "Z" constraint is documented in the GCC manual PowerPC machine
-constraints, and specifies a "memory operand accessed with indexed or
-indirect addressing". "Y" is not documented in the manual but specifies
-a "memory operand for a DS-form instruction". Using both allows the
-compiler to generate a DS-form "ld" or X-form "ldx" as appropriate.
-
-The change has to be conditional on CONFIG_PPC_KERNEL_PREFIXED because
-the "Y" constraint does not guarantee 4-byte alignment when prefixed
-instructions are enabled.
-
-No build errors have been reported due to this, but the possibility is
-there depending on compiler code generation decisions.
-
-Fixes: c20beffeec3c ("powerpc/uaccess: Use flexible addressing with __put_user()/__get_user()")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/powerpc/include/asm/uaccess.h | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
-index d4d59f57c42d9..24ea177879b80 100644
---- a/arch/powerpc/include/asm/uaccess.h
-+++ b/arch/powerpc/include/asm/uaccess.h
-@@ -255,8 +255,19 @@ extern long __get_user_bad(void);
-               : label)
- #ifdef __powerpc64__
-+#ifdef CONFIG_PPC_KERNEL_PREFIXED
- #define __get_user_asm2_goto(x, addr, label)                  \
-       __get_user_asm_goto(x, addr, label, "ld")
-+#else
-+#define __get_user_asm2_goto(x, addr, label)                  \
-+      asm_goto_output(                                        \
-+              "1:     ld%U1%X1 %0, %1 # get_user\n"           \
-+              EX_TABLE(1b, %l2)                               \
-+              : "=r" (x)                                      \
-+              : DS_FORM_CONSTRAINT (*addr)                    \
-+              :                                               \
-+              : label)
-+#endif // CONFIG_PPC_KERNEL_PREFIXED
- #else /* __powerpc64__ */
- #define __get_user_asm2_goto(x, addr, label)                  \
-       asm_volatile_goto(                                      \
--- 
-2.43.0
-
index eeb333c01420b1b8175e3e6e0fd97e32ca938019..48313bdea6893aa8b4601902067b0344777be0aa 100644 (file)
@@ -99,7 +99,6 @@ fbdev-sisfb-hide-unused-variables.patch
 media-ngene-add-dvb_ca_en50221_init-return-value-che.patch
 media-radio-shark2-avoid-led_names-truncations.patch
 drm-bridge-cdns-mhdp8546-fix-possible-null-pointer-d.patch
-platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
 fbdev-sh7760fb-allow-modular-build.patch
 media-atomisp-ssh_css-fix-a-null-pointer-dereference.patch
 drm-arm-malidp-fix-a-possible-null-pointer-dereferen.patch
@@ -260,7 +259,6 @@ kconfig-fix-comparison-to-constant-symbols-m-n.patch
 spi-stm32-don-t-warn-about-spurious-interrupts.patch
 ipvlan-dont-use-skb-sk-in-ipvlan_process_v-4-6-_outb.patch
 powerpc-uaccess-use-asm-goto-for-get_user-when-compi.patch
-powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
 hwmon-shtc1-fix-property-misspelling.patch
 alsa-timer-set-lower-bound-of-start-tick-time.patch
 genirq-cpuhotplug-x86-vector-prevent-vector-leak-during-cpu-offline.patch
diff --git a/queue-5.15/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch b/queue-5.15/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
deleted file mode 100644 (file)
index edce155..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-From 1f436551dd453c28c23f800e7273136e526197cb Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 2 Apr 2024 16:30:57 +0200
-Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key
- events
-
-From: Armin Wolf <W_Armin@gmx.de>
-
-[ Upstream commit 290680c2da8061e410bcaec4b21584ed951479af ]
-
-Multiple WMI events can be received concurrently, so multiple instances
-of xiaomi_wmi_notify() can be active at the same time. Since the input
-device is shared between those handlers, the key input sequence can be
-disturbed.
-
-Fix this by protecting the key input sequence with a mutex.
-
-Compile-tested only.
-
-Fixes: edb73f4f0247 ("platform/x86: wmi: add Xiaomi WMI key driver")
-Signed-off-by: Armin Wolf <W_Armin@gmx.de>
-Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de
-Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/xiaomi-wmi.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/platform/x86/xiaomi-wmi.c b/drivers/platform/x86/xiaomi-wmi.c
-index 54a2546bb93bf..be80f0bda9484 100644
---- a/drivers/platform/x86/xiaomi-wmi.c
-+++ b/drivers/platform/x86/xiaomi-wmi.c
-@@ -2,8 +2,10 @@
- /* WMI driver for Xiaomi Laptops */
- #include <linux/acpi.h>
-+#include <linux/device.h>
- #include <linux/input.h>
- #include <linux/module.h>
-+#include <linux/mutex.h>
- #include <linux/wmi.h>
- #include <uapi/linux/input-event-codes.h>
-@@ -20,12 +22,21 @@
- struct xiaomi_wmi {
-       struct input_dev *input_dev;
-+      struct mutex key_lock;  /* Protects the key event sequence */
-       unsigned int key_code;
- };
-+static void xiaomi_mutex_destroy(void *data)
-+{
-+      struct mutex *lock = data;
-+
-+      mutex_destroy(lock);
-+}
-+
- static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
- {
-       struct xiaomi_wmi *data;
-+      int ret;
-       if (wdev == NULL || context == NULL)
-               return -EINVAL;
-@@ -35,6 +46,11 @@ static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
-               return -ENOMEM;
-       dev_set_drvdata(&wdev->dev, data);
-+      mutex_init(&data->key_lock);
-+      ret = devm_add_action_or_reset(&wdev->dev, xiaomi_mutex_destroy, &data->key_lock);
-+      if (ret < 0)
-+              return ret;
-+
-       data->input_dev = devm_input_allocate_device(&wdev->dev);
-       if (data->input_dev == NULL)
-               return -ENOMEM;
-@@ -59,10 +75,12 @@ static void xiaomi_wmi_notify(struct wmi_device *wdev, union acpi_object *dummy)
-       if (data == NULL)
-               return;
-+      mutex_lock(&data->key_lock);
-       input_report_key(data->input_dev, data->key_code, 1);
-       input_sync(data->input_dev);
-       input_report_key(data->input_dev, data->key_code, 0);
-       input_sync(data->input_dev);
-+      mutex_unlock(&data->key_lock);
- }
- static const struct wmi_device_id xiaomi_wmi_id_table[] = {
--- 
-2.43.0
-
diff --git a/queue-5.15/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch b/queue-5.15/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
deleted file mode 100644 (file)
index b39d3a9..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From 77c8c18109f7d833e8b3c948d29eea1b258898c0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 29 May 2024 22:30:29 +1000
-Subject: powerpc/uaccess: Use YZ asm constraint for ld
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-[ Upstream commit 50934945d54238d2d6d8db4b7c1d4c90d2696c57 ]
-
-The 'ld' instruction requires a 4-byte aligned displacement because it
-is a DS-form instruction. But the "m" asm constraint doesn't enforce
-that.
-
-Add a special case of __get_user_asm2_goto() so that the "YZ" constraint
-can be used for "ld".
-
-The "Z" constraint is documented in the GCC manual PowerPC machine
-constraints, and specifies a "memory operand accessed with indexed or
-indirect addressing". "Y" is not documented in the manual but specifies
-a "memory operand for a DS-form instruction". Using both allows the
-compiler to generate a DS-form "ld" or X-form "ldx" as appropriate.
-
-The change has to be conditional on CONFIG_PPC_KERNEL_PREFIXED because
-the "Y" constraint does not guarantee 4-byte alignment when prefixed
-instructions are enabled.
-
-No build errors have been reported due to this, but the possibility is
-there depending on compiler code generation decisions.
-
-Fixes: c20beffeec3c ("powerpc/uaccess: Use flexible addressing with __put_user()/__get_user()")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/powerpc/include/asm/uaccess.h | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
-index b2680070d65d6..a1fddbd843f00 100644
---- a/arch/powerpc/include/asm/uaccess.h
-+++ b/arch/powerpc/include/asm/uaccess.h
-@@ -151,8 +151,19 @@ do {                                                              \
-               : label)
- #ifdef __powerpc64__
-+#ifdef CONFIG_PPC_KERNEL_PREFIXED
- #define __get_user_asm2_goto(x, addr, label)                  \
-       __get_user_asm_goto(x, addr, label, "ld")
-+#else
-+#define __get_user_asm2_goto(x, addr, label)                  \
-+      asm_goto_output(                                        \
-+              "1:     ld%U1%X1 %0, %1 # get_user\n"           \
-+              EX_TABLE(1b, %l2)                               \
-+              : "=r" (x)                                      \
-+              : DS_FORM_CONSTRAINT (*addr)                    \
-+              :                                               \
-+              : label)
-+#endif // CONFIG_PPC_KERNEL_PREFIXED
- #else /* __powerpc64__ */
- #define __get_user_asm2_goto(x, addr, label)                  \
-       asm_volatile_goto(                                      \
--- 
-2.43.0
-
index 762c0d8b739831dc0e7538efc03adca806439122..6fe23178ab800fb75a8067e26147baddb27f2443 100644 (file)
@@ -133,7 +133,6 @@ fbdev-sisfb-hide-unused-variables.patch
 media-ngene-add-dvb_ca_en50221_init-return-value-che.patch
 media-radio-shark2-avoid-led_names-truncations.patch
 drm-bridge-cdns-mhdp8546-fix-possible-null-pointer-d.patch
-platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
 media-ipu3-cio2-use-temporary-storage-for-struct-dev.patch
 media-ipu3-cio2-request-irq-earlier.patch
 media-dt-bindings-ovti-ov2680-fix-the-power-supply-n.patch
@@ -332,7 +331,6 @@ net-ena-add-dynamic-recycling-mechanism-for-rx-buffe.patch
 net-ena-reduce-lines-with-longer-column-width-bounda.patch
 net-ena-fix-redundant-device-numa-node-override.patch
 ipvlan-dont-use-skb-sk-in-ipvlan_process_v-4-6-_outb.patch
-powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
 hwmon-shtc1-fix-property-misspelling.patch
 alsa-timer-set-lower-bound-of-start-tick-time.patch
 kvm-x86-don-t-advertise-guest.maxphyaddr-as-host.maxphyaddr-in-cpuid.patch
diff --git a/queue-5.4/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch b/queue-5.4/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
deleted file mode 100644 (file)
index eac2678..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-From 7217162b48f60edc29afbeff641b7de02076bb86 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 2 Apr 2024 16:30:57 +0200
-Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key
- events
-
-From: Armin Wolf <W_Armin@gmx.de>
-
-[ Upstream commit 290680c2da8061e410bcaec4b21584ed951479af ]
-
-Multiple WMI events can be received concurrently, so multiple instances
-of xiaomi_wmi_notify() can be active at the same time. Since the input
-device is shared between those handlers, the key input sequence can be
-disturbed.
-
-Fix this by protecting the key input sequence with a mutex.
-
-Compile-tested only.
-
-Fixes: edb73f4f0247 ("platform/x86: wmi: add Xiaomi WMI key driver")
-Signed-off-by: Armin Wolf <W_Armin@gmx.de>
-Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de
-Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/xiaomi-wmi.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/platform/x86/xiaomi-wmi.c b/drivers/platform/x86/xiaomi-wmi.c
-index 54a2546bb93bf..be80f0bda9484 100644
---- a/drivers/platform/x86/xiaomi-wmi.c
-+++ b/drivers/platform/x86/xiaomi-wmi.c
-@@ -2,8 +2,10 @@
- /* WMI driver for Xiaomi Laptops */
- #include <linux/acpi.h>
-+#include <linux/device.h>
- #include <linux/input.h>
- #include <linux/module.h>
-+#include <linux/mutex.h>
- #include <linux/wmi.h>
- #include <uapi/linux/input-event-codes.h>
-@@ -20,12 +22,21 @@
- struct xiaomi_wmi {
-       struct input_dev *input_dev;
-+      struct mutex key_lock;  /* Protects the key event sequence */
-       unsigned int key_code;
- };
-+static void xiaomi_mutex_destroy(void *data)
-+{
-+      struct mutex *lock = data;
-+
-+      mutex_destroy(lock);
-+}
-+
- static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
- {
-       struct xiaomi_wmi *data;
-+      int ret;
-       if (wdev == NULL || context == NULL)
-               return -EINVAL;
-@@ -35,6 +46,11 @@ static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
-               return -ENOMEM;
-       dev_set_drvdata(&wdev->dev, data);
-+      mutex_init(&data->key_lock);
-+      ret = devm_add_action_or_reset(&wdev->dev, xiaomi_mutex_destroy, &data->key_lock);
-+      if (ret < 0)
-+              return ret;
-+
-       data->input_dev = devm_input_allocate_device(&wdev->dev);
-       if (data->input_dev == NULL)
-               return -ENOMEM;
-@@ -59,10 +75,12 @@ static void xiaomi_wmi_notify(struct wmi_device *wdev, union acpi_object *dummy)
-       if (data == NULL)
-               return;
-+      mutex_lock(&data->key_lock);
-       input_report_key(data->input_dev, data->key_code, 1);
-       input_sync(data->input_dev);
-       input_report_key(data->input_dev, data->key_code, 0);
-       input_sync(data->input_dev);
-+      mutex_unlock(&data->key_lock);
- }
- static const struct wmi_device_id xiaomi_wmi_id_table[] = {
--- 
-2.43.0
-
index dc533ee7976bdd711f83aa59f1a6b3ae68ae80a0..463d14ea33c3cbeff2ae0220b5c295c887aecdc2 100644 (file)
@@ -74,7 +74,6 @@ fbdev-sisfb-hide-unused-variables.patch
 media-ngene-add-dvb_ca_en50221_init-return-value-che.patch
 media-radio-shark2-avoid-led_names-truncations.patch
 platform-x86-wmi-make-two-functions-static.patch
-platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
 fbdev-sh7760fb-allow-modular-build.patch
 drm-arm-malidp-fix-a-possible-null-pointer-dereferen.patch
 asoc-tracing-export-snd_soc_dapm_dir_out-to-its-valu.patch
diff --git a/queue-6.1/nilfs2-make-superblock-data-array-index-computation-.patch b/queue-6.1/nilfs2-make-superblock-data-array-index-computation-.patch
deleted file mode 100644 (file)
index 2ccd33e..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-From 358bc3e8f5a5e2c51fc07aadb70e25fa206e764b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 30 Apr 2024 17:00:19 +0900
-Subject: nilfs2: make superblock data array index computation sparse friendly
-
-From: Ryusuke Konishi <konishi.ryusuke@gmail.com>
-
-[ Upstream commit 91d743a9c8299de1fc1b47428d8bb4c85face00f ]
-
-Upon running sparse, "warning: dubious: x & !y" is output at an array
-index calculation within nilfs_load_super_block().
-
-The calculation is not wrong, but to eliminate the sparse warning, replace
-it with an equivalent calculation.
-
-Also, add a comment to make it easier to understand what the unintuitive
-array index calculation is doing and whether it's correct.
-
-Link: https://lkml.kernel.org/r/20240430080019.4242-3-konishi.ryusuke@gmail.com
-Fixes: e339ad31f599 ("nilfs2: introduce secondary super block")
-Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
-Cc: Bart Van Assche <bvanassche@acm.org>
-Cc: Jens Axboe <axboe@kernel.dk>
-Cc: kernel test robot <lkp@intel.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/nilfs2/the_nilfs.c | 20 ++++++++++++++++++--
- 1 file changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
-index 71400496ed365..3e3c1d32da180 100644
---- a/fs/nilfs2/the_nilfs.c
-+++ b/fs/nilfs2/the_nilfs.c
-@@ -592,7 +592,7 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
-       struct nilfs_super_block **sbp = nilfs->ns_sbp;
-       struct buffer_head **sbh = nilfs->ns_sbh;
-       u64 sb2off, devsize = bdev_nr_bytes(nilfs->ns_bdev);
--      int valid[2], swp = 0;
-+      int valid[2], swp = 0, older;
-       if (devsize < NILFS_SEG_MIN_BLOCKS * NILFS_MIN_BLOCK_SIZE + 4096) {
-               nilfs_err(sb, "device size too small");
-@@ -648,9 +648,25 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
-       if (swp)
-               nilfs_swap_super_block(nilfs);
-+      /*
-+       * Calculate the array index of the older superblock data.
-+       * If one has been dropped, set index 0 pointing to the remaining one,
-+       * otherwise set index 1 pointing to the old one (including if both
-+       * are the same).
-+       *
-+       *  Divided case             valid[0]  valid[1]  swp  ->  older
-+       *  -------------------------------------------------------------
-+       *  Both SBs are invalid        0         0       N/A (Error)
-+       *  SB1 is invalid              0         1       1         0
-+       *  SB2 is invalid              1         0       0         0
-+       *  SB2 is newer                1         1       1         0
-+       *  SB2 is older or the same    1         1       0         1
-+       */
-+      older = valid[1] ^ swp;
-+
-       nilfs->ns_sbwcount = 0;
-       nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime);
--      nilfs->ns_prot_seq = le64_to_cpu(sbp[valid[1] & !swp]->s_last_seq);
-+      nilfs->ns_prot_seq = le64_to_cpu(sbp[older]->s_last_seq);
-       *sbpp = sbp[0];
-       return 0;
- }
--- 
-2.43.0
-
diff --git a/queue-6.1/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch b/queue-6.1/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
deleted file mode 100644 (file)
index f5e5d7f..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-From 1abdef69265133db29772ed5cefea2338f8ce173 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 2 Apr 2024 16:30:57 +0200
-Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key
- events
-
-From: Armin Wolf <W_Armin@gmx.de>
-
-[ Upstream commit 290680c2da8061e410bcaec4b21584ed951479af ]
-
-Multiple WMI events can be received concurrently, so multiple instances
-of xiaomi_wmi_notify() can be active at the same time. Since the input
-device is shared between those handlers, the key input sequence can be
-disturbed.
-
-Fix this by protecting the key input sequence with a mutex.
-
-Compile-tested only.
-
-Fixes: edb73f4f0247 ("platform/x86: wmi: add Xiaomi WMI key driver")
-Signed-off-by: Armin Wolf <W_Armin@gmx.de>
-Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de
-Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/xiaomi-wmi.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/platform/x86/xiaomi-wmi.c b/drivers/platform/x86/xiaomi-wmi.c
-index 54a2546bb93bf..be80f0bda9484 100644
---- a/drivers/platform/x86/xiaomi-wmi.c
-+++ b/drivers/platform/x86/xiaomi-wmi.c
-@@ -2,8 +2,10 @@
- /* WMI driver for Xiaomi Laptops */
- #include <linux/acpi.h>
-+#include <linux/device.h>
- #include <linux/input.h>
- #include <linux/module.h>
-+#include <linux/mutex.h>
- #include <linux/wmi.h>
- #include <uapi/linux/input-event-codes.h>
-@@ -20,12 +22,21 @@
- struct xiaomi_wmi {
-       struct input_dev *input_dev;
-+      struct mutex key_lock;  /* Protects the key event sequence */
-       unsigned int key_code;
- };
-+static void xiaomi_mutex_destroy(void *data)
-+{
-+      struct mutex *lock = data;
-+
-+      mutex_destroy(lock);
-+}
-+
- static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
- {
-       struct xiaomi_wmi *data;
-+      int ret;
-       if (wdev == NULL || context == NULL)
-               return -EINVAL;
-@@ -35,6 +46,11 @@ static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
-               return -ENOMEM;
-       dev_set_drvdata(&wdev->dev, data);
-+      mutex_init(&data->key_lock);
-+      ret = devm_add_action_or_reset(&wdev->dev, xiaomi_mutex_destroy, &data->key_lock);
-+      if (ret < 0)
-+              return ret;
-+
-       data->input_dev = devm_input_allocate_device(&wdev->dev);
-       if (data->input_dev == NULL)
-               return -ENOMEM;
-@@ -59,10 +75,12 @@ static void xiaomi_wmi_notify(struct wmi_device *wdev, union acpi_object *dummy)
-       if (data == NULL)
-               return;
-+      mutex_lock(&data->key_lock);
-       input_report_key(data->input_dev, data->key_code, 1);
-       input_sync(data->input_dev);
-       input_report_key(data->input_dev, data->key_code, 0);
-       input_sync(data->input_dev);
-+      mutex_unlock(&data->key_lock);
- }
- static const struct wmi_device_id xiaomi_wmi_id_table[] = {
--- 
-2.43.0
-
diff --git a/queue-6.1/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch b/queue-6.1/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
deleted file mode 100644 (file)
index 4e2d583..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From 974321b78f1a28f4776f6bbdf5e9609453e11d0b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 29 May 2024 22:30:29 +1000
-Subject: powerpc/uaccess: Use YZ asm constraint for ld
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-[ Upstream commit 50934945d54238d2d6d8db4b7c1d4c90d2696c57 ]
-
-The 'ld' instruction requires a 4-byte aligned displacement because it
-is a DS-form instruction. But the "m" asm constraint doesn't enforce
-that.
-
-Add a special case of __get_user_asm2_goto() so that the "YZ" constraint
-can be used for "ld".
-
-The "Z" constraint is documented in the GCC manual PowerPC machine
-constraints, and specifies a "memory operand accessed with indexed or
-indirect addressing". "Y" is not documented in the manual but specifies
-a "memory operand for a DS-form instruction". Using both allows the
-compiler to generate a DS-form "ld" or X-form "ldx" as appropriate.
-
-The change has to be conditional on CONFIG_PPC_KERNEL_PREFIXED because
-the "Y" constraint does not guarantee 4-byte alignment when prefixed
-instructions are enabled.
-
-No build errors have been reported due to this, but the possibility is
-there depending on compiler code generation decisions.
-
-Fixes: c20beffeec3c ("powerpc/uaccess: Use flexible addressing with __put_user()/__get_user()")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/powerpc/include/asm/uaccess.h | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
-index 45d4c9cf3f3a2..60eead5d720a3 100644
---- a/arch/powerpc/include/asm/uaccess.h
-+++ b/arch/powerpc/include/asm/uaccess.h
-@@ -141,8 +141,19 @@ do {                                                              \
-               : label)
- #ifdef __powerpc64__
-+#ifdef CONFIG_PPC_KERNEL_PREFIXED
- #define __get_user_asm2_goto(x, addr, label)                  \
-       __get_user_asm_goto(x, addr, label, "ld")
-+#else
-+#define __get_user_asm2_goto(x, addr, label)                  \
-+      asm_goto_output(                                        \
-+              "1:     ld%U1%X1 %0, %1 # get_user\n"           \
-+              EX_TABLE(1b, %l2)                               \
-+              : "=r" (x)                                      \
-+              : DS_FORM_CONSTRAINT (*addr)                    \
-+              :                                               \
-+              : label)
-+#endif // CONFIG_PPC_KERNEL_PREFIXED
- #else /* __powerpc64__ */
- #define __get_user_asm2_goto(x, addr, label)                  \
-       asm_goto_output(                                        \
--- 
-2.43.0
-
index 81204eab3d8768aac855bc93b24fe56859629ffd..dc42424072c4b3303bcdcf320148c5df81e4fea6 100644 (file)
@@ -210,7 +210,6 @@ media-ngene-add-dvb_ca_en50221_init-return-value-che.patch
 media-rcar-vin-work-around-wenum-compare-conditional.patch
 media-radio-shark2-avoid-led_names-truncations.patch
 drm-bridge-cdns-mhdp8546-fix-possible-null-pointer-d.patch
-platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
 drm-msm-dp-allow-voltage-swing-pre-emphasis-of-3.patch
 drm-msm-dp-return-irq_none-for-unhandled-interrupts.patch
 drm-msm-dp-avoid-a-long-timeout-for-aux-transfer-if-.patch
@@ -393,7 +392,6 @@ revert-drm-bridge-ti-sn65dsi83-fix-enable-error-path.patch
 drm-msm-enable-clamp_to_idle-for-7c3.patch
 drm-msm-a6xx-avoid-a-nullptr-dereference-when-speedb.patch
 null_blk-fix-the-warning-modpost-missing-module_desc.patch
-nilfs2-make-superblock-data-array-index-computation-.patch
 alsa-hda-cs_dsp_ctl-use-private_free-for-control-cle.patch
 asoc-mediatek-mt8192-fix-register-configuration-for-.patch
 regulator-bd71828-don-t-overwrite-runtime-voltages.patch
@@ -467,7 +465,6 @@ net-ena-reduce-lines-with-longer-column-width-bounda.patch
 net-ena-fix-redundant-device-numa-node-override.patch
 ipvlan-dont-use-skb-sk-in-ipvlan_process_v-4-6-_outb.patch
 powerpc-pseries-lparcfg-drop-error-message-from-gues.patch
-powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
 hwmon-shtc1-fix-property-misspelling.patch
 riscv-prevent-pt_regs-corruption-for-secondary-idle-.patch
 alsa-timer-set-lower-bound-of-start-tick-time.patch
diff --git a/queue-6.6/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch b/queue-6.6/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch
deleted file mode 100644 (file)
index 349710b..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From 0f5b1a2e9cdd7d41462cb1b19af41bf6849ccbf2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 28 May 2024 15:06:04 -0700
-Subject: e1000e: move force SMBUS near the end of enable_ulp function
-
-From: Hui Wang <hui.wang@canonical.com>
-
-[ Upstream commit bfd546a552e140b0a4c8a21527c39d6d21addb28 ]
-
-The commit 861e8086029e ("e1000e: move force SMBUS from enable ulp
-function to avoid PHY loss issue") introduces a regression on
-PCH_MTP_I219_LM18 (PCIID: 0x8086550A). Without the referred commit, the
-ethernet works well after suspend and resume, but after applying the
-commit, the ethernet couldn't work anymore after the resume and the
-dmesg shows that the NIC link changes to 10Mbps (1000Mbps originally):
-
-    [   43.305084] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Up 10 Mbps Full Duplex, Flow Control: Rx/Tx
-
-Without the commit, the force SMBUS code will not be executed if
-"return 0" or "goto out" is executed in the enable_ulp(), and in my
-case, the "goto out" is executed since FWSM_FW_VALID is set. But after
-applying the commit, the force SMBUS code will be ran unconditionally.
-
-Here move the force SMBUS code back to enable_ulp() and put it
-immediately ahead of hw->phy.ops.release(hw), this could allow the
-longest settling time as possible for interface in this function and
-doesn't change the original code logic.
-
-The issue was found on a Lenovo laptop with the ethernet hw as below:
-00:1f.6 Ethernet controller [0200]: Intel Corporation Device [8086:550a]
-(rev 20).
-
-And this patch is verified (cable plug and unplug, system suspend
-and resume) on Lenovo laptops with ethernet hw: [8086:550a],
-[8086:550b], [8086:15bb], [8086:15be], [8086:1a1f], [8086:1a1c] and
-[8086:0dc7].
-
-Fixes: 861e8086029e ("e1000e: move force SMBUS from enable ulp function to avoid PHY loss issue")
-Signed-off-by: Hui Wang <hui.wang@canonical.com>
-Acked-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
-Tested-by: Naama Meir <naamax.meir@linux.intel.com>
-Reviewed-by: Simon Horman <horms@kernel.org>
-Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Tested-by: Zhang Rui <rui.zhang@intel.com>
-Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
-Link: https://lore.kernel.org/r/20240528-net-2024-05-28-intel-net-fixes-v1-1-dc8593d2bbc6@intel.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/intel/e1000e/ich8lan.c | 22 +++++++++++++++++++++
- drivers/net/ethernet/intel/e1000e/netdev.c  | 18 -----------------
- 2 files changed, 22 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
-index 4d83c9a0c023a..d678ca0254651 100644
---- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
-+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
-@@ -1225,6 +1225,28 @@ s32 e1000_enable_ulp_lpt_lp(struct e1000_hw *hw, bool to_sx)
-       }
- release:
-+      /* Switching PHY interface always returns MDI error
-+       * so disable retry mechanism to avoid wasting time
-+       */
-+      e1000e_disable_phy_retry(hw);
-+
-+      /* Force SMBus mode in PHY */
-+      ret_val = e1000_read_phy_reg_hv_locked(hw, CV_SMB_CTRL, &phy_reg);
-+      if (ret_val) {
-+              e1000e_enable_phy_retry(hw);
-+              hw->phy.ops.release(hw);
-+              goto out;
-+      }
-+      phy_reg |= CV_SMB_CTRL_FORCE_SMBUS;
-+      e1000_write_phy_reg_hv_locked(hw, CV_SMB_CTRL, phy_reg);
-+
-+      e1000e_enable_phy_retry(hw);
-+
-+      /* Force SMBus mode in MAC */
-+      mac_reg = er32(CTRL_EXT);
-+      mac_reg |= E1000_CTRL_EXT_FORCE_SMBUS;
-+      ew32(CTRL_EXT, mac_reg);
-+
-       hw->phy.ops.release(hw);
- out:
-       if (ret_val)
-diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
-index 3692fce201959..cc8c531ec3dff 100644
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -6623,7 +6623,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool runtime)
-       struct e1000_hw *hw = &adapter->hw;
-       u32 ctrl, ctrl_ext, rctl, status, wufc;
-       int retval = 0;
--      u16 smb_ctrl;
-       /* Runtime suspend should only enable wakeup for link changes */
-       if (runtime)
-@@ -6697,23 +6696,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool runtime)
-                       if (retval)
-                               return retval;
-               }
--
--              /* Force SMBUS to allow WOL */
--              /* Switching PHY interface always returns MDI error
--               * so disable retry mechanism to avoid wasting time
--               */
--              e1000e_disable_phy_retry(hw);
--
--              e1e_rphy(hw, CV_SMB_CTRL, &smb_ctrl);
--              smb_ctrl |= CV_SMB_CTRL_FORCE_SMBUS;
--              e1e_wphy(hw, CV_SMB_CTRL, smb_ctrl);
--
--              e1000e_enable_phy_retry(hw);
--
--              /* Force SMBus mode in MAC */
--              ctrl_ext = er32(CTRL_EXT);
--              ctrl_ext |= E1000_CTRL_EXT_FORCE_SMBUS;
--              ew32(CTRL_EXT, ctrl_ext);
-       }
-       /* Ensure that the appropriate bits are set in LPI_CTRL
--- 
-2.43.0
-
diff --git a/queue-6.6/fs-move-kiocb_start_write-into-vfs_iocb_iter_write.patch b/queue-6.6/fs-move-kiocb_start_write-into-vfs_iocb_iter_write.patch
deleted file mode 100644 (file)
index aa2caff..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From 17f38d69e7960a2b346db04750b0e4ba867c0b83 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 22 Nov 2023 14:27:12 +0200
-Subject: fs: move kiocb_start_write() into vfs_iocb_iter_write()
-
-From: Amir Goldstein <amir73il@gmail.com>
-
-[ Upstream commit 6ae654392bb516a0baa47fed1f085d84e8cad739 ]
-
-In vfs code, sb_start_write() is usually called after the permission hook
-in rw_verify_area().  vfs_iocb_iter_write() is an exception to this rule,
-where kiocb_start_write() is called by its callers.
-
-Move kiocb_start_write() from the callers into vfs_iocb_iter_write()
-after the rw_verify_area() checks, to make them "start-write-safe".
-
-The semantics of vfs_iocb_iter_write() is changed, so that the caller is
-responsible for calling kiocb_end_write() on completion only if async
-iocb was queued.  The completion handlers of both callers were adapted
-to this semantic change.
-
-This is needed for fanotify "pre content" events.
-
-Suggested-by: Jan Kara <jack@suse.cz>
-Suggested-by: Josef Bacik <josef@toxicpanda.com>
-Signed-off-by: Amir Goldstein <amir73il@gmail.com>
-Link: https://lore.kernel.org/r/20231122122715.2561213-14-amir73il@gmail.com
-Reviewed-by: Josef Bacik <josef@toxicpanda.com>
-Reviewed-by: Jan Kara <jack@suse.cz>
-Signed-off-by: Christian Brauner <brauner@kernel.org>
-Stable-dep-of: 7c98f7cb8fda ("remove call_{read,write}_iter() functions")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/cachefiles/io.c  | 5 ++---
- fs/overlayfs/file.c | 8 ++++----
- fs/read_write.c     | 7 +++++++
- 3 files changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/fs/cachefiles/io.c b/fs/cachefiles/io.c
-index 009d23cd435b5..5857241c59181 100644
---- a/fs/cachefiles/io.c
-+++ b/fs/cachefiles/io.c
-@@ -259,7 +259,8 @@ static void cachefiles_write_complete(struct kiocb *iocb, long ret)
-       _enter("%ld", ret);
--      kiocb_end_write(iocb);
-+      if (ki->was_async)
-+              kiocb_end_write(iocb);
-       if (ret < 0)
-               trace_cachefiles_io_error(object, inode, ret,
-@@ -319,8 +320,6 @@ int __cachefiles_write(struct cachefiles_object *object,
-               ki->iocb.ki_complete = cachefiles_write_complete;
-       atomic_long_add(ki->b_writing, &cache->b_writing);
--      kiocb_start_write(&ki->iocb);
--
-       get_file(ki->iocb.ki_filp);
-       cachefiles_grab_object(object, cachefiles_obj_get_ioreq);
-diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c
-index 9fd88579bfbfb..a1c64c2b8e204 100644
---- a/fs/overlayfs/file.c
-+++ b/fs/overlayfs/file.c
-@@ -295,10 +295,8 @@ static void ovl_aio_cleanup_handler(struct ovl_aio_req *aio_req)
-       struct kiocb *iocb = &aio_req->iocb;
-       struct kiocb *orig_iocb = aio_req->orig_iocb;
--      if (iocb->ki_flags & IOCB_WRITE) {
--              kiocb_end_write(iocb);
-+      if (iocb->ki_flags & IOCB_WRITE)
-               ovl_file_modified(orig_iocb->ki_filp);
--      }
-       orig_iocb->ki_pos = iocb->ki_pos;
-       ovl_aio_put(aio_req);
-@@ -310,6 +308,9 @@ static void ovl_aio_rw_complete(struct kiocb *iocb, long res)
-                                                  struct ovl_aio_req, iocb);
-       struct kiocb *orig_iocb = aio_req->orig_iocb;
-+      if (iocb->ki_flags & IOCB_WRITE)
-+              kiocb_end_write(iocb);
-+
-       ovl_aio_cleanup_handler(aio_req);
-       orig_iocb->ki_complete(orig_iocb, res);
- }
-@@ -421,7 +422,6 @@ static ssize_t ovl_write_iter(struct kiocb *iocb, struct iov_iter *iter)
-               aio_req->iocb.ki_flags = ifl;
-               aio_req->iocb.ki_complete = ovl_aio_rw_complete;
-               refcount_set(&aio_req->ref, 2);
--              kiocb_start_write(&aio_req->iocb);
-               ret = vfs_iocb_iter_write(real.file, &aio_req->iocb, iter);
-               ovl_aio_put(aio_req);
-               if (ret != -EIOCBQUEUED)
-diff --git a/fs/read_write.c b/fs/read_write.c
-index 4771701c896ba..9a56949f3b8d1 100644
---- a/fs/read_write.c
-+++ b/fs/read_write.c
-@@ -865,6 +865,10 @@ static ssize_t do_iter_write(struct file *file, struct iov_iter *iter,
-       return ret;
- }
-+/*
-+ * Caller is responsible for calling kiocb_end_write() on completion
-+ * if async iocb was queued.
-+ */
- ssize_t vfs_iocb_iter_write(struct file *file, struct kiocb *iocb,
-                           struct iov_iter *iter)
- {
-@@ -885,7 +889,10 @@ ssize_t vfs_iocb_iter_write(struct file *file, struct kiocb *iocb,
-       if (ret < 0)
-               return ret;
-+      kiocb_start_write(iocb);
-       ret = call_write_iter(file, iocb, iter);
-+      if (ret != -EIOCBQUEUED)
-+              kiocb_end_write(iocb);
-       if (ret > 0)
-               fsnotify_modify(file);
--- 
-2.43.0
-
diff --git a/queue-6.6/nilfs2-make-superblock-data-array-index-computation-.patch b/queue-6.6/nilfs2-make-superblock-data-array-index-computation-.patch
deleted file mode 100644 (file)
index 5b01e81..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-From 0edb31fac1e33108384e229455da942809f152c2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 30 Apr 2024 17:00:19 +0900
-Subject: nilfs2: make superblock data array index computation sparse friendly
-
-From: Ryusuke Konishi <konishi.ryusuke@gmail.com>
-
-[ Upstream commit 91d743a9c8299de1fc1b47428d8bb4c85face00f ]
-
-Upon running sparse, "warning: dubious: x & !y" is output at an array
-index calculation within nilfs_load_super_block().
-
-The calculation is not wrong, but to eliminate the sparse warning, replace
-it with an equivalent calculation.
-
-Also, add a comment to make it easier to understand what the unintuitive
-array index calculation is doing and whether it's correct.
-
-Link: https://lkml.kernel.org/r/20240430080019.4242-3-konishi.ryusuke@gmail.com
-Fixes: e339ad31f599 ("nilfs2: introduce secondary super block")
-Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
-Cc: Bart Van Assche <bvanassche@acm.org>
-Cc: Jens Axboe <axboe@kernel.dk>
-Cc: kernel test robot <lkp@intel.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/nilfs2/the_nilfs.c | 20 ++++++++++++++++++--
- 1 file changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
-index 71400496ed365..3e3c1d32da180 100644
---- a/fs/nilfs2/the_nilfs.c
-+++ b/fs/nilfs2/the_nilfs.c
-@@ -592,7 +592,7 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
-       struct nilfs_super_block **sbp = nilfs->ns_sbp;
-       struct buffer_head **sbh = nilfs->ns_sbh;
-       u64 sb2off, devsize = bdev_nr_bytes(nilfs->ns_bdev);
--      int valid[2], swp = 0;
-+      int valid[2], swp = 0, older;
-       if (devsize < NILFS_SEG_MIN_BLOCKS * NILFS_MIN_BLOCK_SIZE + 4096) {
-               nilfs_err(sb, "device size too small");
-@@ -648,9 +648,25 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
-       if (swp)
-               nilfs_swap_super_block(nilfs);
-+      /*
-+       * Calculate the array index of the older superblock data.
-+       * If one has been dropped, set index 0 pointing to the remaining one,
-+       * otherwise set index 1 pointing to the old one (including if both
-+       * are the same).
-+       *
-+       *  Divided case             valid[0]  valid[1]  swp  ->  older
-+       *  -------------------------------------------------------------
-+       *  Both SBs are invalid        0         0       N/A (Error)
-+       *  SB1 is invalid              0         1       1         0
-+       *  SB2 is invalid              1         0       0         0
-+       *  SB2 is newer                1         1       1         0
-+       *  SB2 is older or the same    1         1       0         1
-+       */
-+      older = valid[1] ^ swp;
-+
-       nilfs->ns_sbwcount = 0;
-       nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime);
--      nilfs->ns_prot_seq = le64_to_cpu(sbp[valid[1] & !swp]->s_last_seq);
-+      nilfs->ns_prot_seq = le64_to_cpu(sbp[older]->s_last_seq);
-       *sbpp = sbp[0];
-       return 0;
- }
--- 
-2.43.0
-
diff --git a/queue-6.6/ovl-add-helper-ovl_file_modified.patch b/queue-6.6/ovl-add-helper-ovl_file_modified.patch
deleted file mode 100644 (file)
index df655ce..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From f87db32c0cdadc7eea4a37560867da0bd0bb87e8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 27 Sep 2023 13:43:44 +0300
-Subject: ovl: add helper ovl_file_modified()
-
-From: Amir Goldstein <amir73il@gmail.com>
-
-[ Upstream commit c002728f608183449673818076380124935e6b9b ]
-
-A simple wrapper for updating ovl inode size/mtime, to conform
-with ovl_file_accessed().
-
-Signed-off-by: Amir Goldstein <amir73il@gmail.com>
-Stable-dep-of: 7c98f7cb8fda ("remove call_{read,write}_iter() functions")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/overlayfs/file.c | 18 +++++++++++-------
- 1 file changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c
-index 8be4dc050d1ed..9fd88579bfbfb 100644
---- a/fs/overlayfs/file.c
-+++ b/fs/overlayfs/file.c
-@@ -235,6 +235,12 @@ static loff_t ovl_llseek(struct file *file, loff_t offset, int whence)
-       return ret;
- }
-+static void ovl_file_modified(struct file *file)
-+{
-+      /* Update size/mtime */
-+      ovl_copyattr(file_inode(file));
-+}
-+
- static void ovl_file_accessed(struct file *file)
- {
-       struct inode *inode, *upperinode;
-@@ -290,10 +296,8 @@ static void ovl_aio_cleanup_handler(struct ovl_aio_req *aio_req)
-       struct kiocb *orig_iocb = aio_req->orig_iocb;
-       if (iocb->ki_flags & IOCB_WRITE) {
--              struct inode *inode = file_inode(orig_iocb->ki_filp);
--
-               kiocb_end_write(iocb);
--              ovl_copyattr(inode);
-+              ovl_file_modified(orig_iocb->ki_filp);
-       }
-       orig_iocb->ki_pos = iocb->ki_pos;
-@@ -403,7 +407,7 @@ static ssize_t ovl_write_iter(struct kiocb *iocb, struct iov_iter *iter)
-                                    ovl_iocb_to_rwf(ifl));
-               file_end_write(real.file);
-               /* Update size */
--              ovl_copyattr(inode);
-+              ovl_file_modified(file);
-       } else {
-               struct ovl_aio_req *aio_req;
-@@ -489,7 +493,7 @@ static ssize_t ovl_splice_write(struct pipe_inode_info *pipe, struct file *out,
-       file_end_write(real.file);
-       /* Update size */
--      ovl_copyattr(inode);
-+      ovl_file_modified(out);
-       revert_creds(old_cred);
-       fdput(real);
-@@ -570,7 +574,7 @@ static long ovl_fallocate(struct file *file, int mode, loff_t offset, loff_t len
-       revert_creds(old_cred);
-       /* Update size */
--      ovl_copyattr(inode);
-+      ovl_file_modified(file);
-       fdput(real);
-@@ -654,7 +658,7 @@ static loff_t ovl_copyfile(struct file *file_in, loff_t pos_in,
-       revert_creds(old_cred);
-       /* Update size */
--      ovl_copyattr(inode_out);
-+      ovl_file_modified(file_out);
-       fdput(real_in);
-       fdput(real_out);
--- 
-2.43.0
-
diff --git a/queue-6.6/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch b/queue-6.6/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
deleted file mode 100644 (file)
index 3c7272d..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-From 831f943a69833152081ec7393af598f0c8b415fa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 2 Apr 2024 16:30:57 +0200
-Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key
- events
-
-From: Armin Wolf <W_Armin@gmx.de>
-
-[ Upstream commit 290680c2da8061e410bcaec4b21584ed951479af ]
-
-Multiple WMI events can be received concurrently, so multiple instances
-of xiaomi_wmi_notify() can be active at the same time. Since the input
-device is shared between those handlers, the key input sequence can be
-disturbed.
-
-Fix this by protecting the key input sequence with a mutex.
-
-Compile-tested only.
-
-Fixes: edb73f4f0247 ("platform/x86: wmi: add Xiaomi WMI key driver")
-Signed-off-by: Armin Wolf <W_Armin@gmx.de>
-Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de
-Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/xiaomi-wmi.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/platform/x86/xiaomi-wmi.c b/drivers/platform/x86/xiaomi-wmi.c
-index 54a2546bb93bf..be80f0bda9484 100644
---- a/drivers/platform/x86/xiaomi-wmi.c
-+++ b/drivers/platform/x86/xiaomi-wmi.c
-@@ -2,8 +2,10 @@
- /* WMI driver for Xiaomi Laptops */
- #include <linux/acpi.h>
-+#include <linux/device.h>
- #include <linux/input.h>
- #include <linux/module.h>
-+#include <linux/mutex.h>
- #include <linux/wmi.h>
- #include <uapi/linux/input-event-codes.h>
-@@ -20,12 +22,21 @@
- struct xiaomi_wmi {
-       struct input_dev *input_dev;
-+      struct mutex key_lock;  /* Protects the key event sequence */
-       unsigned int key_code;
- };
-+static void xiaomi_mutex_destroy(void *data)
-+{
-+      struct mutex *lock = data;
-+
-+      mutex_destroy(lock);
-+}
-+
- static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
- {
-       struct xiaomi_wmi *data;
-+      int ret;
-       if (wdev == NULL || context == NULL)
-               return -EINVAL;
-@@ -35,6 +46,11 @@ static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
-               return -ENOMEM;
-       dev_set_drvdata(&wdev->dev, data);
-+      mutex_init(&data->key_lock);
-+      ret = devm_add_action_or_reset(&wdev->dev, xiaomi_mutex_destroy, &data->key_lock);
-+      if (ret < 0)
-+              return ret;
-+
-       data->input_dev = devm_input_allocate_device(&wdev->dev);
-       if (data->input_dev == NULL)
-               return -ENOMEM;
-@@ -59,10 +75,12 @@ static void xiaomi_wmi_notify(struct wmi_device *wdev, union acpi_object *dummy)
-       if (data == NULL)
-               return;
-+      mutex_lock(&data->key_lock);
-       input_report_key(data->input_dev, data->key_code, 1);
-       input_sync(data->input_dev);
-       input_report_key(data->input_dev, data->key_code, 0);
-       input_sync(data->input_dev);
-+      mutex_unlock(&data->key_lock);
- }
- static const struct wmi_device_id xiaomi_wmi_id_table[] = {
--- 
-2.43.0
-
diff --git a/queue-6.6/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch b/queue-6.6/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
deleted file mode 100644 (file)
index e53f1d2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From c772d9d41267b83de3147cc40618090003806c8c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 29 May 2024 22:30:29 +1000
-Subject: powerpc/uaccess: Use YZ asm constraint for ld
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-[ Upstream commit 50934945d54238d2d6d8db4b7c1d4c90d2696c57 ]
-
-The 'ld' instruction requires a 4-byte aligned displacement because it
-is a DS-form instruction. But the "m" asm constraint doesn't enforce
-that.
-
-Add a special case of __get_user_asm2_goto() so that the "YZ" constraint
-can be used for "ld".
-
-The "Z" constraint is documented in the GCC manual PowerPC machine
-constraints, and specifies a "memory operand accessed with indexed or
-indirect addressing". "Y" is not documented in the manual but specifies
-a "memory operand for a DS-form instruction". Using both allows the
-compiler to generate a DS-form "ld" or X-form "ldx" as appropriate.
-
-The change has to be conditional on CONFIG_PPC_KERNEL_PREFIXED because
-the "Y" constraint does not guarantee 4-byte alignment when prefixed
-instructions are enabled.
-
-No build errors have been reported due to this, but the possibility is
-there depending on compiler code generation decisions.
-
-Fixes: c20beffeec3c ("powerpc/uaccess: Use flexible addressing with __put_user()/__get_user()")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/powerpc/include/asm/uaccess.h | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
-index 4c96de9cd1e99..ad8e5f72c59a0 100644
---- a/arch/powerpc/include/asm/uaccess.h
-+++ b/arch/powerpc/include/asm/uaccess.h
-@@ -165,8 +165,19 @@ do {                                                              \
- #endif
- #ifdef __powerpc64__
-+#ifdef CONFIG_PPC_KERNEL_PREFIXED
- #define __get_user_asm2_goto(x, addr, label)                  \
-       __get_user_asm_goto(x, addr, label, "ld")
-+#else
-+#define __get_user_asm2_goto(x, addr, label)                  \
-+      asm_goto_output(                                        \
-+              "1:     ld%U1%X1 %0, %1 # get_user\n"           \
-+              EX_TABLE(1b, %l2)                               \
-+              : "=r" (x)                                      \
-+              : DS_FORM_CONSTRAINT (*addr)                    \
-+              :                                               \
-+              : label)
-+#endif // CONFIG_PPC_KERNEL_PREFIXED
- #else /* __powerpc64__ */
- #define __get_user_asm2_goto(x, addr, label)                  \
-       asm_goto_output(                                        \
--- 
-2.43.0
-
diff --git a/queue-6.6/remove-call_-read-write-_iter-functions.patch b/queue-6.6/remove-call_-read-write-_iter-functions.patch
deleted file mode 100644 (file)
index da9bae8..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-From 3c0ff2d825d714cd6539a14a5cefc8e9d20665d6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 28 Aug 2023 17:13:18 +0200
-Subject: remove call_{read,write}_iter() functions
-
-From: Miklos Szeredi <mszeredi@redhat.com>
-
-[ Upstream commit 7c98f7cb8fda964fbc60b9307ad35e94735fa35f ]
-
-These have no clear purpose.  This is effectively a revert of commit
-bb7462b6fd64 ("vfs: use helpers for calling f_op->{read,write}_iter()").
-
-The patch was created with the help of a coccinelle script.
-
-Fixes: bb7462b6fd64 ("vfs: use helpers for calling f_op->{read,write}_iter()")
-Reviewed-by: Christian Brauner <brauner@kernel.org>
-Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
-Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/block/loop.c              |  4 ++--
- drivers/target/target_core_file.c |  4 ++--
- fs/aio.c                          |  4 ++--
- fs/read_write.c                   | 12 ++++++------
- fs/splice.c                       |  4 ++--
- include/linux/fs.h                | 12 ------------
- io_uring/rw.c                     |  4 ++--
- 7 files changed, 16 insertions(+), 28 deletions(-)
-
-diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 552f56a84a7eb..afa5d49ccab49 100644
---- a/drivers/block/loop.c
-+++ b/drivers/block/loop.c
-@@ -447,9 +447,9 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd,
-       cmd->iocb.ki_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0);
-       if (rw == ITER_SOURCE)
--              ret = call_write_iter(file, &cmd->iocb, &iter);
-+              ret = file->f_op->write_iter(&cmd->iocb, &iter);
-       else
--              ret = call_read_iter(file, &cmd->iocb, &iter);
-+              ret = file->f_op->read_iter(&cmd->iocb, &iter);
-       lo_rw_aio_do_completion(cmd);
-diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
-index 4e4cf6c34a775..e43eff09dc22a 100644
---- a/drivers/target/target_core_file.c
-+++ b/drivers/target/target_core_file.c
-@@ -299,9 +299,9 @@ fd_execute_rw_aio(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
-               aio_cmd->iocb.ki_flags |= IOCB_DSYNC;
-       if (is_write)
--              ret = call_write_iter(file, &aio_cmd->iocb, &iter);
-+              ret = file->f_op->write_iter(&aio_cmd->iocb, &iter);
-       else
--              ret = call_read_iter(file, &aio_cmd->iocb, &iter);
-+              ret = file->f_op->read_iter(&aio_cmd->iocb, &iter);
-       if (ret != -EIOCBQUEUED)
-               cmd_rw_aio_complete(&aio_cmd->iocb, ret);
-diff --git a/fs/aio.c b/fs/aio.c
-index 4a9b5e4719eea..7cbdf6cd6dd37 100644
---- a/fs/aio.c
-+++ b/fs/aio.c
-@@ -1559,7 +1559,7 @@ static int aio_read(struct kiocb *req, const struct iocb *iocb,
-               return ret;
-       ret = rw_verify_area(READ, file, &req->ki_pos, iov_iter_count(&iter));
-       if (!ret)
--              aio_rw_done(req, call_read_iter(file, req, &iter));
-+              aio_rw_done(req, file->f_op->read_iter(req, &iter));
-       kfree(iovec);
-       return ret;
- }
-@@ -1590,7 +1590,7 @@ static int aio_write(struct kiocb *req, const struct iocb *iocb,
-               if (S_ISREG(file_inode(file)->i_mode))
-                       kiocb_start_write(req);
-               req->ki_flags |= IOCB_WRITE;
--              aio_rw_done(req, call_write_iter(file, req, &iter));
-+              aio_rw_done(req, file->f_op->write_iter(req, &iter));
-       }
-       kfree(iovec);
-       return ret;
-diff --git a/fs/read_write.c b/fs/read_write.c
-index 9a56949f3b8d1..4a476bdda51d4 100644
---- a/fs/read_write.c
-+++ b/fs/read_write.c
-@@ -386,7 +386,7 @@ static ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, lo
-       kiocb.ki_pos = (ppos ? *ppos : 0);
-       iov_iter_ubuf(&iter, ITER_DEST, buf, len);
--      ret = call_read_iter(filp, &kiocb, &iter);
-+      ret = filp->f_op->read_iter(&kiocb, &iter);
-       BUG_ON(ret == -EIOCBQUEUED);
-       if (ppos)
-               *ppos = kiocb.ki_pos;
-@@ -488,7 +488,7 @@ static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t
-       kiocb.ki_pos = (ppos ? *ppos : 0);
-       iov_iter_ubuf(&iter, ITER_SOURCE, (void __user *)buf, len);
--      ret = call_write_iter(filp, &kiocb, &iter);
-+      ret = filp->f_op->write_iter(&kiocb, &iter);
-       BUG_ON(ret == -EIOCBQUEUED);
-       if (ret > 0 && ppos)
-               *ppos = kiocb.ki_pos;
-@@ -730,9 +730,9 @@ static ssize_t do_iter_readv_writev(struct file *filp, struct iov_iter *iter,
-       kiocb.ki_pos = (ppos ? *ppos : 0);
-       if (type == READ)
--              ret = call_read_iter(filp, &kiocb, iter);
-+              ret = filp->f_op->read_iter(&kiocb, iter);
-       else
--              ret = call_write_iter(filp, &kiocb, iter);
-+              ret = filp->f_op->write_iter(&kiocb, iter);
-       BUG_ON(ret == -EIOCBQUEUED);
-       if (ppos)
-               *ppos = kiocb.ki_pos;
-@@ -821,7 +821,7 @@ ssize_t vfs_iocb_iter_read(struct file *file, struct kiocb *iocb,
-       if (ret < 0)
-               return ret;
--      ret = call_read_iter(file, iocb, iter);
-+      ret = file->f_op->read_iter(iocb, iter);
- out:
-       if (ret >= 0)
-               fsnotify_access(file);
-@@ -890,7 +890,7 @@ ssize_t vfs_iocb_iter_write(struct file *file, struct kiocb *iocb,
-               return ret;
-       kiocb_start_write(iocb);
--      ret = call_write_iter(file, iocb, iter);
-+      ret = file->f_op->write_iter(iocb, iter);
-       if (ret != -EIOCBQUEUED)
-               kiocb_end_write(iocb);
-       if (ret > 0)
-diff --git a/fs/splice.c b/fs/splice.c
-index a8f97c5e8cf0e..cc37369e02453 100644
---- a/fs/splice.c
-+++ b/fs/splice.c
-@@ -361,7 +361,7 @@ ssize_t copy_splice_read(struct file *in, loff_t *ppos,
-       iov_iter_bvec(&to, ITER_DEST, bv, npages, len);
-       init_sync_kiocb(&kiocb, in);
-       kiocb.ki_pos = *ppos;
--      ret = call_read_iter(in, &kiocb, &to);
-+      ret = in->f_op->read_iter(&kiocb, &to);
-       if (ret > 0) {
-               keep = DIV_ROUND_UP(ret, PAGE_SIZE);
-@@ -739,7 +739,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
-               iov_iter_bvec(&from, ITER_SOURCE, array, n, sd.total_len - left);
-               init_sync_kiocb(&kiocb, out);
-               kiocb.ki_pos = sd.pos;
--              ret = call_write_iter(out, &kiocb, &from);
-+              ret = out->f_op->write_iter(&kiocb, &from);
-               sd.pos = kiocb.ki_pos;
-               if (ret <= 0)
-                       break;
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index ee5efad0d7801..2b2a49711aa2f 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -2005,18 +2005,6 @@ struct inode_operations {
-       struct offset_ctx *(*get_offset_ctx)(struct inode *inode);
- } ____cacheline_aligned;
--static inline ssize_t call_read_iter(struct file *file, struct kiocb *kio,
--                                   struct iov_iter *iter)
--{
--      return file->f_op->read_iter(kio, iter);
--}
--
--static inline ssize_t call_write_iter(struct file *file, struct kiocb *kio,
--                                    struct iov_iter *iter)
--{
--      return file->f_op->write_iter(kio, iter);
--}
--
- static inline int call_mmap(struct file *file, struct vm_area_struct *vma)
- {
-       return file->f_op->mmap(file, vma);
-diff --git a/io_uring/rw.c b/io_uring/rw.c
-index 0a0c1c9db0f90..e7a27edf3ab23 100644
---- a/io_uring/rw.c
-+++ b/io_uring/rw.c
-@@ -653,7 +653,7 @@ static inline int io_iter_do_read(struct io_rw *rw, struct iov_iter *iter)
-       struct file *file = rw->kiocb.ki_filp;
-       if (likely(file->f_op->read_iter))
--              return call_read_iter(file, &rw->kiocb, iter);
-+              return file->f_op->read_iter(&rw->kiocb, iter);
-       else if (file->f_op->read)
-               return loop_rw_iter(READ, rw, iter);
-       else
-@@ -918,7 +918,7 @@ int io_write(struct io_kiocb *req, unsigned int issue_flags)
-       kiocb->ki_flags |= IOCB_WRITE;
-       if (likely(req->file->f_op->write_iter))
--              ret2 = call_write_iter(req->file, kiocb, &s->iter);
-+              ret2 = req->file->f_op->write_iter(kiocb, &s->iter);
-       else if (req->file->f_op->write)
-               ret2 = loop_rw_iter(WRITE, rw, &s->iter);
-       else
--- 
-2.43.0
-
index f6fdc24e5f28a1954de255e405ffad4d23989b25..a88fdc2e2d1819b6842d8ffb4b45b0f10fdd7406 100644 (file)
@@ -304,7 +304,6 @@ media-ngene-add-dvb_ca_en50221_init-return-value-che.patch
 media-rcar-vin-work-around-wenum-compare-conditional.patch
 media-radio-shark2-avoid-led_names-truncations.patch
 drm-bridge-cdns-mhdp8546-fix-possible-null-pointer-d.patch
-platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch
 drm-msm-dp-allow-voltage-swing-pre-emphasis-of-3.patch
 drm-msm-dp-avoid-a-long-timeout-for-aux-transfer-if-.patch
 media-ipu3-cio2-request-irq-earlier.patch
@@ -435,10 +434,6 @@ f2fs-fix-to-relocate-check-condition-in-f2fs_falloca.patch
 f2fs-fix-to-check-pinfile-flag-in-f2fs_move_file_ran.patch
 iio-adc-stm32-fixing-err-code-to-not-indicate-succes.patch
 riscv-dts-starfive-visionfive-2-remove-non-existing-.patch
-ovl-add-helper-ovl_file_modified.patch
-splice-remove-permission-hook-from-iter_file_splice_.patch
-fs-move-kiocb_start_write-into-vfs_iocb_iter_write.patch
-remove-call_-read-write-_iter-functions.patch
 coresight-etm4x-fix-unbalanced-pm_runtime_enable.patch
 perf-docs-document-bpf-event-modifier.patch
 perf-test-shell-arm_coresight-increase-buffer-size-f.patch
@@ -614,7 +609,6 @@ selftests-powerpc-dexcr-add-no-pie-to-hashchk-tests.patch
 drm-msm-a6xx-avoid-a-nullptr-dereference-when-speedb.patch
 asoc-tas2781-fix-a-warning-reported-by-robot-kernel-.patch
 null_blk-fix-the-warning-modpost-missing-module_desc.patch
-nilfs2-make-superblock-data-array-index-computation-.patch
 alsa-hda-cs_dsp_ctl-use-private_free-for-control-cle.patch
 asoc-cs35l56-fix-to-ensure-asp1-registers-match-cach.patch
 alsa-hda-cs35l56-initialize-all-asp1-registers.patch
@@ -720,13 +714,11 @@ drm-i915-gt-fix-ccs-id-s-calculation-for-ccs-mode-se.patch
 kheaders-use-command-v-to-test-for-existence-of-cpio.patch
 spi-stm32-don-t-warn-about-spurious-interrupts.patch
 net-dsa-microchip-fix-rgmii-error-in-ksz-dsa-driver.patch
-e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch
 net-ena-reduce-lines-with-longer-column-width-bounda.patch
 net-ena-fix-redundant-device-numa-node-override.patch
 ipvlan-dont-use-skb-sk-in-ipvlan_process_v-4-6-_outb.patch
 alsa-seq-fix-yet-another-spot-for-system-message-con.patch
 powerpc-pseries-lparcfg-drop-error-message-from-gues.patch
-powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
 drm-panel-sitronix-st7789v-fix-timing-for-jt240mhqs_.patch
 drm-panel-sitronix-st7789v-tweak-timing-for-jt240mhq.patch
 drm-panel-sitronix-st7789v-fix-display-size-for-jt24.patch
diff --git a/queue-6.6/splice-remove-permission-hook-from-iter_file_splice_.patch b/queue-6.6/splice-remove-permission-hook-from-iter_file_splice_.patch
deleted file mode 100644 (file)
index cf55d48..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From 9519e9d1e625d4f01b3c8a1c32042e3f5da53b0b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 23 Nov 2023 18:51:44 +0100
-Subject: splice: remove permission hook from iter_file_splice_write()
-
-From: Amir Goldstein <amir73il@gmail.com>
-
-[ Upstream commit d53471ba6f7ae97a4e223539029528108b705af1 ]
-
-All the callers of ->splice_write(), (e.g. do_splice_direct() and
-do_splice()) already check rw_verify_area() for the entire range
-and perform all the other checks that are in vfs_write_iter().
-
-Instead of creating another tiny helper for special caller, just
-open-code it.
-
-This is needed for fanotify "pre content" events.
-
-Suggested-by: Jan Kara <jack@suse.cz>
-Reviewed-by: Josef Bacik <josef@toxicpanda.com>
-Signed-off-by: Amir Goldstein <amir73il@gmail.com>
-Link: https://lore.kernel.org/r/20231122122715.2561213-6-amir73il@gmail.com
-Signed-off-by: Christian Brauner <brauner@kernel.org>
-Stable-dep-of: 7c98f7cb8fda ("remove call_{read,write}_iter() functions")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/splice.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/fs/splice.c b/fs/splice.c
-index d983d375ff113..a8f97c5e8cf0e 100644
---- a/fs/splice.c
-+++ b/fs/splice.c
-@@ -673,10 +673,13 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
-               .u.file = out,
-       };
-       int nbufs = pipe->max_usage;
--      struct bio_vec *array = kcalloc(nbufs, sizeof(struct bio_vec),
--                                      GFP_KERNEL);
-+      struct bio_vec *array;
-       ssize_t ret;
-+      if (!out->f_op->write_iter)
-+              return -EINVAL;
-+
-+      array = kcalloc(nbufs, sizeof(struct bio_vec), GFP_KERNEL);
-       if (unlikely(!array))
-               return -ENOMEM;
-@@ -684,6 +687,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
-       splice_from_pipe_begin(&sd);
-       while (sd.total_len) {
-+              struct kiocb kiocb;
-               struct iov_iter from;
-               unsigned int head, tail, mask;
-               size_t left;
-@@ -733,7 +737,10 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
-               }
-               iov_iter_bvec(&from, ITER_SOURCE, array, n, sd.total_len - left);
--              ret = vfs_iter_write(out, &from, &sd.pos, 0);
-+              init_sync_kiocb(&kiocb, out);
-+              kiocb.ki_pos = sd.pos;
-+              ret = call_write_iter(out, &kiocb, &from);
-+              sd.pos = kiocb.ki_pos;
-               if (ret <= 0)
-                       break;
--- 
-2.43.0
-
diff --git a/queue-6.9/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch b/queue-6.9/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch
deleted file mode 100644 (file)
index 913524d..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From ffe25a9c84779d37061e34c3d8864b48b41397e2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 28 May 2024 15:06:04 -0700
-Subject: e1000e: move force SMBUS near the end of enable_ulp function
-
-From: Hui Wang <hui.wang@canonical.com>
-
-[ Upstream commit bfd546a552e140b0a4c8a21527c39d6d21addb28 ]
-
-The commit 861e8086029e ("e1000e: move force SMBUS from enable ulp
-function to avoid PHY loss issue") introduces a regression on
-PCH_MTP_I219_LM18 (PCIID: 0x8086550A). Without the referred commit, the
-ethernet works well after suspend and resume, but after applying the
-commit, the ethernet couldn't work anymore after the resume and the
-dmesg shows that the NIC link changes to 10Mbps (1000Mbps originally):
-
-    [   43.305084] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Up 10 Mbps Full Duplex, Flow Control: Rx/Tx
-
-Without the commit, the force SMBUS code will not be executed if
-"return 0" or "goto out" is executed in the enable_ulp(), and in my
-case, the "goto out" is executed since FWSM_FW_VALID is set. But after
-applying the commit, the force SMBUS code will be ran unconditionally.
-
-Here move the force SMBUS code back to enable_ulp() and put it
-immediately ahead of hw->phy.ops.release(hw), this could allow the
-longest settling time as possible for interface in this function and
-doesn't change the original code logic.
-
-The issue was found on a Lenovo laptop with the ethernet hw as below:
-00:1f.6 Ethernet controller [0200]: Intel Corporation Device [8086:550a]
-(rev 20).
-
-And this patch is verified (cable plug and unplug, system suspend
-and resume) on Lenovo laptops with ethernet hw: [8086:550a],
-[8086:550b], [8086:15bb], [8086:15be], [8086:1a1f], [8086:1a1c] and
-[8086:0dc7].
-
-Fixes: 861e8086029e ("e1000e: move force SMBUS from enable ulp function to avoid PHY loss issue")
-Signed-off-by: Hui Wang <hui.wang@canonical.com>
-Acked-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
-Tested-by: Naama Meir <naamax.meir@linux.intel.com>
-Reviewed-by: Simon Horman <horms@kernel.org>
-Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Tested-by: Zhang Rui <rui.zhang@intel.com>
-Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
-Link: https://lore.kernel.org/r/20240528-net-2024-05-28-intel-net-fixes-v1-1-dc8593d2bbc6@intel.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/intel/e1000e/ich8lan.c | 22 +++++++++++++++++++++
- drivers/net/ethernet/intel/e1000e/netdev.c  | 18 -----------------
- 2 files changed, 22 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
-index f9e94be36e97f..2e98a2a0bead9 100644
---- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
-+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
-@@ -1225,6 +1225,28 @@ s32 e1000_enable_ulp_lpt_lp(struct e1000_hw *hw, bool to_sx)
-       }
- release:
-+      /* Switching PHY interface always returns MDI error
-+       * so disable retry mechanism to avoid wasting time
-+       */
-+      e1000e_disable_phy_retry(hw);
-+
-+      /* Force SMBus mode in PHY */
-+      ret_val = e1000_read_phy_reg_hv_locked(hw, CV_SMB_CTRL, &phy_reg);
-+      if (ret_val) {
-+              e1000e_enable_phy_retry(hw);
-+              hw->phy.ops.release(hw);
-+              goto out;
-+      }
-+      phy_reg |= CV_SMB_CTRL_FORCE_SMBUS;
-+      e1000_write_phy_reg_hv_locked(hw, CV_SMB_CTRL, phy_reg);
-+
-+      e1000e_enable_phy_retry(hw);
-+
-+      /* Force SMBus mode in MAC */
-+      mac_reg = er32(CTRL_EXT);
-+      mac_reg |= E1000_CTRL_EXT_FORCE_SMBUS;
-+      ew32(CTRL_EXT, mac_reg);
-+
-       hw->phy.ops.release(hw);
- out:
-       if (ret_val)
-diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
-index 3692fce201959..cc8c531ec3dff 100644
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -6623,7 +6623,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool runtime)
-       struct e1000_hw *hw = &adapter->hw;
-       u32 ctrl, ctrl_ext, rctl, status, wufc;
-       int retval = 0;
--      u16 smb_ctrl;
-       /* Runtime suspend should only enable wakeup for link changes */
-       if (runtime)
-@@ -6697,23 +6696,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool runtime)
-                       if (retval)
-                               return retval;
-               }
--
--              /* Force SMBUS to allow WOL */
--              /* Switching PHY interface always returns MDI error
--               * so disable retry mechanism to avoid wasting time
--               */
--              e1000e_disable_phy_retry(hw);
--
--              e1e_rphy(hw, CV_SMB_CTRL, &smb_ctrl);
--              smb_ctrl |= CV_SMB_CTRL_FORCE_SMBUS;
--              e1e_wphy(hw, CV_SMB_CTRL, smb_ctrl);
--
--              e1000e_enable_phy_retry(hw);
--
--              /* Force SMBus mode in MAC */
--              ctrl_ext = er32(CTRL_EXT);
--              ctrl_ext |= E1000_CTRL_EXT_FORCE_SMBUS;
--              ew32(CTRL_EXT, ctrl_ext);
-       }
-       /* Ensure that the appropriate bits are set in LPI_CTRL
--- 
-2.43.0
-
diff --git a/queue-6.9/nilfs2-make-superblock-data-array-index-computation-.patch b/queue-6.9/nilfs2-make-superblock-data-array-index-computation-.patch
deleted file mode 100644 (file)
index 41b61c1..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-From 5ca468e18e9074ae6ba779845a555fd869fffac1 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 30 Apr 2024 17:00:19 +0900
-Subject: nilfs2: make superblock data array index computation sparse friendly
-
-From: Ryusuke Konishi <konishi.ryusuke@gmail.com>
-
-[ Upstream commit 91d743a9c8299de1fc1b47428d8bb4c85face00f ]
-
-Upon running sparse, "warning: dubious: x & !y" is output at an array
-index calculation within nilfs_load_super_block().
-
-The calculation is not wrong, but to eliminate the sparse warning, replace
-it with an equivalent calculation.
-
-Also, add a comment to make it easier to understand what the unintuitive
-array index calculation is doing and whether it's correct.
-
-Link: https://lkml.kernel.org/r/20240430080019.4242-3-konishi.ryusuke@gmail.com
-Fixes: e339ad31f599 ("nilfs2: introduce secondary super block")
-Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
-Cc: Bart Van Assche <bvanassche@acm.org>
-Cc: Jens Axboe <axboe@kernel.dk>
-Cc: kernel test robot <lkp@intel.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/nilfs2/the_nilfs.c | 20 ++++++++++++++++++--
- 1 file changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
-index 2ae2c1bbf6d17..adbc6e87471ab 100644
---- a/fs/nilfs2/the_nilfs.c
-+++ b/fs/nilfs2/the_nilfs.c
-@@ -592,7 +592,7 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
-       struct nilfs_super_block **sbp = nilfs->ns_sbp;
-       struct buffer_head **sbh = nilfs->ns_sbh;
-       u64 sb2off, devsize = bdev_nr_bytes(nilfs->ns_bdev);
--      int valid[2], swp = 0;
-+      int valid[2], swp = 0, older;
-       if (devsize < NILFS_SEG_MIN_BLOCKS * NILFS_MIN_BLOCK_SIZE + 4096) {
-               nilfs_err(sb, "device size too small");
-@@ -648,9 +648,25 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
-       if (swp)
-               nilfs_swap_super_block(nilfs);
-+      /*
-+       * Calculate the array index of the older superblock data.
-+       * If one has been dropped, set index 0 pointing to the remaining one,
-+       * otherwise set index 1 pointing to the old one (including if both
-+       * are the same).
-+       *
-+       *  Divided case             valid[0]  valid[1]  swp  ->  older
-+       *  -------------------------------------------------------------
-+       *  Both SBs are invalid        0         0       N/A (Error)
-+       *  SB1 is invalid              0         1       1         0
-+       *  SB2 is invalid              1         0       0         0
-+       *  SB2 is newer                1         1       1         0
-+       *  SB2 is older or the same    1         1       0         1
-+       */
-+      older = valid[1] ^ swp;
-+
-       nilfs->ns_sbwcount = 0;
-       nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime);
--      nilfs->ns_prot_seq = le64_to_cpu(sbp[valid[1] & !swp]->s_last_seq);
-+      nilfs->ns_prot_seq = le64_to_cpu(sbp[older]->s_last_seq);
-       *sbpp = sbp[0];
-       return 0;
- }
--- 
-2.43.0
-
diff --git a/queue-6.9/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch b/queue-6.9/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
deleted file mode 100644 (file)
index 5f7b296..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From d97895b6c6abbeef07703c35fe3a17a323bd1464 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 29 May 2024 22:30:29 +1000
-Subject: powerpc/uaccess: Use YZ asm constraint for ld
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-[ Upstream commit 50934945d54238d2d6d8db4b7c1d4c90d2696c57 ]
-
-The 'ld' instruction requires a 4-byte aligned displacement because it
-is a DS-form instruction. But the "m" asm constraint doesn't enforce
-that.
-
-Add a special case of __get_user_asm2_goto() so that the "YZ" constraint
-can be used for "ld".
-
-The "Z" constraint is documented in the GCC manual PowerPC machine
-constraints, and specifies a "memory operand accessed with indexed or
-indirect addressing". "Y" is not documented in the manual but specifies
-a "memory operand for a DS-form instruction". Using both allows the
-compiler to generate a DS-form "ld" or X-form "ldx" as appropriate.
-
-The change has to be conditional on CONFIG_PPC_KERNEL_PREFIXED because
-the "Y" constraint does not guarantee 4-byte alignment when prefixed
-instructions are enabled.
-
-No build errors have been reported due to this, but the possibility is
-there depending on compiler code generation decisions.
-
-Fixes: c20beffeec3c ("powerpc/uaccess: Use flexible addressing with __put_user()/__get_user()")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/powerpc/include/asm/uaccess.h | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
-index de10437fd2065..ac4f6e4ae5810 100644
---- a/arch/powerpc/include/asm/uaccess.h
-+++ b/arch/powerpc/include/asm/uaccess.h
-@@ -165,8 +165,19 @@ do {                                                              \
- #endif
- #ifdef __powerpc64__
-+#ifdef CONFIG_PPC_KERNEL_PREFIXED
- #define __get_user_asm2_goto(x, addr, label)                  \
-       __get_user_asm_goto(x, addr, label, "ld")
-+#else
-+#define __get_user_asm2_goto(x, addr, label)                  \
-+      asm_goto_output(                                        \
-+              "1:     ld%U1%X1 %0, %1 # get_user\n"           \
-+              EX_TABLE(1b, %l2)                               \
-+              : "=r" (x)                                      \
-+              : DS_FORM_CONSTRAINT (*addr)                    \
-+              :                                               \
-+              : label)
-+#endif // CONFIG_PPC_KERNEL_PREFIXED
- #else /* __powerpc64__ */
- #define __get_user_asm2_goto(x, addr, label)                  \
-       asm_goto_output(                                        \
--- 
-2.43.0
-
diff --git a/queue-6.9/remove-call_-read-write-_iter-functions.patch b/queue-6.9/remove-call_-read-write-_iter-functions.patch
deleted file mode 100644 (file)
index 45deec9..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-From a0c54672df7c28755fcd701c6490e9ea3cc08b49 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 28 Aug 2023 17:13:18 +0200
-Subject: remove call_{read,write}_iter() functions
-
-From: Miklos Szeredi <mszeredi@redhat.com>
-
-[ Upstream commit 7c98f7cb8fda964fbc60b9307ad35e94735fa35f ]
-
-These have no clear purpose.  This is effectively a revert of commit
-bb7462b6fd64 ("vfs: use helpers for calling f_op->{read,write}_iter()").
-
-The patch was created with the help of a coccinelle script.
-
-Fixes: bb7462b6fd64 ("vfs: use helpers for calling f_op->{read,write}_iter()")
-Reviewed-by: Christian Brauner <brauner@kernel.org>
-Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
-Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/block/loop.c              |  4 ++--
- drivers/target/target_core_file.c |  4 ++--
- fs/aio.c                          |  4 ++--
- fs/read_write.c                   | 12 ++++++------
- fs/splice.c                       |  4 ++--
- include/linux/fs.h                | 12 ------------
- io_uring/rw.c                     |  4 ++--
- 7 files changed, 16 insertions(+), 28 deletions(-)
-
-diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 28a95fd366fea..93780f41646b7 100644
---- a/drivers/block/loop.c
-+++ b/drivers/block/loop.c
-@@ -445,9 +445,9 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd,
-       cmd->iocb.ki_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0);
-       if (rw == ITER_SOURCE)
--              ret = call_write_iter(file, &cmd->iocb, &iter);
-+              ret = file->f_op->write_iter(&cmd->iocb, &iter);
-       else
--              ret = call_read_iter(file, &cmd->iocb, &iter);
-+              ret = file->f_op->read_iter(&cmd->iocb, &iter);
-       lo_rw_aio_do_completion(cmd);
-diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
-index 4d447520bab87..94e6cd4e7e43d 100644
---- a/drivers/target/target_core_file.c
-+++ b/drivers/target/target_core_file.c
-@@ -299,9 +299,9 @@ fd_execute_rw_aio(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
-               aio_cmd->iocb.ki_flags |= IOCB_DSYNC;
-       if (is_write)
--              ret = call_write_iter(file, &aio_cmd->iocb, &iter);
-+              ret = file->f_op->write_iter(&aio_cmd->iocb, &iter);
-       else
--              ret = call_read_iter(file, &aio_cmd->iocb, &iter);
-+              ret = file->f_op->read_iter(&aio_cmd->iocb, &iter);
-       if (ret != -EIOCBQUEUED)
-               cmd_rw_aio_complete(&aio_cmd->iocb, ret);
-diff --git a/fs/aio.c b/fs/aio.c
-index 0f4f531c97800..744c7d1562dce 100644
---- a/fs/aio.c
-+++ b/fs/aio.c
-@@ -1605,7 +1605,7 @@ static int aio_read(struct kiocb *req, const struct iocb *iocb,
-               return ret;
-       ret = rw_verify_area(READ, file, &req->ki_pos, iov_iter_count(&iter));
-       if (!ret)
--              aio_rw_done(req, call_read_iter(file, req, &iter));
-+              aio_rw_done(req, file->f_op->read_iter(req, &iter));
-       kfree(iovec);
-       return ret;
- }
-@@ -1636,7 +1636,7 @@ static int aio_write(struct kiocb *req, const struct iocb *iocb,
-               if (S_ISREG(file_inode(file)->i_mode))
-                       kiocb_start_write(req);
-               req->ki_flags |= IOCB_WRITE;
--              aio_rw_done(req, call_write_iter(file, req, &iter));
-+              aio_rw_done(req, file->f_op->write_iter(req, &iter));
-       }
-       kfree(iovec);
-       return ret;
-diff --git a/fs/read_write.c b/fs/read_write.c
-index d4c036e82b6c3..2de7f6adb33d3 100644
---- a/fs/read_write.c
-+++ b/fs/read_write.c
-@@ -392,7 +392,7 @@ static ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, lo
-       kiocb.ki_pos = (ppos ? *ppos : 0);
-       iov_iter_ubuf(&iter, ITER_DEST, buf, len);
--      ret = call_read_iter(filp, &kiocb, &iter);
-+      ret = filp->f_op->read_iter(&kiocb, &iter);
-       BUG_ON(ret == -EIOCBQUEUED);
-       if (ppos)
-               *ppos = kiocb.ki_pos;
-@@ -494,7 +494,7 @@ static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t
-       kiocb.ki_pos = (ppos ? *ppos : 0);
-       iov_iter_ubuf(&iter, ITER_SOURCE, (void __user *)buf, len);
--      ret = call_write_iter(filp, &kiocb, &iter);
-+      ret = filp->f_op->write_iter(&kiocb, &iter);
-       BUG_ON(ret == -EIOCBQUEUED);
-       if (ret > 0 && ppos)
-               *ppos = kiocb.ki_pos;
-@@ -736,9 +736,9 @@ static ssize_t do_iter_readv_writev(struct file *filp, struct iov_iter *iter,
-       kiocb.ki_pos = (ppos ? *ppos : 0);
-       if (type == READ)
--              ret = call_read_iter(filp, &kiocb, iter);
-+              ret = filp->f_op->read_iter(&kiocb, iter);
-       else
--              ret = call_write_iter(filp, &kiocb, iter);
-+              ret = filp->f_op->write_iter(&kiocb, iter);
-       BUG_ON(ret == -EIOCBQUEUED);
-       if (ppos)
-               *ppos = kiocb.ki_pos;
-@@ -799,7 +799,7 @@ ssize_t vfs_iocb_iter_read(struct file *file, struct kiocb *iocb,
-       if (ret < 0)
-               return ret;
--      ret = call_read_iter(file, iocb, iter);
-+      ret = file->f_op->read_iter(iocb, iter);
- out:
-       if (ret >= 0)
-               fsnotify_access(file);
-@@ -860,7 +860,7 @@ ssize_t vfs_iocb_iter_write(struct file *file, struct kiocb *iocb,
-               return ret;
-       kiocb_start_write(iocb);
--      ret = call_write_iter(file, iocb, iter);
-+      ret = file->f_op->write_iter(iocb, iter);
-       if (ret != -EIOCBQUEUED)
-               kiocb_end_write(iocb);
-       if (ret > 0)
-diff --git a/fs/splice.c b/fs/splice.c
-index 218e24b1ac401..60aed8de21f85 100644
---- a/fs/splice.c
-+++ b/fs/splice.c
-@@ -362,7 +362,7 @@ ssize_t copy_splice_read(struct file *in, loff_t *ppos,
-       iov_iter_bvec(&to, ITER_DEST, bv, npages, len);
-       init_sync_kiocb(&kiocb, in);
-       kiocb.ki_pos = *ppos;
--      ret = call_read_iter(in, &kiocb, &to);
-+      ret = in->f_op->read_iter(&kiocb, &to);
-       if (ret > 0) {
-               keep = DIV_ROUND_UP(ret, PAGE_SIZE);
-@@ -740,7 +740,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
-               iov_iter_bvec(&from, ITER_SOURCE, array, n, sd.total_len - left);
-               init_sync_kiocb(&kiocb, out);
-               kiocb.ki_pos = sd.pos;
--              ret = call_write_iter(out, &kiocb, &from);
-+              ret = out->f_op->write_iter(&kiocb, &from);
-               sd.pos = kiocb.ki_pos;
-               if (ret <= 0)
-                       break;
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index b09f141321105..d20b5cbbf65d0 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -2098,18 +2098,6 @@ struct inode_operations {
-       struct offset_ctx *(*get_offset_ctx)(struct inode *inode);
- } ____cacheline_aligned;
--static inline ssize_t call_read_iter(struct file *file, struct kiocb *kio,
--                                   struct iov_iter *iter)
--{
--      return file->f_op->read_iter(kio, iter);
--}
--
--static inline ssize_t call_write_iter(struct file *file, struct kiocb *kio,
--                                    struct iov_iter *iter)
--{
--      return file->f_op->write_iter(kio, iter);
--}
--
- static inline int call_mmap(struct file *file, struct vm_area_struct *vma)
- {
-       return file->f_op->mmap(file, vma);
-diff --git a/io_uring/rw.c b/io_uring/rw.c
-index c8d48287439e5..29f4aa153ab9b 100644
---- a/io_uring/rw.c
-+++ b/io_uring/rw.c
-@@ -701,7 +701,7 @@ static inline int io_iter_do_read(struct io_rw *rw, struct iov_iter *iter)
-       struct file *file = rw->kiocb.ki_filp;
-       if (likely(file->f_op->read_iter))
--              return call_read_iter(file, &rw->kiocb, iter);
-+              return file->f_op->read_iter(&rw->kiocb, iter);
-       else if (file->f_op->read)
-               return loop_rw_iter(READ, rw, iter);
-       else
-@@ -1054,7 +1054,7 @@ int io_write(struct io_kiocb *req, unsigned int issue_flags)
-       kiocb->ki_flags |= IOCB_WRITE;
-       if (likely(req->file->f_op->write_iter))
--              ret2 = call_write_iter(req->file, kiocb, &s->iter);
-+              ret2 = req->file->f_op->write_iter(kiocb, &s->iter);
-       else if (req->file->f_op->write)
-               ret2 = loop_rw_iter(WRITE, rw, &s->iter);
-       else
--- 
-2.43.0
-
index 60916d71a7c4b50969b2f44fdfc7a06ec0f361a6..38af771ed180e1782ff40cbfd1fba89d15a3014a 100644 (file)
@@ -45,7 +45,6 @@ f2fs-write-missing-last-sum-blk-of-file-pinning-sect.patch
 iio-adc-stm32-fixing-err-code-to-not-indicate-succes.patch
 riscv-dts-starfive-visionfive-2-remove-non-existing-.patch
 riscv-dts-starfive-visionfive-2-remove-non-existing-.patch-14269
-remove-call_-read-write-_iter-functions.patch
 coresight-etm4x-fix-unbalanced-pm_runtime_enable.patch
 perf-dwarf-aux-check-pointer-offset-when-checking-va.patch
 perf-docs-document-bpf-event-modifier.patch
@@ -212,7 +211,6 @@ powerpc-bpf-32-fix-failing-test_bpf-tests.patch
 kvm-ppc-book3s-hv-nestedv2-cancel-pending-dec-except.patch
 kvm-ppc-book3s-hv-nestedv2-fix-an-error-handling-pat.patch
 kvm-arm64-destroy-mpidr_data-for-late-vcpu-creation.patch
-nilfs2-make-superblock-data-array-index-computation-.patch
 alsa-hda-cs_dsp_ctl-use-private_free-for-control-cle.patch
 alsa-hda-hda_component-initialize-shared-data-during.patch
 alsa-hda-cs35l56-fix-lifetime-of-cs_dsp-instance.patch
@@ -348,13 +346,11 @@ inet-introduce-dst_rtable-helper.patch
 net-fix-__dst_negative_advice-race.patch
 ipv4-correctly-iterate-over-the-target-netns-in-inet.patch
 net-dsa-microchip-fix-rgmii-error-in-ksz-dsa-driver.patch
-e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch
 ice-fix-200g-phy-types-to-link-speed-mapping.patch
 net-ena-fix-redundant-device-numa-node-override.patch
 ipvlan-dont-use-skb-sk-in-ipvlan_process_v-4-6-_outb.patch
 alsa-seq-fix-yet-another-spot-for-system-message-con.patch
 powerpc-pseries-lparcfg-drop-error-message-from-gues.patch
-powerpc-uaccess-use-yz-asm-constraint-for-ld.patch
 drm-panel-sitronix-st7789v-fix-timing-for-jt240mhqs_.patch
 drm-panel-sitronix-st7789v-tweak-timing-for-jt240mhq.patch
 drm-panel-sitronix-st7789v-fix-display-size-for-jt24.patch