diff options
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 |