From c50b8f80ee43616e6c2171cedc57800b0bbfacd4 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 9 Jun 2024 13:15:42 +0200 Subject: [PATCH] drop a bunch of patches that broke stuff or was asked to be dropped as part of review Signed-off-by: Greg Kroah-Hartman --- ...omi-wmi-fix-race-condition-when-repo.patch | 95 -------- ...uaccess-use-yz-asm-constraint-for-ld.patch | 64 ------ queue-5.10/series | 2 - ...omi-wmi-fix-race-condition-when-repo.patch | 95 -------- ...uaccess-use-yz-asm-constraint-for-ld.patch | 64 ------ queue-5.15/series | 2 - ...omi-wmi-fix-race-condition-when-repo.patch | 95 -------- queue-5.4/series | 1 - ...rblock-data-array-index-computation-.patch | 73 ------- ...omi-wmi-fix-race-condition-when-repo.patch | 95 -------- ...uaccess-use-yz-asm-constraint-for-ld.patch | 64 ------ queue-6.1/series | 3 - ...e-smbus-near-the-end-of-enable_ulp-f.patch | 126 ----------- ...start_write-into-vfs_iocb_iter_write.patch | 124 ----------- ...rblock-data-array-index-computation-.patch | 73 ------- .../ovl-add-helper-ovl_file_modified.patch | 87 -------- ...omi-wmi-fix-race-condition-when-repo.patch | 95 -------- ...uaccess-use-yz-asm-constraint-for-ld.patch | 64 ------ ...ove-call_-read-write-_iter-functions.patch | 205 ------------------ queue-6.6/series | 8 - ...rmission-hook-from-iter_file_splice_.patch | 72 ------ ...e-smbus-near-the-end-of-enable_ulp-f.patch | 126 ----------- ...rblock-data-array-index-computation-.patch | 73 ------- ...uaccess-use-yz-asm-constraint-for-ld.patch | 64 ------ ...ove-call_-read-write-_iter-functions.patch | 205 ------------------ queue-6.9/series | 4 - 26 files changed, 1979 deletions(-) delete mode 100644 queue-5.10/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch delete mode 100644 queue-5.10/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch delete mode 100644 queue-5.15/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch delete mode 100644 queue-5.15/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch delete mode 100644 queue-5.4/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch delete mode 100644 queue-6.1/nilfs2-make-superblock-data-array-index-computation-.patch delete mode 100644 queue-6.1/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch delete mode 100644 queue-6.1/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch delete mode 100644 queue-6.6/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch delete mode 100644 queue-6.6/fs-move-kiocb_start_write-into-vfs_iocb_iter_write.patch delete mode 100644 queue-6.6/nilfs2-make-superblock-data-array-index-computation-.patch delete mode 100644 queue-6.6/ovl-add-helper-ovl_file_modified.patch delete mode 100644 queue-6.6/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch delete mode 100644 queue-6.6/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch delete mode 100644 queue-6.6/remove-call_-read-write-_iter-functions.patch delete mode 100644 queue-6.6/splice-remove-permission-hook-from-iter_file_splice_.patch delete mode 100644 queue-6.9/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch delete mode 100644 queue-6.9/nilfs2-make-superblock-data-array-index-computation-.patch delete mode 100644 queue-6.9/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch delete mode 100644 queue-6.9/remove-call_-read-write-_iter-functions.patch 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 index 3ad8515cf8a..00000000000 --- a/queue-5.10/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 6f4e7901c3ed3c0bd3da7af5854dbb765fad2e00 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 2 Apr 2024 16:30:57 +0200 -Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key - events - -From: Armin Wolf - -[ 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 -Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de -Reviewed-by: Kuppuswamy Sathyanarayanan -Reviewed-by: Hans de Goede -Signed-off-by: Hans de Goede -Signed-off-by: Sasha Levin ---- - 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 -+#include - #include - #include -+#include - #include - - #include -@@ -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 index a4fa64cb07d..00000000000 --- a/queue-5.10/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch +++ /dev/null @@ -1,64 +0,0 @@ -From aef23da48335eb44fe56060767d2bbf789ab6feb Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 29 May 2024 22:30:29 +1000 -Subject: powerpc/uaccess: Use YZ asm constraint for ld - -From: Michael Ellerman - -[ 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 -Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.10/series b/queue-5.10/series index eeb333c0142..48313bdea68 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -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 index edce1558a16..00000000000 --- a/queue-5.15/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 1f436551dd453c28c23f800e7273136e526197cb Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 2 Apr 2024 16:30:57 +0200 -Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key - events - -From: Armin Wolf - -[ 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 -Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de -Reviewed-by: Kuppuswamy Sathyanarayanan -Reviewed-by: Hans de Goede -Signed-off-by: Hans de Goede -Signed-off-by: Sasha Levin ---- - 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 -+#include - #include - #include -+#include - #include - - #include -@@ -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 index b39d3a91894..00000000000 --- a/queue-5.15/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 77c8c18109f7d833e8b3c948d29eea1b258898c0 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 29 May 2024 22:30:29 +1000 -Subject: powerpc/uaccess: Use YZ asm constraint for ld - -From: Michael Ellerman - -[ 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 -Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.15/series b/queue-5.15/series index 762c0d8b739..6fe23178ab8 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -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 index eac26782ee4..00000000000 --- a/queue-5.4/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 7217162b48f60edc29afbeff641b7de02076bb86 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 2 Apr 2024 16:30:57 +0200 -Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key - events - -From: Armin Wolf - -[ 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 -Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de -Reviewed-by: Kuppuswamy Sathyanarayanan -Reviewed-by: Hans de Goede -Signed-off-by: Hans de Goede -Signed-off-by: Sasha Levin ---- - 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 -+#include - #include - #include -+#include - #include - - #include -@@ -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.4/series b/queue-5.4/series index dc533ee7976..463d14ea33c 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -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 index 2ccd33ebd61..00000000000 --- a/queue-6.1/nilfs2-make-superblock-data-array-index-computation-.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 358bc3e8f5a5e2c51fc07aadb70e25fa206e764b Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 30 Apr 2024 17:00:19 +0900 -Subject: nilfs2: make superblock data array index computation sparse friendly - -From: Ryusuke Konishi - -[ 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 -Cc: Bart Van Assche -Cc: Jens Axboe -Cc: kernel test robot -Signed-off-by: Andrew Morton -Signed-off-by: Sasha Levin ---- - 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 index f5e5d7f2dbc..00000000000 --- a/queue-6.1/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 1abdef69265133db29772ed5cefea2338f8ce173 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 2 Apr 2024 16:30:57 +0200 -Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key - events - -From: Armin Wolf - -[ 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 -Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de -Reviewed-by: Kuppuswamy Sathyanarayanan -Reviewed-by: Hans de Goede -Signed-off-by: Hans de Goede -Signed-off-by: Sasha Levin ---- - 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 -+#include - #include - #include -+#include - #include - - #include -@@ -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 index 4e2d5839f3f..00000000000 --- a/queue-6.1/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 974321b78f1a28f4776f6bbdf5e9609453e11d0b Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 29 May 2024 22:30:29 +1000 -Subject: powerpc/uaccess: Use YZ asm constraint for ld - -From: Michael Ellerman - -[ 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 -Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-6.1/series b/queue-6.1/series index 81204eab3d8..dc42424072c 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -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 index 349710bebc0..00000000000 --- a/queue-6.6/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 0f5b1a2e9cdd7d41462cb1b19af41bf6849ccbf2 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 28 May 2024 15:06:04 -0700 -Subject: e1000e: move force SMBUS near the end of enable_ulp function - -From: Hui Wang - -[ 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 -Acked-by: Vitaly Lifshits -Tested-by: Naama Meir -Reviewed-by: Simon Horman -Reviewed-by: Paul Menzel -Signed-off-by: Tony Nguyen -Tested-by: Zhang Rui -Signed-off-by: Jacob Keller -Link: https://lore.kernel.org/r/20240528-net-2024-05-28-intel-net-fixes-v1-1-dc8593d2bbc6@intel.com -Signed-off-by: Jakub Kicinski -Signed-off-by: Sasha Levin ---- - 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 index aa2caff5138..00000000000 --- a/queue-6.6/fs-move-kiocb_start_write-into-vfs_iocb_iter_write.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 17f38d69e7960a2b346db04750b0e4ba867c0b83 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 22 Nov 2023 14:27:12 +0200 -Subject: fs: move kiocb_start_write() into vfs_iocb_iter_write() - -From: Amir Goldstein - -[ 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 -Suggested-by: Josef Bacik -Signed-off-by: Amir Goldstein -Link: https://lore.kernel.org/r/20231122122715.2561213-14-amir73il@gmail.com -Reviewed-by: Josef Bacik -Reviewed-by: Jan Kara -Signed-off-by: Christian Brauner -Stable-dep-of: 7c98f7cb8fda ("remove call_{read,write}_iter() functions") -Signed-off-by: Sasha Levin ---- - 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 index 5b01e81c44b..00000000000 --- a/queue-6.6/nilfs2-make-superblock-data-array-index-computation-.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 0edb31fac1e33108384e229455da942809f152c2 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 30 Apr 2024 17:00:19 +0900 -Subject: nilfs2: make superblock data array index computation sparse friendly - -From: Ryusuke Konishi - -[ 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 -Cc: Bart Van Assche -Cc: Jens Axboe -Cc: kernel test robot -Signed-off-by: Andrew Morton -Signed-off-by: Sasha Levin ---- - 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 index df655ced532..00000000000 --- a/queue-6.6/ovl-add-helper-ovl_file_modified.patch +++ /dev/null @@ -1,87 +0,0 @@ -From f87db32c0cdadc7eea4a37560867da0bd0bb87e8 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 27 Sep 2023 13:43:44 +0300 -Subject: ovl: add helper ovl_file_modified() - -From: Amir Goldstein - -[ Upstream commit c002728f608183449673818076380124935e6b9b ] - -A simple wrapper for updating ovl inode size/mtime, to conform -with ovl_file_accessed(). - -Signed-off-by: Amir Goldstein -Stable-dep-of: 7c98f7cb8fda ("remove call_{read,write}_iter() functions") -Signed-off-by: Sasha Levin ---- - 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 index 3c7272d1bb3..00000000000 --- a/queue-6.6/platform-x86-xiaomi-wmi-fix-race-condition-when-repo.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 831f943a69833152081ec7393af598f0c8b415fa Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 2 Apr 2024 16:30:57 +0200 -Subject: platform/x86: xiaomi-wmi: Fix race condition when reporting key - events - -From: Armin Wolf - -[ 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 -Link: https://lore.kernel.org/r/20240402143059.8456-2-W_Armin@gmx.de -Reviewed-by: Kuppuswamy Sathyanarayanan -Reviewed-by: Hans de Goede -Signed-off-by: Hans de Goede -Signed-off-by: Sasha Levin ---- - 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 -+#include - #include - #include -+#include - #include - - #include -@@ -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 index e53f1d207f2..00000000000 --- a/queue-6.6/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch +++ /dev/null @@ -1,64 +0,0 @@ -From c772d9d41267b83de3147cc40618090003806c8c Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 29 May 2024 22:30:29 +1000 -Subject: powerpc/uaccess: Use YZ asm constraint for ld - -From: Michael Ellerman - -[ 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 -Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au -Signed-off-by: Sasha Levin ---- - 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 index da9bae8a145..00000000000 --- a/queue-6.6/remove-call_-read-write-_iter-functions.patch +++ /dev/null @@ -1,205 +0,0 @@ -From 3c0ff2d825d714cd6539a14a5cefc8e9d20665d6 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 28 Aug 2023 17:13:18 +0200 -Subject: remove call_{read,write}_iter() functions - -From: Miklos Szeredi - -[ 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 -Signed-off-by: Miklos Szeredi -Signed-off-by: Al Viro -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-6.6/series b/queue-6.6/series index f6fdc24e5f2..a88fdc2e2d1 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -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 index cf55d485676..00000000000 --- a/queue-6.6/splice-remove-permission-hook-from-iter_file_splice_.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 9519e9d1e625d4f01b3c8a1c32042e3f5da53b0b Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 23 Nov 2023 18:51:44 +0100 -Subject: splice: remove permission hook from iter_file_splice_write() - -From: Amir Goldstein - -[ 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 -Reviewed-by: Josef Bacik -Signed-off-by: Amir Goldstein -Link: https://lore.kernel.org/r/20231122122715.2561213-6-amir73il@gmail.com -Signed-off-by: Christian Brauner -Stable-dep-of: 7c98f7cb8fda ("remove call_{read,write}_iter() functions") -Signed-off-by: Sasha Levin ---- - 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 index 913524d2e01..00000000000 --- a/queue-6.9/e1000e-move-force-smbus-near-the-end-of-enable_ulp-f.patch +++ /dev/null @@ -1,126 +0,0 @@ -From ffe25a9c84779d37061e34c3d8864b48b41397e2 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 28 May 2024 15:06:04 -0700 -Subject: e1000e: move force SMBUS near the end of enable_ulp function - -From: Hui Wang - -[ 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 -Acked-by: Vitaly Lifshits -Tested-by: Naama Meir -Reviewed-by: Simon Horman -Reviewed-by: Paul Menzel -Signed-off-by: Tony Nguyen -Tested-by: Zhang Rui -Signed-off-by: Jacob Keller -Link: https://lore.kernel.org/r/20240528-net-2024-05-28-intel-net-fixes-v1-1-dc8593d2bbc6@intel.com -Signed-off-by: Jakub Kicinski -Signed-off-by: Sasha Levin ---- - 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 index 41b61c1a8f1..00000000000 --- a/queue-6.9/nilfs2-make-superblock-data-array-index-computation-.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 5ca468e18e9074ae6ba779845a555fd869fffac1 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 30 Apr 2024 17:00:19 +0900 -Subject: nilfs2: make superblock data array index computation sparse friendly - -From: Ryusuke Konishi - -[ 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 -Cc: Bart Van Assche -Cc: Jens Axboe -Cc: kernel test robot -Signed-off-by: Andrew Morton -Signed-off-by: Sasha Levin ---- - 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 index 5f7b296bd4f..00000000000 --- a/queue-6.9/powerpc-uaccess-use-yz-asm-constraint-for-ld.patch +++ /dev/null @@ -1,64 +0,0 @@ -From d97895b6c6abbeef07703c35fe3a17a323bd1464 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 29 May 2024 22:30:29 +1000 -Subject: powerpc/uaccess: Use YZ asm constraint for ld - -From: Michael Ellerman - -[ 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 -Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au -Signed-off-by: Sasha Levin ---- - 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 index 45deec950c6..00000000000 --- a/queue-6.9/remove-call_-read-write-_iter-functions.patch +++ /dev/null @@ -1,205 +0,0 @@ -From a0c54672df7c28755fcd701c6490e9ea3cc08b49 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 28 Aug 2023 17:13:18 +0200 -Subject: remove call_{read,write}_iter() functions - -From: Miklos Szeredi - -[ 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 -Signed-off-by: Miklos Szeredi -Signed-off-by: Al Viro -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-6.9/series b/queue-6.9/series index 60916d71a7c..38af771ed18 100644 --- a/queue-6.9/series +++ b/queue-6.9/series @@ -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 -- 2.47.3