summaryrefslogtreecommitdiff
path: root/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch')
-rw-r--r--x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch
new file mode 100644
index 000000000000..08833de8344a
--- /dev/null
+++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch
@@ -0,0 +1,24 @@
+Typically opt not to patch for kernel support downstream, but in this
+case it's only conditionally broken depending on kernel crypto configs
+and USE=kernel-open, then an (official) NVIDIA representative has
+responded with a fix in [1] which should be safe.
+
+[1] https://github.com/NVIDIA/open-gpu-kernel-modules/issues/574#issuecomment-1809283181
+--- a/kernel/nvidia/libspdm_shash.c
++++ b/kernel/nvidia/libspdm_shash.c
+@@ -89,4 +89,4 @@
+ struct crypto_shash *dst_tfm = dst->tfm;
+- char *src_ipad = crypto_tfm_ctx_aligned(&src_tfm->base);
+- char *dst_ipad = crypto_tfm_ctx_aligned(&dst_tfm->base);
++ char *src_ipad = crypto_tfm_ctx_align(&src_tfm->base, crypto_tfm_alg_alignmask(&src_tfm->base) + 1);
++ char *dst_ipad = crypto_tfm_ctx_align(&dst_tfm->base, crypto_tfm_alg_alignmask(&dst_tfm->base) + 1);
+ int ss = crypto_shash_statesize(dst_tfm);
+--- a/kernel-module-source/kernel-open/nvidia/libspdm_shash.c
++++ b/kernel-module-source/kernel-open/nvidia/libspdm_shash.c
+@@ -89,4 +89,4 @@
+ struct crypto_shash *dst_tfm = dst->tfm;
+- char *src_ipad = crypto_tfm_ctx_aligned(&src_tfm->base);
+- char *dst_ipad = crypto_tfm_ctx_aligned(&dst_tfm->base);
++ char *src_ipad = crypto_tfm_ctx_align(&src_tfm->base, crypto_tfm_alg_alignmask(&src_tfm->base) + 1);
++ char *dst_ipad = crypto_tfm_ctx_align(&dst_tfm->base, crypto_tfm_alg_alignmask(&dst_tfm->base) + 1);
+ int ss = crypto_shash_statesize(dst_tfm);