]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Apr 2025 14:53:52 +0000 (16:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Apr 2025 14:53:52 +0000 (16:53 +0200)
added patches:
crypto-kconfig-select-lib-generic-option.patch
crypto-lib-kconfig-hide-arch-options-from-user.patch
media-i2c-imx214-fix-uninitialized-variable-in-imx214_set_ctrl.patch
mips-cm-fix-warning-if-mips_cm-is-disabled.patch
net-phy-dp83822-fix-transmit-amplitude-if-config_of_mdio-not-defined.patch
nvme-fixup-scan-failure-for-non-ana-multipath-controllers.patch
objtool-ignore-end-of-section-jumps-for-kcov-gcov.patch
objtool-silence-more-kcov-warnings-part-2.patch
rust-kbuild-skip-remap-path-prefix-for-rustdoc.patch
ublk-don-t-fail-request-for-recovery-reissue-in-case-of-ubq-canceling.patch
usb-xhci-fix-short-packet-handling-rework-ignoring-errors.patch

12 files changed:
queue-6.14/crypto-kconfig-select-lib-generic-option.patch [new file with mode: 0644]
queue-6.14/crypto-lib-kconfig-hide-arch-options-from-user.patch [new file with mode: 0644]
queue-6.14/media-i2c-imx214-fix-uninitialized-variable-in-imx214_set_ctrl.patch [new file with mode: 0644]
queue-6.14/mips-cm-fix-warning-if-mips_cm-is-disabled.patch [new file with mode: 0644]
queue-6.14/net-phy-dp83822-fix-transmit-amplitude-if-config_of_mdio-not-defined.patch [new file with mode: 0644]
queue-6.14/nvme-fixup-scan-failure-for-non-ana-multipath-controllers.patch [new file with mode: 0644]
queue-6.14/objtool-ignore-end-of-section-jumps-for-kcov-gcov.patch [new file with mode: 0644]
queue-6.14/objtool-silence-more-kcov-warnings-part-2.patch [new file with mode: 0644]
queue-6.14/rust-kbuild-skip-remap-path-prefix-for-rustdoc.patch [new file with mode: 0644]
queue-6.14/series
queue-6.14/ublk-don-t-fail-request-for-recovery-reissue-in-case-of-ubq-canceling.patch [new file with mode: 0644]
queue-6.14/usb-xhci-fix-short-packet-handling-rework-ignoring-errors.patch [new file with mode: 0644]

diff --git a/queue-6.14/crypto-kconfig-select-lib-generic-option.patch b/queue-6.14/crypto-kconfig-select-lib-generic-option.patch
new file mode 100644 (file)
index 0000000..e6b571a
--- /dev/null
@@ -0,0 +1,49 @@
+From 98330b9a61506de7df0d1725122111909c157864 Mon Sep 17 00:00:00 2001
+From: Herbert Xu <herbert@gondor.apana.org.au>
+Date: Mon, 3 Mar 2025 11:09:06 +0800
+Subject: crypto: Kconfig - Select LIB generic option
+
+From: Herbert Xu <herbert@gondor.apana.org.au>
+
+commit 98330b9a61506de7df0d1725122111909c157864 upstream.
+
+Select the generic LIB options if the Crypto API algorithm is
+enabled.  Otherwise this may lead to a build failure as the Crypto
+API algorithm always uses the generic implementation.
+
+Fixes: 17ec3e71ba79 ("crypto: lib/Kconfig - Hide arch options from user")
+Reported-by: kernel test robot <lkp@intel.com>
+Closes: https://lore.kernel.org/oe-kbuild-all/202503022113.79uEtUuy-lkp@intel.com/
+Closes: https://lore.kernel.org/oe-kbuild-all/202503022115.9OOyDR5A-lkp@intel.com/
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ crypto/Kconfig |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/crypto/Kconfig
++++ b/crypto/Kconfig
+@@ -317,6 +317,7 @@ config CRYPTO_ECRDSA
+ config CRYPTO_CURVE25519
+       tristate "Curve25519"
+       select CRYPTO_KPP
++      select CRYPTO_LIB_CURVE25519_GENERIC
+       select CRYPTO_LIB_CURVE25519_INTERNAL
+       help
+         Curve25519 elliptic curve (RFC7748)
+@@ -615,6 +616,7 @@ config CRYPTO_ARC4
+ config CRYPTO_CHACHA20
+       tristate "ChaCha"
++      select CRYPTO_LIB_CHACHA_GENERIC
+       select CRYPTO_LIB_CHACHA_INTERNAL
+       select CRYPTO_SKCIPHER
+       help
+@@ -936,6 +938,7 @@ config CRYPTO_POLYVAL
+ config CRYPTO_POLY1305
+       tristate "Poly1305"
+       select CRYPTO_HASH
++      select CRYPTO_LIB_POLY1305_GENERIC
+       select CRYPTO_LIB_POLY1305_INTERNAL
+       help
+         Poly1305 authenticator algorithm (RFC7539)
diff --git a/queue-6.14/crypto-lib-kconfig-hide-arch-options-from-user.patch b/queue-6.14/crypto-lib-kconfig-hide-arch-options-from-user.patch
new file mode 100644 (file)
index 0000000..e9d1f33
--- /dev/null
@@ -0,0 +1,380 @@
+From 17ec3e71ba797cdb62164fea9532c81b60f47167 Mon Sep 17 00:00:00 2001
+From: Herbert Xu <herbert@gondor.apana.org.au>
+Date: Thu, 27 Feb 2025 15:48:39 +0800
+Subject: crypto: lib/Kconfig - Hide arch options from user
+
+From: Herbert Xu <herbert@gondor.apana.org.au>
+
+commit 17ec3e71ba797cdb62164fea9532c81b60f47167 upstream.
+
+The ARCH_MAY_HAVE patch missed arm64, mips and s390.  But it may
+also lead to arch options being enabled but ineffective because
+of modular/built-in conflicts.
+
+As the primary user of all these options wireguard is selecting
+the arch options anyway, make the same selections at the lib/crypto
+option level and hide the arch options from the user.
+
+Instead of selecting them centrally from lib/crypto, simply set
+the default of each arch option as suggested by Eric Biggers.
+
+Change the Crypto API generic algorithms to select the top-level
+lib/crypto options instead of the generic one as otherwise there
+is no way to enable the arch options (Eric Biggers).  Introduce a
+set of INTERNAL options to work around dependency cycles on the
+CONFIG_CRYPTO symbol.
+
+Fixes: 1047e21aecdf ("crypto: lib/Kconfig - Fix lib built-in failure when arch is modular")
+Reported-by: kernel test robot <lkp@intel.com>
+Reported-by: Arnd Bergmann <arnd@kernel.org>
+Closes: https://lore.kernel.org/oe-kbuild-all/202502232152.JC84YDLp-lkp@intel.com/
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/crypto/Kconfig     |   16 ++++++++++------
+ arch/arm64/crypto/Kconfig   |    6 ++++--
+ arch/mips/crypto/Kconfig    |    7 +++++--
+ arch/powerpc/crypto/Kconfig |   11 +++++++----
+ arch/riscv/crypto/Kconfig   |    1 -
+ arch/s390/crypto/Kconfig    |    3 ++-
+ arch/x86/crypto/Kconfig     |   17 +++++++++++------
+ crypto/Kconfig              |    6 +++---
+ lib/crypto/Kconfig          |   41 +++++++++++++++++++++--------------------
+ 9 files changed, 63 insertions(+), 45 deletions(-)
+
+--- a/arch/arm/crypto/Kconfig
++++ b/arch/arm/crypto/Kconfig
+@@ -3,10 +3,12 @@
+ menu "Accelerated Cryptographic Algorithms for CPU (arm)"
+ config CRYPTO_CURVE25519_NEON
+-      tristate "Public key crypto: Curve25519 (NEON)"
++      tristate
+       depends on KERNEL_MODE_NEON
++      select CRYPTO_KPP
+       select CRYPTO_LIB_CURVE25519_GENERIC
+-      select CRYPTO_ARCH_MAY_HAVE_LIB_CURVE25519
++      select CRYPTO_ARCH_HAVE_LIB_CURVE25519
++      default CRYPTO_LIB_CURVE25519_INTERNAL
+       help
+         Curve25519 algorithm
+@@ -45,9 +47,10 @@ config CRYPTO_NHPOLY1305_NEON
+         - NEON (Advanced SIMD) extensions
+ config CRYPTO_POLY1305_ARM
+-      tristate "Hash functions: Poly1305 (NEON)"
++      tristate
+       select CRYPTO_HASH
+-      select CRYPTO_ARCH_MAY_HAVE_LIB_POLY1305
++      select CRYPTO_ARCH_HAVE_LIB_POLY1305
++      default CRYPTO_LIB_POLY1305_INTERNAL
+       help
+         Poly1305 authenticator algorithm (RFC7539)
+@@ -212,9 +215,10 @@ config CRYPTO_AES_ARM_CE
+         - ARMv8 Crypto Extensions
+ config CRYPTO_CHACHA20_NEON
+-      tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (NEON)"
++      tristate
+       select CRYPTO_SKCIPHER
+-      select CRYPTO_ARCH_MAY_HAVE_LIB_CHACHA
++      select CRYPTO_ARCH_HAVE_LIB_CHACHA
++      default CRYPTO_LIB_CHACHA_INTERNAL
+       help
+         Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
+         stream cipher algorithms
+--- a/arch/arm64/crypto/Kconfig
++++ b/arch/arm64/crypto/Kconfig
+@@ -26,10 +26,11 @@ config CRYPTO_NHPOLY1305_NEON
+         - NEON (Advanced SIMD) extensions
+ config CRYPTO_POLY1305_NEON
+-      tristate "Hash functions: Poly1305 (NEON)"
++      tristate
+       depends on KERNEL_MODE_NEON
+       select CRYPTO_HASH
+       select CRYPTO_ARCH_HAVE_LIB_POLY1305
++      default CRYPTO_LIB_POLY1305_INTERNAL
+       help
+         Poly1305 authenticator algorithm (RFC7539)
+@@ -186,11 +187,12 @@ config CRYPTO_AES_ARM64_NEON_BLK
+         - NEON (Advanced SIMD) extensions
+ config CRYPTO_CHACHA20_NEON
+-      tristate "Ciphers: ChaCha (NEON)"
++      tristate
+       depends on KERNEL_MODE_NEON
+       select CRYPTO_SKCIPHER
+       select CRYPTO_LIB_CHACHA_GENERIC
+       select CRYPTO_ARCH_HAVE_LIB_CHACHA
++      default CRYPTO_LIB_CHACHA_INTERNAL
+       help
+         Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
+         stream cipher algorithms
+--- a/arch/mips/crypto/Kconfig
++++ b/arch/mips/crypto/Kconfig
+@@ -3,9 +3,11 @@
+ menu "Accelerated Cryptographic Algorithms for CPU (mips)"
+ config CRYPTO_POLY1305_MIPS
+-      tristate "Hash functions: Poly1305"
++      tristate
+       depends on MIPS
++      select CRYPTO_HASH
+       select CRYPTO_ARCH_HAVE_LIB_POLY1305
++      default CRYPTO_LIB_POLY1305_INTERNAL
+       help
+         Poly1305 authenticator algorithm (RFC7539)
+@@ -52,10 +54,11 @@ config CRYPTO_SHA512_OCTEON
+         Architecture: mips OCTEON using crypto instructions, when available
+ config CRYPTO_CHACHA_MIPS
+-      tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (MIPS32r2)"
++      tristate
+       depends on CPU_MIPS32_R2
+       select CRYPTO_SKCIPHER
+       select CRYPTO_ARCH_HAVE_LIB_CHACHA
++      default CRYPTO_LIB_CHACHA_INTERNAL
+       help
+         Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
+         stream cipher algorithms
+--- a/arch/powerpc/crypto/Kconfig
++++ b/arch/powerpc/crypto/Kconfig
+@@ -3,10 +3,12 @@
+ menu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
+ config CRYPTO_CURVE25519_PPC64
+-      tristate "Public key crypto: Curve25519 (PowerPC64)"
++      tristate
+       depends on PPC64 && CPU_LITTLE_ENDIAN
++      select CRYPTO_KPP
+       select CRYPTO_LIB_CURVE25519_GENERIC
+-      select CRYPTO_ARCH_MAY_HAVE_LIB_CURVE25519
++      select CRYPTO_ARCH_HAVE_LIB_CURVE25519
++      default CRYPTO_LIB_CURVE25519_INTERNAL
+       help
+         Curve25519 algorithm
+@@ -91,11 +93,12 @@ config CRYPTO_AES_GCM_P10
+         later CPU. This module supports stitched acceleration for AES/GCM.
+ config CRYPTO_CHACHA20_P10
+-      tristate "Ciphers: ChaCha20, XChacha20, XChacha12 (P10 or later)"
++      tristate
+       depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
+       select CRYPTO_SKCIPHER
+       select CRYPTO_LIB_CHACHA_GENERIC
+-      select CRYPTO_ARCH_MAY_HAVE_LIB_CHACHA
++      select CRYPTO_ARCH_HAVE_LIB_CHACHA
++      default CRYPTO_LIB_CHACHA_INTERNAL
+       help
+         Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
+         stream cipher algorithms
+--- a/arch/riscv/crypto/Kconfig
++++ b/arch/riscv/crypto/Kconfig
+@@ -22,7 +22,6 @@ config CRYPTO_CHACHA_RISCV64
+       tristate "Ciphers: ChaCha"
+       depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
+       select CRYPTO_SKCIPHER
+-      select CRYPTO_LIB_CHACHA_GENERIC
+       help
+         Length-preserving ciphers: ChaCha20 stream cipher algorithm
+--- a/arch/s390/crypto/Kconfig
++++ b/arch/s390/crypto/Kconfig
+@@ -108,11 +108,12 @@ config CRYPTO_DES_S390
+         As of z196 the CTR mode is hardware accelerated.
+ config CRYPTO_CHACHA_S390
+-      tristate "Ciphers: ChaCha20"
++      tristate
+       depends on S390
+       select CRYPTO_SKCIPHER
+       select CRYPTO_LIB_CHACHA_GENERIC
+       select CRYPTO_ARCH_HAVE_LIB_CHACHA
++      default CRYPTO_LIB_CHACHA_INTERNAL
+       help
+         Length-preserving cipher: ChaCha20 stream cipher (RFC 7539)
+--- a/arch/x86/crypto/Kconfig
++++ b/arch/x86/crypto/Kconfig
+@@ -3,10 +3,12 @@
+ menu "Accelerated Cryptographic Algorithms for CPU (x86)"
+ config CRYPTO_CURVE25519_X86
+-      tristate "Public key crypto: Curve25519 (ADX)"
++      tristate
+       depends on X86 && 64BIT
++      select CRYPTO_KPP
+       select CRYPTO_LIB_CURVE25519_GENERIC
+-      select CRYPTO_ARCH_MAY_HAVE_LIB_CURVE25519
++      select CRYPTO_ARCH_HAVE_LIB_CURVE25519
++      default CRYPTO_LIB_CURVE25519_INTERNAL
+       help
+         Curve25519 algorithm
+@@ -348,11 +350,12 @@ config CRYPTO_ARIA_GFNI_AVX512_X86_64
+         Processes 64 blocks in parallel.
+ config CRYPTO_CHACHA20_X86_64
+-      tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
++      tristate
+       depends on X86 && 64BIT
+       select CRYPTO_SKCIPHER
+       select CRYPTO_LIB_CHACHA_GENERIC
+-      select CRYPTO_ARCH_MAY_HAVE_LIB_CHACHA
++      select CRYPTO_ARCH_HAVE_LIB_CHACHA
++      default CRYPTO_LIB_CHACHA_INTERNAL
+       help
+         Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
+         stream cipher algorithms
+@@ -417,10 +420,12 @@ config CRYPTO_POLYVAL_CLMUL_NI
+         - CLMUL-NI (carry-less multiplication new instructions)
+ config CRYPTO_POLY1305_X86_64
+-      tristate "Hash functions: Poly1305 (SSE2/AVX2)"
++      tristate
+       depends on X86 && 64BIT
++      select CRYPTO_HASH
+       select CRYPTO_LIB_POLY1305_GENERIC
+-      select CRYPTO_ARCH_MAY_HAVE_LIB_POLY1305
++      select CRYPTO_ARCH_HAVE_LIB_POLY1305
++      default CRYPTO_LIB_POLY1305_INTERNAL
+       help
+         Poly1305 authenticator algorithm (RFC7539)
+--- a/crypto/Kconfig
++++ b/crypto/Kconfig
+@@ -317,7 +317,7 @@ config CRYPTO_ECRDSA
+ config CRYPTO_CURVE25519
+       tristate "Curve25519"
+       select CRYPTO_KPP
+-      select CRYPTO_LIB_CURVE25519_GENERIC
++      select CRYPTO_LIB_CURVE25519_INTERNAL
+       help
+         Curve25519 elliptic curve (RFC7748)
+@@ -615,7 +615,7 @@ config CRYPTO_ARC4
+ config CRYPTO_CHACHA20
+       tristate "ChaCha"
+-      select CRYPTO_LIB_CHACHA_GENERIC
++      select CRYPTO_LIB_CHACHA_INTERNAL
+       select CRYPTO_SKCIPHER
+       help
+         The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms
+@@ -936,7 +936,7 @@ config CRYPTO_POLYVAL
+ config CRYPTO_POLY1305
+       tristate "Poly1305"
+       select CRYPTO_HASH
+-      select CRYPTO_LIB_POLY1305_GENERIC
++      select CRYPTO_LIB_POLY1305_INTERNAL
+       help
+         Poly1305 authenticator algorithm (RFC7539)
+--- a/lib/crypto/Kconfig
++++ b/lib/crypto/Kconfig
+@@ -48,11 +48,6 @@ config CRYPTO_ARCH_HAVE_LIB_CHACHA
+         accelerated implementation of the ChaCha library interface,
+         either builtin or as a module.
+-config CRYPTO_ARCH_MAY_HAVE_LIB_CHACHA
+-      tristate
+-      select CRYPTO_ARCH_HAVE_LIB_CHACHA if CRYPTO_LIB_CHACHA=m
+-      select CRYPTO_ARCH_HAVE_LIB_CHACHA if CRYPTO_ARCH_MAY_HAVE_LIB_CHACHA=y
+-
+ config CRYPTO_LIB_CHACHA_GENERIC
+       tristate
+       select CRYPTO_LIB_UTILS
+@@ -63,9 +58,14 @@ config CRYPTO_LIB_CHACHA_GENERIC
+         implementation is enabled, this implementation serves the users
+         of CRYPTO_LIB_CHACHA.
++config CRYPTO_LIB_CHACHA_INTERNAL
++      tristate
++      select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
++
+ config CRYPTO_LIB_CHACHA
+       tristate "ChaCha library interface"
+-      select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
++      select CRYPTO
++      select CRYPTO_LIB_CHACHA_INTERNAL
+       help
+         Enable the ChaCha library interface. This interface may be fulfilled
+         by either the generic implementation or an arch-specific one, if one
+@@ -78,13 +78,9 @@ config CRYPTO_ARCH_HAVE_LIB_CURVE25519
+         accelerated implementation of the Curve25519 library interface,
+         either builtin or as a module.
+-config CRYPTO_ARCH_MAY_HAVE_LIB_CURVE25519
+-      tristate
+-      select CRYPTO_ARCH_HAVE_LIB_CURVE25519 if CRYPTO_LIB_CURVE25519=m
+-      select CRYPTO_ARCH_HAVE_LIB_CURVE25519 if CRYPTO_ARCH_MAY_HAVE_LIB_CURVE25519=y
+-
+ config CRYPTO_LIB_CURVE25519_GENERIC
+       tristate
++      select CRYPTO_LIB_UTILS
+       help
+         This symbol can be depended upon by arch implementations of the
+         Curve25519 library interface that require the generic code as a
+@@ -92,10 +88,14 @@ config CRYPTO_LIB_CURVE25519_GENERIC
+         implementation is enabled, this implementation serves the users
+         of CRYPTO_LIB_CURVE25519.
++config CRYPTO_LIB_CURVE25519_INTERNAL
++      tristate
++      select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
++
+ config CRYPTO_LIB_CURVE25519
+       tristate "Curve25519 scalar multiplication library"
+-      select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
+-      select CRYPTO_LIB_UTILS
++      select CRYPTO
++      select CRYPTO_LIB_CURVE25519_INTERNAL
+       help
+         Enable the Curve25519 library interface. This interface may be
+         fulfilled by either the generic implementation or an arch-specific
+@@ -118,11 +118,6 @@ config CRYPTO_ARCH_HAVE_LIB_POLY1305
+         accelerated implementation of the Poly1305 library interface,
+         either builtin or as a module.
+-config CRYPTO_ARCH_MAY_HAVE_LIB_POLY1305
+-      tristate
+-      select CRYPTO_ARCH_HAVE_LIB_POLY1305 if CRYPTO_LIB_POLY1305=m
+-      select CRYPTO_ARCH_HAVE_LIB_POLY1305 if CRYPTO_ARCH_MAY_HAVE_LIB_POLY1305=y
+-
+ config CRYPTO_LIB_POLY1305_GENERIC
+       tristate
+       help
+@@ -132,9 +127,14 @@ config CRYPTO_LIB_POLY1305_GENERIC
+         implementation is enabled, this implementation serves the users
+         of CRYPTO_LIB_POLY1305.
++config CRYPTO_LIB_POLY1305_INTERNAL
++      tristate
++      select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
++
+ config CRYPTO_LIB_POLY1305
+       tristate "Poly1305 library interface"
+-      select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
++      select CRYPTO
++      select CRYPTO_LIB_POLY1305_INTERNAL
+       help
+         Enable the Poly1305 library interface. This interface may be fulfilled
+         by either the generic implementation or an arch-specific one, if one
+@@ -142,9 +142,10 @@ config CRYPTO_LIB_POLY1305
+ config CRYPTO_LIB_CHACHA20POLY1305
+       tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
+-      depends on CRYPTO
++      select CRYPTO
+       select CRYPTO_LIB_CHACHA
+       select CRYPTO_LIB_POLY1305
++      select CRYPTO_LIB_UTILS
+       select CRYPTO_ALGAPI
+ config CRYPTO_LIB_SHA1
diff --git a/queue-6.14/media-i2c-imx214-fix-uninitialized-variable-in-imx214_set_ctrl.patch b/queue-6.14/media-i2c-imx214-fix-uninitialized-variable-in-imx214_set_ctrl.patch
new file mode 100644 (file)
index 0000000..8e7f612
--- /dev/null
@@ -0,0 +1,36 @@
+From 38985a25682c66d1a7599b0e95ceeb9c7ba89f84 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@linaro.org>
+Date: Tue, 18 Feb 2025 16:05:50 +0300
+Subject: media: i2c: imx214: Fix uninitialized variable in imx214_set_ctrl()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Dan Carpenter <dan.carpenter@linaro.org>
+
+commit 38985a25682c66d1a7599b0e95ceeb9c7ba89f84 upstream.
+
+You can't pass uninitialized "ret" variables to cci_write().  It has to
+start as zero.
+
+Fixes: 4f0aeba4f155 ("media: i2c: imx214: Convert to CCI register access helpers")
+Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
+Reviewed-by: André Apitzsch <git@apitzsch.eu>
+Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
+Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/media/i2c/imx214.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/media/i2c/imx214.c
++++ b/drivers/media/i2c/imx214.c
+@@ -840,7 +840,7 @@ static int imx214_s_stream(struct v4l2_s
+ {
+       struct imx214 *imx214 = to_imx214(subdev);
+       struct v4l2_subdev_state *state;
+-      int ret;
++      int ret = 0;
+       if (enable) {
+               ret = pm_runtime_resume_and_get(imx214->dev);
diff --git a/queue-6.14/mips-cm-fix-warning-if-mips_cm-is-disabled.patch b/queue-6.14/mips-cm-fix-warning-if-mips_cm-is-disabled.patch
new file mode 100644 (file)
index 0000000..e273d85
--- /dev/null
@@ -0,0 +1,38 @@
+From b73c3ccdca95c237750c981054997c71d33e09d7 Mon Sep 17 00:00:00 2001
+From: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
+Date: Fri, 28 Feb 2025 15:37:02 +0100
+Subject: MIPS: cm: Fix warning if MIPS_CM is disabled
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
+
+commit b73c3ccdca95c237750c981054997c71d33e09d7 upstream.
+
+Commit e27fbe16af5c ("MIPS: cm: Detect CM quirks from device tree")
+introduced
+
+arch/mips/include/asm/mips-cm.h:119:13: error: ‘mips_cm_update_property’
+       defined but not used [-Werror=unused-function]
+
+Fix this by making empty function implementation inline
+
+Fixes: e27fbe16af5c ("MIPS: cm: Detect CM quirks from device tree")
+Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/mips/include/asm/mips-cm.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/mips/include/asm/mips-cm.h
++++ b/arch/mips/include/asm/mips-cm.h
+@@ -116,7 +116,7 @@ static inline bool mips_cm_present(void)
+ #ifdef CONFIG_MIPS_CM
+ extern void mips_cm_update_property(void);
+ #else
+-static void mips_cm_update_property(void) {}
++static inline void mips_cm_update_property(void) {}
+ #endif
+ /**
diff --git a/queue-6.14/net-phy-dp83822-fix-transmit-amplitude-if-config_of_mdio-not-defined.patch b/queue-6.14/net-phy-dp83822-fix-transmit-amplitude-if-config_of_mdio-not-defined.patch
new file mode 100644 (file)
index 0000000..51ccef9
--- /dev/null
@@ -0,0 +1,42 @@
+From 8fa649fd7d3009769c7289d0c31c319b72bc42c4 Mon Sep 17 00:00:00 2001
+From: Dimitri Fedrau <dimitri.fedrau@liebherr.com>
+Date: Mon, 17 Mar 2025 08:48:34 +0100
+Subject: net: phy: dp83822: fix transmit amplitude if CONFIG_OF_MDIO not defined
+
+From: Dimitri Fedrau <dimitri.fedrau@liebherr.com>
+
+commit 8fa649fd7d3009769c7289d0c31c319b72bc42c4 upstream.
+
+When CONFIG_OF_MDIO is not defined the index for selecting the transmit
+amplitude voltage for 100BASE-TX is set to 0, but it should be -1, if there
+is no need to modify the transmit amplitude voltage. Move initialization of
+the index from dp83822_of_init to dp8382x_probe.
+
+Fixes: 4f3735e82d8a ("net: phy: dp83822: Add support for changing the transmit amplitude voltage")
+Reviewed-by: Gerhard Engleder <gerhard@engleder-embedded.com>
+Signed-off-by: Dimitri Fedrau <dimitri.fedrau@liebherr.com>
+Link: https://patch.msgid.link/20250317-dp83822-fix-transceiver-mdio-v2-1-fb09454099a4@liebherr.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/phy/dp83822.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/phy/dp83822.c
++++ b/drivers/net/phy/dp83822.c
+@@ -833,7 +833,6 @@ static int dp83822_of_init(struct phy_de
+               dp83822->set_gpio2_clk_out = true;
+       }
+-      dp83822->tx_amplitude_100base_tx_index = -1;
+       ret = phy_get_tx_amplitude_gain(phydev, dev,
+                                       ETHTOOL_LINK_MODE_100baseT_Full_BIT,
+                                       &val);
+@@ -931,6 +930,7 @@ static int dp8382x_probe(struct phy_devi
+       if (!dp83822)
+               return -ENOMEM;
++      dp83822->tx_amplitude_100base_tx_index = -1;
+       phydev->priv = dp83822;
+       return 0;
diff --git a/queue-6.14/nvme-fixup-scan-failure-for-non-ana-multipath-controllers.patch b/queue-6.14/nvme-fixup-scan-failure-for-non-ana-multipath-controllers.patch
new file mode 100644 (file)
index 0000000..0375076
--- /dev/null
@@ -0,0 +1,36 @@
+From 26d7fb4fd4ca1180e2fa96587dea544563b4962a Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare@kernel.org>
+Date: Mon, 14 Apr 2025 14:05:09 +0200
+Subject: nvme: fixup scan failure for non-ANA multipath controllers
+
+From: Hannes Reinecke <hare@kernel.org>
+
+commit 26d7fb4fd4ca1180e2fa96587dea544563b4962a upstream.
+
+Commit 62baf70c3274 caused the ANA log page to be re-read, even on
+controllers that do not support ANA.  While this should generally
+harmless, some controllers hang on the unsupported log page and
+never finish probing.
+
+Fixes: 62baf70c3274 ("nvme: re-read ANA log page after ns scan completes")
+Signed-off-by: Hannes Reinecke <hare@kernel.org>
+Tested-by: Srikanth Aithal <sraithal@amd.com>
+[hch: more detailed commit message]
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/nvme/host/core.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/nvme/host/core.c
++++ b/drivers/nvme/host/core.c
+@@ -4297,7 +4297,7 @@ static void nvme_scan_work(struct work_s
+       if (test_bit(NVME_AER_NOTICE_NS_CHANGED, &ctrl->events))
+               nvme_queue_scan(ctrl);
+ #ifdef CONFIG_NVME_MULTIPATH
+-      else
++      else if (ctrl->ana_log_buf)
+               /* Re-read the ANA log page to not miss updates */
+               queue_work(nvme_wq, &ctrl->ana_work);
+ #endif
diff --git a/queue-6.14/objtool-ignore-end-of-section-jumps-for-kcov-gcov.patch b/queue-6.14/objtool-ignore-end-of-section-jumps-for-kcov-gcov.patch
new file mode 100644 (file)
index 0000000..c17acf3
--- /dev/null
@@ -0,0 +1,102 @@
+From 0d7597749f5a3ac67851d3836635d084df15fb66 Mon Sep 17 00:00:00 2001
+From: Josh Poimboeuf <jpoimboe@kernel.org>
+Date: Mon, 31 Mar 2025 21:26:37 -0700
+Subject: objtool: Ignore end-of-section jumps for KCOV/GCOV
+
+From: Josh Poimboeuf <jpoimboe@kernel.org>
+
+commit 0d7597749f5a3ac67851d3836635d084df15fb66 upstream.
+
+When KCOV or GCOV is enabled, dead code can be left behind, in which
+case objtool silences unreachable and undefined behavior (fallthrough)
+warnings.
+
+Fallthrough warnings, and their variant "end of section" warnings, were
+silenced with the following commit:
+
+  6b023c784204 ("objtool: Silence more KCOV warnings")
+
+Another variant of a fallthrough warning is a jump to the end of a
+function.  If that function happens to be at the end of a section, the
+jump destination doesn't actually exist.
+
+Normally that would be a fatal objtool error, but for KCOV/GCOV it's
+just another undefined behavior fallthrough.  Silence it like the
+others.
+
+Fixes the following warning:
+
+  drivers/iommu/dma-iommu.o: warning: objtool: iommu_dma_sw_msi+0x92: can't find jump dest instruction at .text+0x54d5
+
+Fixes: 6b023c784204 ("objtool: Silence more KCOV warnings")
+Reported-by: Randy Dunlap <rdunlap@infradead.org>
+Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Link: https://lore.kernel.org/r/08fbe7d7e1e20612206f1df253077b94f178d93e.1743481539.git.jpoimboe@kernel.org
+Closes: https://lore.kernel.org/314f8809-cd59-479b-97d7-49356bf1c8d1@infradead.org/
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/objtool/check.c |   22 ++++++++++++++++------
+ 1 file changed, 16 insertions(+), 6 deletions(-)
+
+--- a/tools/objtool/check.c
++++ b/tools/objtool/check.c
+@@ -1482,6 +1482,8 @@ static int add_jump_destinations(struct
+       unsigned long dest_off;
+       for_each_insn(file, insn) {
++              struct symbol *func = insn_func(insn);
++
+               if (insn->jump_dest) {
+                       /*
+                        * handle_group_alt() may have previously set
+@@ -1505,7 +1507,7 @@ static int add_jump_destinations(struct
+               } else if (reloc->sym->return_thunk) {
+                       add_return_call(file, insn, true);
+                       continue;
+-              } else if (insn_func(insn)) {
++              } else if (func) {
+                       /*
+                        * External sibling call or internal sibling call with
+                        * STT_FUNC reloc.
+@@ -1538,6 +1540,15 @@ static int add_jump_destinations(struct
+                               continue;
+                       }
++                      /*
++                       * GCOV/KCOV dead code can jump to the end of the
++                       * function/section.
++                       */
++                      if (file->ignore_unreachables && func &&
++                          dest_sec == insn->sec &&
++                          dest_off == func->offset + func->len)
++                              continue;
++
+                       WARN_INSN(insn, "can't find jump dest instruction at %s+0x%lx",
+                                 dest_sec->name, dest_off);
+                       return -1;
+@@ -1562,8 +1573,7 @@ static int add_jump_destinations(struct
+               /*
+                * Cross-function jump.
+                */
+-              if (insn_func(insn) && insn_func(jump_dest) &&
+-                  insn_func(insn) != insn_func(jump_dest)) {
++              if (func && insn_func(jump_dest) && func != insn_func(jump_dest)) {
+                       /*
+                        * For GCC 8+, create parent/child links for any cold
+@@ -1580,10 +1590,10 @@ static int add_jump_destinations(struct
+                        * case where the parent function's only reference to a
+                        * subfunction is through a jump table.
+                        */
+-                      if (!strstr(insn_func(insn)->name, ".cold") &&
++                      if (!strstr(func->name, ".cold") &&
+                           strstr(insn_func(jump_dest)->name, ".cold")) {
+-                              insn_func(insn)->cfunc = insn_func(jump_dest);
+-                              insn_func(jump_dest)->pfunc = insn_func(insn);
++                              func->cfunc = insn_func(jump_dest);
++                              insn_func(jump_dest)->pfunc = func;
+                       }
+               }
diff --git a/queue-6.14/objtool-silence-more-kcov-warnings-part-2.patch b/queue-6.14/objtool-silence-more-kcov-warnings-part-2.patch
new file mode 100644 (file)
index 0000000..54dda4b
--- /dev/null
@@ -0,0 +1,46 @@
+From 55c78035a1a8dfb05f1472018ce2a651701adb7d Mon Sep 17 00:00:00 2001
+From: Josh Poimboeuf <jpoimboe@kernel.org>
+Date: Mon, 31 Mar 2025 21:26:36 -0700
+Subject: objtool: Silence more KCOV warnings, part 2
+
+From: Josh Poimboeuf <jpoimboe@kernel.org>
+
+commit 55c78035a1a8dfb05f1472018ce2a651701adb7d upstream.
+
+Similar to GCOV, KCOV can leave behind dead code and undefined behavior.
+Warnings related to those should be ignored.
+
+The previous commit:
+
+  6b023c784204 ("objtool: Silence more KCOV warnings")
+
+... only did so for CONFIG_CGOV_KERNEL.  Also do it for CONFIG_KCOV, but
+for real this time.
+
+Fixes the following warning:
+
+  vmlinux.o: warning: objtool: synaptics_report_mt_data: unexpected end of section .text.synaptics_report_mt_data
+
+Fixes: 6b023c784204 ("objtool: Silence more KCOV warnings")
+Reported-by: kernel test robot <lkp@intel.com>
+Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Link: https://lore.kernel.org/r/a44ba16e194bcbc52c1cef3d3cd9051a62622723.1743481539.git.jpoimboe@kernel.org
+Closes: https://lore.kernel.org/oe-kbuild-all/202503282236.UhfRsF3B-lkp@intel.com/
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ scripts/Makefile.lib |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -275,7 +275,7 @@ objtool-args-$(CONFIG_MITIGATION_SLS)
+ objtool-args-$(CONFIG_STACK_VALIDATION)                       += --stackval
+ objtool-args-$(CONFIG_HAVE_STATIC_CALL_INLINE)                += --static-call
+ objtool-args-$(CONFIG_HAVE_UACCESS_VALIDATION)                += --uaccess
+-objtool-args-$(CONFIG_GCOV_KERNEL)                    += --no-unreachable
++objtool-args-$(or $(CONFIG_GCOV_KERNEL),$(CONFIG_KCOV))       += --no-unreachable
+ objtool-args-$(CONFIG_PREFIX_SYMBOLS)                 += --prefix=$(CONFIG_FUNCTION_PADDING_BYTES)
+ objtool-args = $(objtool-args-y)                                      \
diff --git a/queue-6.14/rust-kbuild-skip-remap-path-prefix-for-rustdoc.patch b/queue-6.14/rust-kbuild-skip-remap-path-prefix-for-rustdoc.patch
new file mode 100644 (file)
index 0000000..cad190c
--- /dev/null
@@ -0,0 +1,65 @@
+From 2c8725c1dca3de043670b38592b1b43105322496 Mon Sep 17 00:00:00 2001
+From: Miguel Ojeda <ojeda@kernel.org>
+Date: Sat, 15 Mar 2025 20:40:45 +0100
+Subject: rust: kbuild: skip `--remap-path-prefix` for `rustdoc`
+
+From: Miguel Ojeda <ojeda@kernel.org>
+
+commit 2c8725c1dca3de043670b38592b1b43105322496 upstream.
+
+`rustdoc` only recognizes `--remap-path-prefix` starting with
+Rust 1.81.0, which is later than on minimum, so we cannot pass it
+unconditionally. Otherwise, we get:
+
+    error: Unrecognized option: 'remap-path-prefix'
+
+Note that `rustc` (the compiler) does recognize the flag since a long
+time ago (1.26.0).
+
+Moreover, `rustdoc` since Rust 1.82.0 ICEs in out-of-tree builds when
+using `--remap-path-prefix`. The issue has been reduced and reported
+upstream [1].
+
+Thus workaround both issues by simply skipping the flag when generating
+the docs -- it is not critical there anyway.
+
+The ICE does not reproduce under `--test`, but we still need to skip
+the flag as well for `RUSTDOC TK` since it is not recognized.
+
+Fixes: dbdffaf50ff9 ("kbuild, rust: use -fremap-path-prefix to make paths relative")
+Link: https://github.com/rust-lang/rust/issues/138520 [1]
+Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
+Reviewed-by: Tamir Duberstein <tamird@gmail.com>
+Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ rust/Makefile |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/rust/Makefile
++++ b/rust/Makefile
+@@ -57,10 +57,14 @@ endif
+ core-cfgs = \
+     --cfg no_fp_fmt_parse
++# `rustc` recognizes `--remap-path-prefix` since 1.26.0, but `rustdoc` only
++# since Rust 1.81.0. Moreover, `rustdoc` ICEs on out-of-tree builds since Rust
++# 1.82.0 (https://github.com/rust-lang/rust/issues/138520). Thus workaround both
++# issues skipping the flag. The former also applies to `RUSTDOC TK`.
+ quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $<
+       cmd_rustdoc = \
+       OBJTREE=$(abspath $(objtree)) \
+-      $(RUSTDOC) $(filter-out $(skip_flags),$(if $(rustdoc_host),$(rust_common_flags),$(rust_flags))) \
++      $(RUSTDOC) $(filter-out $(skip_flags) --remap-path-prefix=%,$(if $(rustdoc_host),$(rust_common_flags),$(rust_flags))) \
+               $(rustc_target_flags) -L$(objtree)/$(obj) \
+               -Zunstable-options --generate-link-to-definition \
+               --output $(rustdoc_output) \
+@@ -171,7 +175,7 @@ quiet_cmd_rustdoc_test_kernel = RUSTDOC
+       rm -rf $(objtree)/$(obj)/test/doctests/kernel; \
+       mkdir -p $(objtree)/$(obj)/test/doctests/kernel; \
+       OBJTREE=$(abspath $(objtree)) \
+-      $(RUSTDOC) --test $(rust_flags) \
++      $(RUSTDOC) --test $(filter-out --remap-path-prefix=%,$(rust_flags)) \
+               -L$(objtree)/$(obj) --extern ffi --extern kernel \
+               --extern build_error --extern macros \
+               --extern bindings --extern uapi \
index 18a6d2704e264cceb956ff2631576ff5606302c5..2fa013a8fff6bdea9db7110d60ec95ce23b35210 100644 (file)
@@ -298,3 +298,14 @@ driver-core-introduce-device_set_driver-helper.patch
 driver-core-fix-potential-null-pointer-dereference-in-dev_uevent.patch
 vmxnet3-fix-malformed-packet-sizing-in-vmxnet3_process_xdp.patch
 comedi-jr3_pci-fix-synchronous-deletion-of-timer.patch
+crypto-lib-kconfig-hide-arch-options-from-user.patch
+media-i2c-imx214-fix-uninitialized-variable-in-imx214_set_ctrl.patch
+mips-cm-fix-warning-if-mips_cm-is-disabled.patch
+net-phy-dp83822-fix-transmit-amplitude-if-config_of_mdio-not-defined.patch
+rust-kbuild-skip-remap-path-prefix-for-rustdoc.patch
+ublk-don-t-fail-request-for-recovery-reissue-in-case-of-ubq-canceling.patch
+nvme-fixup-scan-failure-for-non-ana-multipath-controllers.patch
+usb-xhci-fix-short-packet-handling-rework-ignoring-errors.patch
+objtool-ignore-end-of-section-jumps-for-kcov-gcov.patch
+objtool-silence-more-kcov-warnings-part-2.patch
+crypto-kconfig-select-lib-generic-option.patch
diff --git a/queue-6.14/ublk-don-t-fail-request-for-recovery-reissue-in-case-of-ubq-canceling.patch b/queue-6.14/ublk-don-t-fail-request-for-recovery-reissue-in-case-of-ubq-canceling.patch
new file mode 100644 (file)
index 0000000..aa2c874
--- /dev/null
@@ -0,0 +1,70 @@
+From 18461f2a02be04f8bbbe3b37fecfc702e3fa5bc2 Mon Sep 17 00:00:00 2001
+From: Ming Lei <ming.lei@redhat.com>
+Date: Wed, 9 Apr 2025 09:14:42 +0800
+Subject: ublk: don't fail request for recovery & reissue in case of ubq->canceling
+
+From: Ming Lei <ming.lei@redhat.com>
+
+commit 18461f2a02be04f8bbbe3b37fecfc702e3fa5bc2 upstream.
+
+ubq->canceling is set with request queue quiesced when io_uring context is
+exiting. USER_RECOVERY or !RECOVERY_FAIL_IO requires request to be re-queued
+and re-dispatch after device is recovered.
+
+However commit d796cea7b9f3 ("ublk: implement ->queue_rqs()") still may fail
+any request in case of ubq->canceling, this way breaks USER_RECOVERY or
+!RECOVERY_FAIL_IO.
+
+Fix it by calling __ublk_abort_rq() in case of ubq->canceling.
+
+Reviewed-by: Uday Shankar <ushankar@purestorage.com>
+Reported-by: Uday Shankar <ushankar@purestorage.com>
+Closes: https://lore.kernel.org/linux-block/Z%2FQkkTRHfRxtN%2FmB@dev-ushankar.dev.purestorage.com/
+Fixes: d796cea7b9f3 ("ublk: implement ->queue_rqs()")
+Signed-off-by: Ming Lei <ming.lei@redhat.com>
+Link: https://lore.kernel.org/r/20250409011444.2142010-3-ming.lei@redhat.com
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/block/ublk_drv.c |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/drivers/block/ublk_drv.c
++++ b/drivers/block/ublk_drv.c
+@@ -1336,7 +1336,8 @@ static enum blk_eh_timer_return ublk_tim
+       return BLK_EH_RESET_TIMER;
+ }
+-static blk_status_t ublk_prep_req(struct ublk_queue *ubq, struct request *rq)
++static blk_status_t ublk_prep_req(struct ublk_queue *ubq, struct request *rq,
++                                bool check_cancel)
+ {
+       blk_status_t res;
+@@ -1355,7 +1356,7 @@ static blk_status_t ublk_prep_req(struct
+       if (ublk_nosrv_should_queue_io(ubq) && unlikely(ubq->force_abort))
+               return BLK_STS_IOERR;
+-      if (unlikely(ubq->canceling))
++      if (check_cancel && unlikely(ubq->canceling))
+               return BLK_STS_IOERR;
+       /* fill iod to slot in io cmd buffer */
+@@ -1374,7 +1375,7 @@ static blk_status_t ublk_queue_rq(struct
+       struct request *rq = bd->rq;
+       blk_status_t res;
+-      res = ublk_prep_req(ubq, rq);
++      res = ublk_prep_req(ubq, rq, false);
+       if (res != BLK_STS_OK)
+               return res;
+@@ -1406,7 +1407,7 @@ static void ublk_queue_rqs(struct rq_lis
+                       ublk_queue_cmd_list(ubq, &submit_list);
+               ubq = this_q;
+-              if (ublk_prep_req(ubq, req) == BLK_STS_OK)
++              if (ublk_prep_req(ubq, req, true) == BLK_STS_OK)
+                       rq_list_add_tail(&submit_list, req);
+               else
+                       rq_list_add_tail(&requeue_list, req);
diff --git a/queue-6.14/usb-xhci-fix-short-packet-handling-rework-ignoring-errors.patch b/queue-6.14/usb-xhci-fix-short-packet-handling-rework-ignoring-errors.patch
new file mode 100644 (file)
index 0000000..b98334b
--- /dev/null
@@ -0,0 +1,56 @@
+From 9e3a28793d2fde7a709e814d2504652eaba6ae98 Mon Sep 17 00:00:00 2001
+From: Michal Pecio <michal.pecio@gmail.com>
+Date: Thu, 10 Apr 2025 18:18:25 +0300
+Subject: usb: xhci: Fix Short Packet handling rework ignoring errors
+
+From: Michal Pecio <michal.pecio@gmail.com>
+
+commit 9e3a28793d2fde7a709e814d2504652eaba6ae98 upstream.
+
+A Short Packet event before the last TRB of a TD is followed by another
+event on the final TRB on spec-compliant HCs, which is most of them.
+
+A 'last_td_was_short' flag was added to know if a TD has just completed
+as Short Packet and another event is to come. The flag was cleared after
+seeing the event (unless no TDs are pending, but that's a separate bug)
+or seeing a new TD complete as something other than Short Packet.
+
+A rework replaced the flag with an 'old_trb_comp_code' variable. When
+an event doesn't match the pending TD and the previous event was Short
+Packet, the new event is silently ignored.
+
+To preserve old behavior, 'old_trb_comp_code' should be cleared at this
+point, but instead it is being set to current comp code, which is often
+Short Packet again. This can cause more events to be silently ignored,
+even though they are no longer connected with the old TD that completed
+short and indicate a serious problem with the driver or the xHC.
+
+Common device classes like UAC in async mode, UVC, serial or the UAS
+status pipe complete as Short Packet routinely and could be affected.
+
+Clear 'old_trb_comp_code' to zero, which is an invalid completion code
+and the same value the variable starts with. This restores original
+behavior on Short Packet and also works for illegal Etron events, which
+the code has been extended to cover too.
+
+Fixes: b331a3d8097f ("xhci: Handle spurious events on Etron host isoc enpoints")
+Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
+Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
+Link: https://lore.kernel.org/r/20250410151828.2868740-4-mathias.nyman@linux.intel.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/host/xhci-ring.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/host/xhci-ring.c
++++ b/drivers/usb/host/xhci-ring.c
+@@ -2926,7 +2926,7 @@ static int handle_tx_event(struct xhci_h
+                       if (xhci_spurious_success_tx_event(xhci, ep_ring)) {
+                               xhci_dbg(xhci, "Spurious event dma %pad, comp_code %u after %u\n",
+                                        &ep_trb_dma, trb_comp_code, ep_ring->old_trb_comp_code);
+-                              ep_ring->old_trb_comp_code = trb_comp_code;
++                              ep_ring->old_trb_comp_code = 0;
+                               return 0;
+                       }