Browse Source

system/nvidia-legacy390-kernel: Add patch for kernel 6.10.

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
pull/244/head
Lenard Spencer 1 year ago
committed by Willy Sudiarto Raharjo
parent
commit
f016834dd8
  1. 4
      system/nvidia-legacy390-kernel/README
  2. 19
      system/nvidia-legacy390-kernel/nvidia-legacy390-kernel.SlackBuild
  3. 28
      system/nvidia-legacy390-kernel/patches/nvidia-390.157-gcc14.patch
  4. 49
      system/nvidia-legacy390-kernel/patches/nvidia-legacy390-follow_pfn.patch

4
system/nvidia-legacy390-kernel/README

@ -14,7 +14,9 @@ You do not need this file at all if you have a proper and complete
The xf86-video-nouveau-blacklist package from /extra is required.
To build against the new 6.6.x kernel, pass KERNEL66=yes to the script.
To build the package for the 6.10 kernel, pass KERNEL610 to the script.
This is ONLY if you have built a 6.10/6.11 kernel for Slack 15.0.
Also note that in this case the nvidia-drm module will NOT be built.
BIG FAT NOTE: The Nvidia 390.xx series is EOL as of December 2022.
Because of the ABI change from xorg-server 1.20 to 1.21, the Nvidia 390

19
system/nvidia-legacy390-kernel/nvidia-legacy390-kernel.SlackBuild

@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=nvidia-legacy390-kernel
VERSION=${VERSION:-390.157}
BUILD=${BUILD:-2}
BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@ -87,8 +87,8 @@ find -L . \
unset ARCH
cd kernel || exit 1
# Patches for kernel 6.6.x
if [ "${KERNEL66:-no}" = "yes" ]; then
# Patches for -current:
if [ "${KERNEL610:-no}" = "yes" ]; then
patch -p1 < $CWD/patches/kernel-6.2.patch
patch -p1 < $CWD/patches/kernel-6.3.patch
if [ "$TARGET" = "x86_64" ]; then
@ -97,18 +97,27 @@ find -L . \
patch -p1 < $CWD/patches/kernel-6.4.patch
patch -p1 < $CWD/patches/kernel-6.5.patch
patch -p1 < $CWD/patches/kernel-6.6.patch
patch -p1 < $CWD/patches/nvidia-390.157-gcc14.patch
patch -p1 < $CWD/patches/nvidia-legacy390-follow_pfn.patch
fi
# CC=${CC:-gcc} suppresses an otherwise harmless "compiler mismatch"
# message. If you custom-build your kernel with clang,
# then pass CC=clang to this script.
CC=${CC:-gcc} make SYSSRC=$KERNELPATH module || exit 1
# Also, nvidia-drm.ko will no longer build in current
if [ "${KERNEL610:-no}" = "no" ]; then
CC=${CC:-gcc} make SYSSRC=$KERNELPATH module || exit 1
else
CC=${CC:-gcc} NV_EXCLUDE_KERNEL_MODULES=nvidia-drm make SYSSRC=$KERNELPATH module || exit 1
fi
)
mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
install -m 0664 kernel/nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/
install -m 0664 kernel/nvidia-modeset.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/
install -m 0664 kernel/nvidia-drm.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/
if [ "${KERNEL610:-no}" = "no" ]; then
install -m 0664 kernel/nvidia-drm.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/
fi
# 32-bit doesn't have nvidia-uvm
if [ "$TARGET" = "x86_64" ]; then
install -m 0664 kernel/nvidia-uvm.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/

28
system/nvidia-legacy390-kernel/patches/nvidia-390.157-gcc14.patch

@ -0,0 +1,28 @@
diff -Nur kernel/conftest.sh kernel.new/conftest.sh
--- kernel/conftest.sh 2024-05-19 00:17:45.989834240 -0400
+++ kernel.new/conftest.sh 2024-05-19 00:18:48.369635044 -0400
@@ -153,7 +153,8 @@
build_cflags() {
BASE_CFLAGS="-O2 -D__KERNEL__ \
-DKBUILD_BASENAME=\"#conftest$$\" -DKBUILD_MODNAME=\"#conftest$$\" \
--nostdinc -isystem $ISYSTEM"
+-nostdinc -isystem $ISYSTEM -fshort-wchar \
+ -Wno-implicit-function-declaration -Wno-strict-prototypes"
if [ "$OUTPUT" != "$SOURCES" ]; then
OUTPUT_CFLAGS="-I$OUTPUT/include2 -I$OUTPUT/include"
@@ -4450,8 +4451,13 @@
#
CODE="
#include <drm/drm_gem.h>
+ #if defined(NV_LINUX_IOSYS_MAP_H_PRESENT)
+ typedef struct iosys_map nv_sysio_map_t;
+ #else
+ typedef struct dma_buf_map nv_sysio_map_t;
+ #endif
int conftest_drm_gem_object_vmap_has_map_arg(
- struct drm_gem_object *obj, struct dma_buf_map *map) {
+ struct drm_gem_object *obj, nv_sysio_map_t *map) {
return obj->funcs->vmap(obj, map);
}"

49
system/nvidia-legacy390-kernel/patches/nvidia-legacy390-follow_pfn.patch

@ -0,0 +1,49 @@
diff -Naur kernel.org/conftest.sh kernel/conftest.sh
--- kernel.org/conftest.sh 2024-05-02 22:25:33.000000000 +0800
+++ kernel/conftest.sh 2024-07-26 21:24:43.434506976 +0800
@@ -4683,20 +4689,22 @@
compile_check_conftest "$CODE" "NV_SG_PAGE_ITER_PAGE_PRESENT" "" "functions"
;;
- unsafe_follow_pfn)
+ follow_pfn)
#
- # Determine if unsafe_follow_pfn() is present.
+ # Determine if follow_pfn() is present.
#
- # unsafe_follow_pfn() was added by commit 69bacee7f9ad
- # ("mm: Add unsafe_follow_pfn") in v5.13-rc1.
+ # follow_pfn() was added by commit 3b6748e2dd69
+ # ("mm: introduce follow_pfn()") in v2.6.31-rc1, and removed
+ # by commit 233eb0bf3b94 ("mm: remove follow_pfn")
+ # from linux-next 233eb0bf3b94.
#
CODE="
#include <linux/mm.h>
- void conftest_unsafe_follow_pfn(void) {
- unsafe_follow_pfn();
+ void conftest_follow_pfn(void) {
+ follow_pfn();
}"
- compile_check_conftest "$CODE" "NV_UNSAFE_FOLLOW_PFN_PRESENT" "" "functions"
+ compile_check_conftest "$CODE" "NV_FOLLOW_PFN_PRESENT" "" "functions"
;;
drm_plane_atomic_check_has_atomic_state_arg)
diff -Naur kernel.org/nvidia/os-mlock.c kernel/nvidia/os-mlock.c
--- kernel.org/nvidia/os-mlock.c 2024-05-02 23:16:35.000000000 +0800
+++ kernel/nvidia/os-mlock.c 2024-07-26 21:24:43.511506979 +0800
@@ -17,10 +17,10 @@
unsigned long address,
unsigned long *pfn)
{
-#if defined(NV_UNSAFE_FOLLOW_PFN_PRESENT)
- return unsafe_follow_pfn(vma, address, pfn);
-#else
+#if defined(NV_FOLLOW_PFN_PRESENT)
return follow_pfn(vma, address, pfn);
+#else
+ return -1;
#endif
}
Loading…
Cancel
Save