Merge pull request #7412 from marcin-/master
nvidia340: add dkms support, version bump
This commit is contained in:
@@ -178,6 +178,7 @@
|
|||||||
<Package>module-nvidia-current</Package>
|
<Package>module-nvidia-current</Package>
|
||||||
<Package>nvidia430-dkms</Package>
|
<Package>nvidia430-dkms</Package>
|
||||||
<Package>nvidia390-dkms</Package>
|
<Package>nvidia390-dkms</Package>
|
||||||
|
<Package>nvidia340-dkms</Package>
|
||||||
</Conflicts>
|
</Conflicts>
|
||||||
</Package>
|
</Package>
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,15 @@ def setup():
|
|||||||
|
|
||||||
shelltools.echo("ld.so.conf", nvlibdir)
|
shelltools.echo("ld.so.conf", nvlibdir)
|
||||||
shelltools.echo("XvMCConfig", "%s/libXvMCNVIDIA.so" % nvlibdir)
|
shelltools.echo("XvMCConfig", "%s/libXvMCNVIDIA.so" % nvlibdir)
|
||||||
shelltools.system("patch -p0 < kernel-4.11.patch")
|
shelltools.system("patch -p1 < unfuck-340.108-build-fix.patch")
|
||||||
|
|
||||||
|
# dkms
|
||||||
|
shelltools.copytree("kernel", "kernel-dkms")
|
||||||
|
shelltools.unlink("kernel-dkms/dkms.conf")
|
||||||
|
shelltools.move("dkms.conf", "kernel-dkms/")
|
||||||
|
pisitools.dosed("kernel-dkms/dkms.conf", "%VERSION%", version)
|
||||||
|
pisitools.dosed("kernel-dkms/Makefile", "(src\s\?=\s)\.", r"\1/usr/src/nvidia-%s" % version)
|
||||||
|
pisitools.dosed("kernel-dkms/uvm/Makefile", "(src\s\?=\s)\.", r"\1/usr/src/nvidia-%s/uvm" % version)
|
||||||
|
|
||||||
def build():
|
def build():
|
||||||
# We don't need kernel module for emul32 build
|
# We don't need kernel module for emul32 build
|
||||||
@@ -71,11 +79,13 @@ def install():
|
|||||||
|
|
||||||
pisitools.dobin("nvidia-persistenced")
|
pisitools.dobin("nvidia-persistenced")
|
||||||
|
|
||||||
|
# dkms
|
||||||
|
pisitools.insinto("/usr/src/nvidia-%s" % version, "kernel-dkms/*")
|
||||||
|
|
||||||
### Libraries
|
### Libraries
|
||||||
# OpenGl library
|
# OpenGl library
|
||||||
pisitools.dolib("libGL.so.%s" % version, nvlibdir)
|
pisitools.dolib("libGL.so.%s" % version, nvlibdir)
|
||||||
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1.2.0" % nvlibdir)
|
# pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1.2.0" % nvlibdir)
|
||||||
|
|
||||||
# OpenCL
|
# OpenCL
|
||||||
pisitools.dolib("libOpenCL.so.1.0.0", libdir)
|
pisitools.dolib("libOpenCL.so.1.0.0", libdir)
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
driver_dir_name = "nvidia340"
|
|
||||||
libdir = "/usr/lib32/%s" % driver_dir_name
|
|
||||||
datadir = "/usr/share/%s" % driver_dir_name
|
|
||||||
|
|
||||||
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
|
|
||||||
os.system(" /usr/sbin/alternatives \
|
|
||||||
--install /usr/lib32/libGL.so.1.2.0 libGL-32bit %(libdir)s/libGL.so.1.2.0 50 \
|
|
||||||
--slave /usr/lib32/xorg/modules/volatile xorg-modules-volatile-32bit %(libdir)s/modules"
|
|
||||||
% {"libdir": libdir, "datadir": datadir})
|
|
||||||
# --slave /etc/ld.so.conf.d/10-nvidia-32bit.conf nvidia-ldsoconf-32bit %(datadir)s/32bit-ld.so.conf"
|
|
||||||
|
|
||||||
# If this driver is in use, refresh links after installation.
|
|
||||||
if os.readlink("/etc/alternatives/libGL-32bit") == "%s/libGL.so.1.2.0" % libdir:
|
|
||||||
os.system("/usr/sbin/alternatives --set libGL-32bit %s/libGL.so.1.2.0" % libdir)
|
|
||||||
os.system("/sbin/ldconfig -X")
|
|
||||||
|
|
||||||
def preRemove():
|
|
||||||
# FIXME This is not needed when upgrading package; but pisi does not
|
|
||||||
# provide a way to learn operation type.
|
|
||||||
#os.system("/usr/sbin/alternatives --remove libGL-32bit %s/libGL.so.1.2.0" % libdir)
|
|
||||||
pass
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
driver_dir_name = "nvidia340"
|
|
||||||
libdir = "/usr/lib/%s" % driver_dir_name
|
|
||||||
datadir = "/usr/share/%s" % driver_dir_name
|
|
||||||
|
|
||||||
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
|
|
||||||
os.system(" /usr/sbin/alternatives \
|
|
||||||
--install /usr/lib/libGL.so.1.2.0 libGL %(libdir)s/libGL.so.1.2.0 50 \
|
|
||||||
--slave /usr/lib/xorg/modules/volatile xorg-modules-volatile %(libdir)s/modules"
|
|
||||||
% {"libdir": libdir, "datadir": datadir})
|
|
||||||
# --slave /etc/X11/XvMCConfig XvMCConfig %(datadir)s/XvMCConfig \
|
|
||||||
# --slave /etc/ld.so.conf.d/10-nvidia.conf nvidia-ldsoconf %(datadir)s/ld.so.conf"
|
|
||||||
|
|
||||||
# If this driver is in use, refresh links after installation.
|
|
||||||
if os.readlink("/etc/alternatives/libGL") == "%s/libGL.so.1.2.0" % libdir:
|
|
||||||
os.system("/usr/sbin/alternatives --set libGL %s/libGL.so.1.2.0" % libdir)
|
|
||||||
os.system("/sbin/ldconfig -X")
|
|
||||||
|
|
||||||
def preRemove():
|
|
||||||
# FIXME This is not needed when upgrading package; but pisi does not
|
|
||||||
# provide a way to learn operation type.
|
|
||||||
#os.system("/usr/sbin/alternatives --remove libGL %s/libGL.so.1.2.0" % libdir)
|
|
||||||
pass
|
|
||||||
Executable → Regular
Executable → Regular
@@ -0,0 +1,11 @@
|
|||||||
|
PACKAGE_NAME="nvidia"
|
||||||
|
PACKAGE_VERSION="%VERSION%"
|
||||||
|
AUTOINSTALL="yes"
|
||||||
|
|
||||||
|
MAKE[0]="'make' -C uvm module KERNEL_UNAME=${kernelver} KBUILD_EXTMOD=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build/uvm"
|
||||||
|
|
||||||
|
BUILT_MODULE_NAME[0]="nvidia-uvm"
|
||||||
|
BUILT_MODULE_LOCATION[0]="uvm/"
|
||||||
|
DEST_MODULE_LOCATION[0]="/extra"
|
||||||
|
|
||||||
|
CLEAN="'make' -C uvm clean"
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
--- kernel/nv-drm.c 2016-12-15 12:41:26.000000000 +0100
|
|
||||||
+++ kernel/nv-drm.c 2016-12-15 12:58:48.000000000 +0100
|
|
||||||
@@ -115,7 +115,11 @@
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct drm_driver nv_drm_driver = {
|
|
||||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
|
|
||||||
+ .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
|
|
||||||
+#else
|
|
||||||
.driver_features = DRIVER_GEM | DRIVER_PRIME,
|
|
||||||
+#endif
|
|
||||||
.load = nv_drm_load,
|
|
||||||
.unload = nv_drm_unload,
|
|
||||||
.fops = &nv_drm_fops,
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
--- kernel/uvm/nvidia_uvm_lite.c 2017-09-27 13:50:46.334075042 +0200
|
|
||||||
+++ kernel/uvm/nvidia_uvm_lite.c 2017-09-27 13:56:06.358041280 +0200
|
|
||||||
@@ -818,7 +818,11 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
|
|
||||||
int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
|
||||||
+#else
|
|
||||||
+int _fault(struct vm_fault *vmf)
|
|
||||||
+#endif
|
|
||||||
{
|
|
||||||
#if defined(NV_VM_FAULT_HAS_ADDRESS)
|
|
||||||
unsigned long vaddr = vmf->address;
|
|
||||||
@@ -828,7 +832,11 @@
|
|
||||||
struct page *page = NULL;
|
|
||||||
int retval;
|
|
||||||
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
|
|
||||||
retval = _fault_common(vma, vaddr, &page, vmf->flags);
|
|
||||||
+#else
|
|
||||||
+ retval = _fault_common(NULL, vaddr, &page, vmf->flags);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
vmf->page = page;
|
|
||||||
|
|
||||||
@@ -866,7 +874,11 @@
|
|
||||||
// it's dealing with anonymous mapping (see handle_pte_fault).
|
|
||||||
//
|
|
||||||
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
|
|
||||||
int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
|
||||||
+#else
|
|
||||||
+int _sigbus_fault(struct vm_fault *vmf)
|
|
||||||
+#endif
|
|
||||||
{
|
|
||||||
vmf->page = NULL;
|
|
||||||
return VM_FAULT_SIGBUS;
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
diff --git kernel/uvm/nvidia_uvm_lite.c kernel/uvm/nvidia_uvm_lite.c
|
|
||||||
index 65b9a4d..f5ea5d7 100644
|
|
||||||
--- a/kernel/uvm/nvidia_uvm_lite.c
|
|
||||||
+++ b/kernel/uvm/nvidia_uvm_lite.c
|
|
||||||
@@ -830,8 +830,10 @@ done:
|
|
||||||
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
|
|
||||||
int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
|
||||||
-#else
|
|
||||||
-int _fault(struct vm_fault *vmf)
|
|
||||||
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
|
|
||||||
+int _fault(struct vm_fault *vmf)
|
|
||||||
+#else
|
|
||||||
+vm_fault_t _fault(struct vm_fault *vmf)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
#if defined(NV_VM_FAULT_HAS_ADDRESS)
|
|
||||||
@@ -886,8 +888,10 @@ static struct vm_operations_struct uvmlite_vma_ops =
|
|
||||||
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
|
|
||||||
int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
|
||||||
-#else
|
|
||||||
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
|
|
||||||
int _sigbus_fault(struct vm_fault *vmf)
|
|
||||||
+#else
|
|
||||||
+vm_fault_t _sigbus_fault(struct vm_fault *vmf)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
vmf->page = NULL;
|
|
||||||
diff --git kernel/nv-drm.c kernel/nv-drm.c
|
|
||||||
index 122ba7d..1be5733 100644
|
|
||||||
--- a/kernel/nv-drm.c
|
|
||||||
+++ b/kernel/nv-drm.c
|
|
||||||
@@ -146,7 +146,7 @@ static const struct file_operations nv_drm_fops = {
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct drm_driver nv_drm_driver = {
|
|
||||||
-#if defined(DRIVER_LEGACY)
|
|
||||||
+#if defined(DRIVER_LEGACY) || LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)
|
|
||||||
.driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
|
|
||||||
#else
|
|
||||||
.driver_features = DRIVER_GEM | DRIVER_PRIME,
|
|
||||||
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
diff --git kernel/nv-linux.h kernel/nv-linux.h
|
|
||||||
index 4043bf1..62f0874 100644
|
|
||||||
--- kernel/nv-linux.h
|
|
||||||
+++ kernel/nv-linux.h
|
|
||||||
@@ -877,12 +877,21 @@ extern void *nv_stack_t_cache;
|
|
||||||
__ret; \
|
|
||||||
})
|
|
||||||
#elif (NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT == 3)
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)
|
|
||||||
#define NV_SMP_CALL_FUNCTION(func, info, wait) \
|
|
||||||
({ \
|
|
||||||
int __ret = smp_call_function(func, info, wait); \
|
|
||||||
__ret; \
|
|
||||||
})
|
|
||||||
#else
|
|
||||||
+#define NV_SMP_CALL_FUNCTION(func, info, wait) \
|
|
||||||
+ ({ \
|
|
||||||
+ int __ret = 0; \
|
|
||||||
+ smp_call_function(func, info, wait); \
|
|
||||||
+ __ret; \
|
|
||||||
+ })
|
|
||||||
+#endif
|
|
||||||
+#else
|
|
||||||
#error "NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT value unrecognized!"
|
|
||||||
#endif
|
|
||||||
#elif defined(CONFIG_SMP)
|
|
||||||
@@ -897,12 +906,21 @@ extern void *nv_stack_t_cache;
|
|
||||||
__ret; \
|
|
||||||
})
|
|
||||||
#elif (NV_ON_EACH_CPU_ARGUMENT_COUNT == 3)
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)
|
|
||||||
#define NV_ON_EACH_CPU(func, info, wait) \
|
|
||||||
({ \
|
|
||||||
int __ret = on_each_cpu(func, info, wait); \
|
|
||||||
__ret; \
|
|
||||||
})
|
|
||||||
#else
|
|
||||||
+#define NV_ON_EACH_CPU(func, info, wait) \
|
|
||||||
+ ({ \
|
|
||||||
+ int __ret = 0; \
|
|
||||||
+ on_each_cpu(func, info, wait); \
|
|
||||||
+ __ret; \
|
|
||||||
+ })
|
|
||||||
+#endif
|
|
||||||
+#else
|
|
||||||
#error "NV_ON_EACH_CPU_ARGUMENT_COUNT value unrecognized!"
|
|
||||||
#endif
|
|
||||||
#elif defined(CONFIG_SMP)
|
|
||||||
|
|
||||||
@@ -1,113 +0,0 @@
|
|||||||
From f90c388c755a6bd9b72cb51c712a0ae686e0b377 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alberto Milone <alberto.milone@canonical.com>
|
|
||||||
Date: Wed, 27 Nov 2019 13:01:18 +0100
|
|
||||||
Subject: [PATCH 1/1] Add support for Linux 5.4
|
|
||||||
|
|
||||||
---
|
|
||||||
conftest.sh | 46 ++++++++++++++++++++++++++++++++++++++++
|
|
||||||
nv-drm.c | 9 +++++---
|
|
||||||
nvidia-modules-common.mk | 2 +-
|
|
||||||
3 files changed, 53 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/conftest.sh b/conftest.sh
|
|
||||||
index fb0bf60..babbb50 100755
|
|
||||||
--- a/kernel/conftest.sh
|
|
||||||
+++ b/kernel/conftest.sh
|
|
||||||
@@ -265,6 +265,23 @@ build_cflags() {
|
|
||||||
if [ -n "$BUILD_PARAMS" ]; then
|
|
||||||
CFLAGS="$CFLAGS -D$BUILD_PARAMS"
|
|
||||||
fi
|
|
||||||
+
|
|
||||||
+ # Check if gcc supports asm goto and set CC_HAVE_ASM_GOTO if it does.
|
|
||||||
+ # Older kernels perform this check and set this flag in Kbuild, and since
|
|
||||||
+ # conftest.sh runs outside of Kbuild it ends up building without this flag.
|
|
||||||
+ # Starting with commit e9666d10a5677a494260d60d1fa0b73cc7646eb3 this test
|
|
||||||
+ # is done within Kconfig, and the preprocessor flag is no longer needed.
|
|
||||||
+
|
|
||||||
+ GCC_GOTO_SH="$SOURCES/build/gcc-goto.sh"
|
|
||||||
+
|
|
||||||
+ if [ -f "$GCC_GOTO_SH" ]; then
|
|
||||||
+ # Newer versions of gcc-goto.sh don't print anything on success, but
|
|
||||||
+ # this is okay, since it's no longer necessary to set CC_HAVE_ASM_GOTO
|
|
||||||
+ # based on the output of those versions of gcc-goto.sh.
|
|
||||||
+ if [ `/bin/sh "$GCC_GOTO_SH" "$CC"` = "y" ]; then
|
|
||||||
+ CFLAGS="$CFLAGS -DCC_HAVE_ASM_GOTO"
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
}
|
|
||||||
|
|
||||||
CONFTEST_PREAMBLE="#include \"conftest.h\"
|
|
||||||
@@ -1521,6 +1538,35 @@ compile_test() {
|
|
||||||
compile_check_conftest "$CODE" "NV_DRM_AVAILABLE" "" "generic"
|
|
||||||
;;
|
|
||||||
|
|
||||||
+ drm_driver_prime_flag_present)
|
|
||||||
+ #
|
|
||||||
+ # Determine whether driver feature flag DRIVER_PRIME is present.
|
|
||||||
+ #
|
|
||||||
+ # The DRIVER_PRIME flag was added by commit 3248877ea179 (drm:
|
|
||||||
+ # base prime/dma-buf support (v5)) in v3.4 (2011-11-25) and is
|
|
||||||
+ # removed by commit 0424fdaf883a (drm/prime: Actually remove
|
|
||||||
+ # DRIVER_PRIME everywhere) on 2019-06-17.
|
|
||||||
+ #
|
|
||||||
+ # DRIVER_PRIME definition moved from drmP.h to drm_drv.h by
|
|
||||||
+ # commit 85e634bce01a (drm: Extract drm_drv.h) in v4.10
|
|
||||||
+ # (2016-11-14).
|
|
||||||
+ #
|
|
||||||
+ # DRIVER_PRIME define is changed to enum value by commit
|
|
||||||
+ # 0e2a933b02c9 (drm: Switch DRIVER_ flags to an enum) in v5.1
|
|
||||||
+ # (2019-01-29).
|
|
||||||
+ #
|
|
||||||
+ CODE="
|
|
||||||
+ #include <drm/drmP.h>
|
|
||||||
+ #if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
||||||
+ #include <drm/drm_drv.h>
|
|
||||||
+ #endif
|
|
||||||
+ unsigned int drm_driver_prime_flag_present_conftest(void) {
|
|
||||||
+ return DRIVER_PRIME;
|
|
||||||
+ }"
|
|
||||||
+
|
|
||||||
+ compile_check_conftest "$CODE" "NV_DRM_DRIVER_PRIME_FLAG_PRESENT" "" "types"
|
|
||||||
+ ;;
|
|
||||||
+
|
|
||||||
proc_create_data)
|
|
||||||
#
|
|
||||||
# Determine if the proc_create_data() function is present.
|
|
||||||
diff --git a/nv-drm.c b/nv-drm.c
|
|
||||||
index 76719bb..12f7029 100644
|
|
||||||
--- a/kernel/nv-drm.c
|
|
||||||
+++ b/kernel/nv-drm.c
|
|
||||||
@@ -156,11 +156,14 @@ static const struct file_operations nv_drm_fops = {
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct drm_driver nv_drm_driver = {
|
|
||||||
+ .driver_features =
|
|
||||||
+#if defined(NV_DRM_DRIVER_PRIME_FLAG_PRESENT)
|
|
||||||
+ DRIVER_PRIME |
|
|
||||||
+#endif
|
|
||||||
#if defined(DRIVER_LEGACY) || LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)
|
|
||||||
- .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
|
|
||||||
-#else
|
|
||||||
- .driver_features = DRIVER_GEM | DRIVER_PRIME,
|
|
||||||
+ DRIVER_LEGACY |
|
|
||||||
#endif
|
|
||||||
+ DRIVER_GEM,
|
|
||||||
.load = nv_drm_load,
|
|
||||||
.unload = nv_drm_unload,
|
|
||||||
.fops = &nv_drm_fops,
|
|
||||||
diff --git a/nvidia-modules-common.mk b/nvidia-modules-common.mk
|
|
||||||
index 8ac7058..7418005 100644
|
|
||||||
--- a/kernel/nvidia-modules-common.mk
|
|
||||||
+++ b/kernel/nvidia-modules-common.mk
|
|
||||||
@@ -180,7 +180,7 @@ ifndef NV_VERBOSE
|
|
||||||
endif
|
|
||||||
|
|
||||||
KBUILD_PARAMS += KBUILD_VERBOSE=$(NV_VERBOSE)
|
|
||||||
-KBUILD_PARAMS += -C $(KERNEL_SOURCES) SUBDIRS=$(PWD)
|
|
||||||
+KBUILD_PARAMS += -C $(KERNEL_SOURCES) M=$(PWD)
|
|
||||||
KBUILD_PARAMS += ARCH=$(ARCH)
|
|
||||||
|
|
||||||
#
|
|
||||||
--
|
|
||||||
2.20.1
|
|
||||||
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
Author: Andreas Beckmann <anbe@debian.org>
|
|
||||||
Description: use kmem_cache_create_usercopy on 4.16+
|
|
||||||
fixes "Bad or missing usercopy whitelist? Kernel memory exposure attempt
|
|
||||||
detected from SLUB object 'nvidia_stack_cache'" on linux-image-4.16.0-2-*
|
|
||||||
or newer that have disabled CONFIG_HARDENED_USERCOPY_FALLBACK
|
|
||||||
Bug-Debian: #901919, #899998
|
|
||||||
Bug: https://devtalk.nvidia.com/default/topic/1031067
|
|
||||||
|
|
||||||
--- a/kernel/nv-linux.h
|
|
||||||
+++ b/kernel/nv-linux.h
|
|
||||||
@@ -757,11 +757,18 @@ extern nv_spinlock_t km_lock;
|
|
||||||
0, 0, NULL, NULL); \
|
|
||||||
}
|
|
||||||
#elif (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
|
|
||||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)
|
|
||||||
+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type) \
|
|
||||||
+ { \
|
|
||||||
+ kmem_cache = kmem_cache_create_usercopy(name, sizeof(type), 0, 0, 0, sizeof(type), NULL); \
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type) \
|
|
||||||
{ \
|
|
||||||
kmem_cache = kmem_cache_create(name, sizeof(type), \
|
|
||||||
0, 0, NULL); \
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
#else
|
|
||||||
#error "NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT value unrecognized!"
|
|
||||||
#endif
|
|
||||||
@@ -1,150 +0,0 @@
|
|||||||
--- /dev/null
|
|
||||||
+++ b/kernel/nv-mm.h
|
|
||||||
@@ -0,0 +1,55 @@
|
|
||||||
+/*******************************************************************************
|
|
||||||
+ Copyright (c) 2016 NVIDIA Corporation
|
|
||||||
+
|
|
||||||
+ Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
+ of this software and associated documentation files (the "Software"), to
|
|
||||||
+ deal in the Software without restriction, including without limitation the
|
|
||||||
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
+ sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
+ furnished to do so, subject to the following conditions:
|
|
||||||
+
|
|
||||||
+ The above copyright notice and this permission notice shall be
|
|
||||||
+ included in all copies or substantial portions of the Software.
|
|
||||||
+
|
|
||||||
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
+ DEALINGS IN THE SOFTWARE.
|
|
||||||
+
|
|
||||||
+*******************************************************************************/
|
|
||||||
+#ifndef __NV_MM_H__
|
|
||||||
+#define __NV_MM_H__
|
|
||||||
+
|
|
||||||
+/* get_user_pages_remote() was added by:
|
|
||||||
+ * 2016 Feb 12: 1e9877902dc7e11d2be038371c6fbf2dfcd469d7
|
|
||||||
+ *
|
|
||||||
+ * The very next commit (cde70140fed8429acf7a14e2e2cbd3e329036653)
|
|
||||||
+ * deprecated the 8-argument version of get_user_pages for the
|
|
||||||
+ * non-remote case (calling get_user_pages with current and current->mm).
|
|
||||||
+ *
|
|
||||||
+ * The guidelines are: call NV_GET_USER_PAGES_REMOTE if you need the 8-argument
|
|
||||||
+ * version that uses something other than current and current->mm. Use
|
|
||||||
+ * NV_GET_USER_PAGES if you are refering to current and current->mm.
|
|
||||||
+ *
|
|
||||||
+* Note that get_user_pages_remote() requires the caller to hold a reference on
|
|
||||||
+* the task_struct (if non-NULL) and the mm_struct. This will always be true
|
|
||||||
+* when using current and current->mm. If the kernel passes the driver a vma
|
|
||||||
+* via driver callback, the kernel holds a reference on vma->vm_mm over that
|
|
||||||
+* callback.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#if defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
|
|
||||||
+ #define NV_GET_USER_PAGES get_user_pages
|
|
||||||
+ #define NV_GET_USER_PAGES_REMOTE get_user_pages_remote
|
|
||||||
+#else
|
|
||||||
+ #define NV_GET_USER_PAGES(start, nr_pages, write, force, pages, vmas) \
|
|
||||||
+ get_user_pages(current, current->mm, start, nr_pages, write, force, pages, vmas)
|
|
||||||
+
|
|
||||||
+ #define NV_GET_USER_PAGES_REMOTE get_user_pages
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#endif // __NV_MM_H__
|
|
||||||
--- a/kernel/os-mlock.c
|
|
||||||
+++ b/kernel/os-mlock.c
|
|
||||||
@@ -13,6 +13,7 @@
|
|
||||||
|
|
||||||
#include "os-interface.h"
|
|
||||||
#include "nv-linux.h"
|
|
||||||
+#include "nv-mm.h"
|
|
||||||
|
|
||||||
RM_STATUS NV_API_CALL os_lock_user_pages(
|
|
||||||
void *address,
|
|
||||||
@@ -45,7 +46,7 @@ RM_STATUS NV_API_CALL os_lock_user_pages(
|
|
||||||
}
|
|
||||||
|
|
||||||
down_read(&mm->mmap_sem);
|
|
||||||
- ret = get_user_pages(current, mm, (unsigned long)address,
|
|
||||||
+ ret = NV_GET_USER_PAGES((unsigned long)address,
|
|
||||||
page_count, write, force, user_pages, NULL);
|
|
||||||
up_read(&mm->mmap_sem);
|
|
||||||
pinned = ret;
|
|
||||||
@@ -59,7 +59,7 @@ RM_STATUS NV_API_CALL os_lock_user_pages(
|
|
||||||
else if (pinned < page_count)
|
|
||||||
{
|
|
||||||
for (i = 0; i < pinned; i++)
|
|
||||||
- page_cache_release(user_pages[i]);
|
|
||||||
+ put_page(user_pages[i]);
|
|
||||||
os_free_mem(user_pages);
|
|
||||||
return RM_ERR_INVALID_ADDRESS;
|
|
||||||
}
|
|
||||||
@@ -86,7 +86,7 @@ RM_STATUS NV_API_CALL os_unlock_user_pages(
|
|
||||||
{
|
|
||||||
if (write)
|
|
||||||
set_page_dirty_lock(user_pages[i]);
|
|
||||||
- page_cache_release(user_pages[i]);
|
|
||||||
+ put_page(user_pages[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
os_free_mem(user_pages);
|
|
||||||
diff --git a/kernel/conftest.sh.orig b/kernel/conftest.sh
|
|
||||||
index d01488b..308ea8a 100755
|
|
||||||
--- a/kernel/conftest.sh
|
|
||||||
+++ b/kernel/conftest.sh
|
|
||||||
@@ -1669,6 +1669,23 @@ compile_test() {
|
|
||||||
|
|
||||||
compile_check_conftest "$CODE" "NV_NODE_END_PFN_PRESENT" "" "functions"
|
|
||||||
;;
|
|
||||||
+
|
|
||||||
+ get_user_pages_remote)
|
|
||||||
+ #
|
|
||||||
+ # Determine if the function get_user_pages_remote() is
|
|
||||||
+ # present.
|
|
||||||
+ #
|
|
||||||
+ # get_user_pages_remote() was added by:
|
|
||||||
+ # 2016 Feb 12: 1e9877902dc7e11d2be038371c6fbf2dfcd469d7
|
|
||||||
+ #
|
|
||||||
+ CODE="
|
|
||||||
+ #include <linux/mm.h>
|
|
||||||
+ int conftest_get_user_pages_remote(void) {
|
|
||||||
+ get_user_pages_remote();
|
|
||||||
+ }"
|
|
||||||
+
|
|
||||||
+ compile_check_conftest "$CODE" "NV_GET_USER_PAGES_REMOTE_PRESENT" "" "functions"
|
|
||||||
+ ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/kernel/Makefile.orig b/kernel/Makefile
|
|
||||||
index 438d487..c52a36c 100644
|
|
||||||
--- a/kernel/Makefile
|
|
||||||
+++ b/kernel/Makefile
|
|
||||||
@@ -139,7 +139,8 @@ COMPILE_TESTS = \
|
|
||||||
drm_pci_set_busid \
|
|
||||||
write_cr4 \
|
|
||||||
for_each_online_node \
|
|
||||||
- node_end_pfn
|
|
||||||
+ node_end_pfn \
|
|
||||||
+ get_user_pages_remote
|
|
||||||
|
|
||||||
#
|
|
||||||
# CFLAGS dependent on the type of builds (e.g. single/muliple module, debug)
|
|
||||||
diff --git a/kernel/uvm/nvidia_uvm_lite.c.orig b/kernel/uvm/nvidia_uvm_lite.c
|
|
||||||
index 442a0a8..695f092 100644
|
|
||||||
--- a/kernel/uvm/nvidia_uvm_lite.c
|
|
||||||
+++ b/kernel/uvm/nvidia_uvm_lite.c
|
|
||||||
@@ -785,7 +785,7 @@ int _fault_common(struct vm_area_struct *vma, unsigned long vaddr,
|
|
||||||
// a reference so that the fault handling logic is correct:
|
|
||||||
//
|
|
||||||
get_page(pTracking->uvmPage);
|
|
||||||
- retValue = VM_FAULT_MINOR;
|
|
||||||
+ retValue = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
pRecord->isMapped = NV_TRUE;
|
|
||||||
Executable → Regular
@@ -1,27 +0,0 @@
|
|||||||
--- kernel/nv-drm.c~ 2014-09-12 00:33:06.000000000 +0200
|
|
||||||
+++ kernel/nv-drm.c 2014-10-14 11:35:52.854400737 +0200
|
|
||||||
@@ -18,6 +18,11 @@
|
|
||||||
|
|
||||||
#include <drm/drmP.h>
|
|
||||||
|
|
||||||
+/* 3.18-rc0+ */
|
|
||||||
+#ifndef drm_gem_object
|
|
||||||
+#include <drm/drm_gem.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
extern nv_linux_state_t *nv_linux_devices;
|
|
||||||
|
|
||||||
struct nv_gem_object {
|
|
||||||
diff --git a/kernel/nv-drm.c~ b/kernel/nv-drm.c
|
|
||||||
index ecc982a..60d7aae 100644
|
|
||||||
--- kernel/nv-drm.c~
|
|
||||||
+++ kernel/nv-drm.c
|
|
||||||
@@ -129,6 +129,8 @@ static struct drm_driver nv_drm_driver = {
|
|
||||||
.gem_prime_vmap = nv_gem_prime_vmap,
|
|
||||||
.gem_prime_vunmap = nv_gem_prime_vunmap,
|
|
||||||
|
|
||||||
+ .set_busid = drm_pci_set_busid,
|
|
||||||
+
|
|
||||||
.name = "nvidia-drm",
|
|
||||||
.desc = "NVIDIA DRM driver",
|
|
||||||
.date = "20130102",
|
|
||||||
Executable → Regular
@@ -0,0 +1,48 @@
|
|||||||
|
diff --git a/uvm/nvidia_uvm_lite.c b/uvm/nvidia_uvm_lite.c
|
||||||
|
index 6943e7c..c5d232c 100644
|
||||||
|
--- a/kernel/uvm/nvidia_uvm_lite.c
|
||||||
|
+++ b/kernel/uvm/nvidia_uvm_lite.c
|
||||||
|
@@ -820,7 +820,13 @@ done:
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0)
|
||||||
|
+vm_fault_t _fault(struct vm_fault *vmf)
|
||||||
|
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||||
|
+int _fault(struct vm_fault *vmf)
|
||||||
|
+#else
|
||||||
|
int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
#if defined(NV_VM_FAULT_HAS_ADDRESS)
|
||||||
|
unsigned long vaddr = vmf->address;
|
||||||
|
@@ -828,8 +834,15 @@ int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||||
|
unsigned long vaddr = (unsigned long)vmf->virtual_address;
|
||||||
|
#endif
|
||||||
|
struct page *page = NULL;
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0)
|
||||||
|
+ vm_fault_t retval;
|
||||||
|
+#else
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
+#endif
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||||
|
+ struct vm_area_struct *vma = vmf->vma;
|
||||||
|
+#endif
|
||||||
|
retval = _fault_common(vma, vaddr, &page, vmf->flags);
|
||||||
|
|
||||||
|
vmf->page = page;
|
||||||
|
@@ -868,7 +881,13 @@ static struct vm_operations_struct uvmlite_vma_ops =
|
||||||
|
// it's dealing with anonymous mapping (see handle_pte_fault).
|
||||||
|
//
|
||||||
|
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0)
|
||||||
|
+vm_fault_t _sigbus_fault(struct vm_fault *vmf)
|
||||||
|
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||||
|
+int _sigbus_fault(struct vm_fault *vmf)
|
||||||
|
+#else
|
||||||
|
int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
vmf->page = NULL;
|
||||||
|
return VM_FAULT_SIGBUS;
|
||||||
Executable → Regular
@@ -0,0 +1,4 @@
|
|||||||
|
Section "Files"
|
||||||
|
ModulePath "/usr/lib/nvidia/xorg"
|
||||||
|
ModulePath "/usr/lib/xorg/modules"
|
||||||
|
EndSection
|
||||||
@@ -11,18 +11,11 @@
|
|||||||
<License>NVIDIA</License>
|
<License>NVIDIA</License>
|
||||||
<Summary>NVIDIA drivers for GeForce 6xxx and newer GPUs</Summary>
|
<Summary>NVIDIA drivers for GeForce 6xxx and newer GPUs</Summary>
|
||||||
<Description>NVIDIA graphics drivers provide optimized 2D/3D performance.</Description>
|
<Description>NVIDIA graphics drivers provide optimized 2D/3D performance.</Description>
|
||||||
<Archive sha1sum="e3897bc262e7ab58cda31c1139c3dc62af528113" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86/340.107/NVIDIA-Linux-x86-340.107.run</Archive>
|
<Archive sha1sum="53faf727383b3a698ac382bf9bb981d4a881cb0d" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86/340.108/NVIDIA-Linux-x86-340.108.run</Archive>
|
||||||
<Archive sha1sum="de4d309e52ab489e412fe6de000bb92ca27b6f31" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86_64/340.107/NVIDIA-Linux-x86_64-340.107.run</Archive>
|
<Archive sha1sum="124c8462319fca6c59b10d4bdcd85e3b1c104995" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86_64/340.108/NVIDIA-Linux-x86_64-340.108.run</Archive>
|
||||||
<AdditionalFiles>
|
<AdditionalFiles>
|
||||||
<AdditionalFile target="kernel-4.11.patch">kernel-4.11.patch</AdditionalFile>
|
<AdditionalFile target="unfuck-340.108-build-fix.patch">unfuck-340.108-build-fix.patch</AdditionalFile>
|
||||||
<AdditionalFile target="kernel-5.3.patch">kernel-5.3.patch</AdditionalFile>
|
<AdditionalFile owner="root" permission="0644" target="dkms.conf">dkms.conf</AdditionalFile>
|
||||||
<AdditionalFile target="kernel-5.1.patch">kernel-5.1.patch</AdditionalFile>
|
|
||||||
<AdditionalFile target="kernel-5.4.patch">kernel-5.4.patch</AdditionalFile>
|
|
||||||
<AdditionalFile target="kmem_cache_create_usercopy.patch">kmem_cache_create_usercopy.patch</AdditionalFile>
|
|
||||||
<AdditionalFile target="unregister_procfs_on_failure.patch">unregister_procfs_on_failure.patch</AdditionalFile>
|
|
||||||
<AdditionalFile target="nv_patch_340.107_linux_kernel_5.0">nv_patch_340.107_linux_kernel_5.0</AdditionalFile>
|
|
||||||
<AdditionalFile target="Makefile-kernel">Makefile-kernel</AdditionalFile>
|
|
||||||
<AdditionalFile target="Makefile-uvm">Makefile-uvm</AdditionalFile>
|
|
||||||
</AdditionalFiles>
|
</AdditionalFiles>
|
||||||
<BuildDependencies>
|
<BuildDependencies>
|
||||||
<Dependency version="5.4.6">kernel-module-headers</Dependency>
|
<Dependency version="5.4.6">kernel-module-headers</Dependency>
|
||||||
@@ -42,6 +35,9 @@
|
|||||||
<BuildFlags>
|
<BuildFlags>
|
||||||
<Flag>noDelta</Flag>
|
<Flag>noDelta</Flag>
|
||||||
</BuildFlags>
|
</BuildFlags>
|
||||||
|
<Conflicts>
|
||||||
|
<Package>nvidia340-dkms</Package>
|
||||||
|
</Conflicts>
|
||||||
</Package>
|
</Package>
|
||||||
|
|
||||||
<Package>
|
<Package>
|
||||||
@@ -51,8 +47,11 @@
|
|||||||
<RuntimeDependencies>
|
<RuntimeDependencies>
|
||||||
<Dependency>libXext</Dependency>
|
<Dependency>libXext</Dependency>
|
||||||
<Dependency>xorg-server</Dependency>
|
<Dependency>xorg-server</Dependency>
|
||||||
<Dependency version="current">module-nvidia340</Dependency>
|
|
||||||
<Dependency>libX11</Dependency>
|
<Dependency>libX11</Dependency>
|
||||||
|
<AnyDependency>
|
||||||
|
<Dependency version="current">module-nvidia340</Dependency>
|
||||||
|
<Dependency>nvidia340-dkms</Dependency>
|
||||||
|
</AnyDependency>
|
||||||
</RuntimeDependencies>
|
</RuntimeDependencies>
|
||||||
<Conflicts>
|
<Conflicts>
|
||||||
<Package>xorg-video-nvidia-current</Package>
|
<Package>xorg-video-nvidia-current</Package>
|
||||||
@@ -66,9 +65,6 @@
|
|||||||
<Path fileType="doc">/usr/share/doc</Path>
|
<Path fileType="doc">/usr/share/doc</Path>
|
||||||
<Path fileType="man">/usr/share/man</Path>
|
<Path fileType="man">/usr/share/man</Path>
|
||||||
</Files>
|
</Files>
|
||||||
<Provides>
|
|
||||||
<COMAR script="package.py">System.Package</COMAR>
|
|
||||||
</Provides>
|
|
||||||
<BuildFlags>
|
<BuildFlags>
|
||||||
<Flag>noDelta</Flag>
|
<Flag>noDelta</Flag>
|
||||||
</BuildFlags>
|
</BuildFlags>
|
||||||
@@ -96,16 +92,46 @@
|
|||||||
<Path fileType="library">/usr/lib32</Path>
|
<Path fileType="library">/usr/lib32</Path>
|
||||||
<Path fileType="library">/usr/share/nvidia-current/32bit-ld.so.conf</Path>
|
<Path fileType="library">/usr/share/nvidia-current/32bit-ld.so.conf</Path>
|
||||||
</Files>
|
</Files>
|
||||||
<Provides>
|
|
||||||
<COMAR script="package-emul32.py">System.Package</COMAR>
|
|
||||||
</Provides>
|
|
||||||
<BuildFlags>
|
<BuildFlags>
|
||||||
<Flag>noDelta</Flag>
|
<Flag>noDelta</Flag>
|
||||||
</BuildFlags>
|
</BuildFlags>
|
||||||
</Package>
|
</Package>
|
||||||
|
|
||||||
|
<Package>
|
||||||
|
<Name>nvidia340-dkms</Name>
|
||||||
|
<IsA>driver</IsA>
|
||||||
|
<Summary>NVIDIA driver sources for linux</Summary>
|
||||||
|
<RuntimeDependencies>
|
||||||
|
<Dependency>dkms</Dependency>
|
||||||
|
</RuntimeDependencies>
|
||||||
|
<Files>
|
||||||
|
<Path fileType="config">/etc/modprobe.d/nvidia340-dkms.conf</Path>
|
||||||
|
<Path fileType="data">/usr/src/nvidia*</Path>
|
||||||
|
</Files>
|
||||||
|
<AdditionalFiles>
|
||||||
|
<AdditionalFile owner="root" permission="0644" target="/etc/modprobe.d/nvidia340-dkms.conf">modprobe.conf</AdditionalFile>
|
||||||
|
<AdditionalFile owner="root" permission="0644" target="/usr/share/X11/xorg.conf.d/10-nvidia-glx.conf">xorg.conf</AdditionalFile>
|
||||||
|
</AdditionalFiles>
|
||||||
|
<BuildFlags>
|
||||||
|
<Flag>noDelta</Flag>
|
||||||
|
</BuildFlags>
|
||||||
|
<Conflicts>
|
||||||
|
<Package>module-nvidia340</Package>
|
||||||
|
<Package>nvidia-current-dkms</Package>
|
||||||
|
<Package>nvidia430-dkms</Package>
|
||||||
|
<Package>nvidia390-dkms</Package>
|
||||||
|
</Conflicts>
|
||||||
|
</Package>
|
||||||
|
|
||||||
<History>
|
<History>
|
||||||
<Update release="28">
|
<Update release="29">
|
||||||
|
<Date>2020-01-09</Date>
|
||||||
|
<Version>340.108</Version>
|
||||||
|
<Comment>Add dkms support. Version bump</Comment>
|
||||||
|
<Name>Marcin Bojara</Name>
|
||||||
|
<Email>marcin.bojara@gmail.com</Email>
|
||||||
|
</Update>
|
||||||
|
<Update release="28">
|
||||||
<Date>2019-12-28</Date>
|
<Date>2019-12-28</Date>
|
||||||
<Version>340.107</Version>
|
<Version>340.107</Version>
|
||||||
<Comment>Rebuild for new kernel.</Comment>
|
<Comment>Rebuild for new kernel.</Comment>
|
||||||
@@ -119,7 +145,7 @@
|
|||||||
<Name>Idris Kalp</Name>
|
<Name>Idris Kalp</Name>
|
||||||
<Email>idriskalp@gmail.com</Email>
|
<Email>idriskalp@gmail.com</Email>
|
||||||
</Update>
|
</Update>
|
||||||
<Update release="26">
|
<Update release="26">
|
||||||
<Date>2019-06-09</Date>
|
<Date>2019-06-09</Date>
|
||||||
<Version>340.107</Version>
|
<Version>340.107</Version>
|
||||||
<Comment>Rebuild for new kernel.</Comment>
|
<Comment>Rebuild for new kernel.</Comment>
|
||||||
|
|||||||
@@ -153,6 +153,7 @@
|
|||||||
</BuildFlags>
|
</BuildFlags>
|
||||||
<Conflicts>
|
<Conflicts>
|
||||||
<Package>module-nvidia390</Package>
|
<Package>module-nvidia390</Package>
|
||||||
|
<Package>nvidia340-dkms</Package>
|
||||||
<Package>nvidia430-dkms</Package>
|
<Package>nvidia430-dkms</Package>
|
||||||
<Package>nvidia-current-dkms</Package>
|
<Package>nvidia-current-dkms</Package>
|
||||||
</Conflicts>
|
</Conflicts>
|
||||||
|
|||||||
@@ -187,6 +187,7 @@
|
|||||||
<Package>module-nvidia430</Package>
|
<Package>module-nvidia430</Package>
|
||||||
<Package>nvidia-current-dkms</Package>
|
<Package>nvidia-current-dkms</Package>
|
||||||
<Package>nvidia390-dkms</Package>
|
<Package>nvidia390-dkms</Package>
|
||||||
|
<Package>nvidia340-dkms</Package>
|
||||||
</Conflicts>
|
</Conflicts>
|
||||||
</Package>
|
</Package>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user