summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x11-drivers/nvidia-drivers/files/nvidia-drivers-535.43.22-kernel-6.7.patch24
-rw-r--r--x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild3
-rw-r--r--x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild3
-rw-r--r--x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild3
4 files changed, 33 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);
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
index 4e12ff078da1..8bc1465f4494 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild
@@ -137,6 +137,9 @@ src_prepare() {
default
+ kernel_is -ge 6 7 &&
+ eapply "${FILESDIR}"/nvidia-drivers-535.43.22-kernel-6.7.patch
+
# prevent detection of incomplete kernel DRM support (bug #603818)
sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
-i kernel{,-module-source/kernel-open}/conftest.sh || die
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild
index ae62cbc6f0ea..4932e930c654 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.22.ebuild
@@ -140,6 +140,9 @@ src_prepare() {
default
+ kernel_is -ge 6 7 &&
+ eapply "${FILESDIR}"/nvidia-drivers-535.43.22-kernel-6.7.patch
+
# prevent detection of incomplete kernel DRM support (bug #603818)
sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
-i kernel{,-module-source/kernel-open}/conftest.sh || die
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
index bf4959d91524..e74a99ad11e1 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild
@@ -134,6 +134,9 @@ src_prepare() {
default
+ kernel_is -ge 6 7 &&
+ eapply "${FILESDIR}"/nvidia-drivers-535.43.22-kernel-6.7.patch
+
# prevent detection of incomplete kernel DRM support (bug #603818)
sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
-i kernel{,-module-source/kernel-open}/conftest.sh || die