diff -Nru nvidia-graphics-drivers-418-server-418.181.07/debian/changelog nvidia-graphics-drivers-418-server-418.181.07/debian/changelog --- nvidia-graphics-drivers-418-server-418.181.07/debian/changelog 2021-01-04 17:03:46.000000000 +0000 +++ nvidia-graphics-drivers-418-server-418.181.07/debian/changelog 2021-02-25 16:21:01.000000000 +0000 @@ -1,3 +1,16 @@ +nvidia-graphics-drivers-418-server (418.181.07-0ubuntu0.18.04.2) bionic; urgency=medium + + * debian/templates/control.in: + - Add missing conflict/replace/provide for libnvidia-common, + nvidia-compute-utils, libnvidia-compute, and nvidia-headless + (LP: #1915935). + * debian/templates/dkms_nvidia.conf.in, + debian/dkms_nvidia/patches/buildfix_kernel_5.11.patch: + - Add support for Linux 5.11 (LP: #1916908). + Note: UVM is disabled for Linux >= 5.10. + + -- Alberto Milone Thu, 25 Feb 2021 17:21:01 +0100 + nvidia-graphics-drivers-418-server (418.181.07-0ubuntu0.18.04.1) bionic; urgency=medium * New upstream release (LP: #1906680): diff -Nru nvidia-graphics-drivers-418-server-418.181.07/debian/control nvidia-graphics-drivers-418-server-418.181.07/debian/control --- nvidia-graphics-drivers-418-server-418.181.07/debian/control 2021-01-04 17:03:46.000000000 +0000 +++ nvidia-graphics-drivers-418-server-418.181.07/debian/control 2021-02-25 16:21:01.000000000 +0000 @@ -121,16 +121,16 @@ Multi-Arch: same Depends: ${misc:Depends}, ${shlibs:Depends} -Provides: nvidia-opencl-icd, opencl-icd, libnvidia-ml1 (= ${source:Version}), +Provides: libnvidia-compute, nvidia-opencl-icd, opencl-icd, libnvidia-ml1 (= ${source:Version}), libcuda-5.0-1, libcuda-5.5-1, libcuda-6.0-1, libcuda-6.5-1, libcuda-7.0-1, libcuda-7.5-1, libcuda-8.0-1, libcuda-9.0-1, libcuda-9.1-1, libcuda-9.2-1, libcuda-10.0-1, libcuda-10.1-1, libcuda1 (= ${source:Version}) -Conflicts: nvidia-opencl-icd, +Conflicts: libnvidia-compute, nvidia-opencl-icd, libcuda-5.0-1, libcuda-5.5-1, libcuda-6.0-1, libcuda-6.5-1, libcuda-7.0-1, libcuda-7.5-1, libcuda-8.0-1, libcuda-9.0-1, libcuda-9.1-1, libcuda-9.2-1, libcuda-10.0-1, libcuda-10.1-1 -Replaces: nvidia-opencl-icd, libnvidia-compute-418-server (<< 390.25-0ubuntu2~), +Replaces: libnvidia-compute, nvidia-opencl-icd, libnvidia-compute-418-server (<< 390.25-0ubuntu2~), libcuda-5.0-1, libcuda-5.5-1, libcuda-6.0-1, libcuda-6.5-1, libcuda-7.0-1, libcuda-7.5-1, libcuda-8.0-1, libcuda-9.0-1, libcuda-9.1-1, libcuda-9.2-1, libcuda-10.0-1, libcuda-10.1-1 @@ -144,9 +144,9 @@ Depends: libnvidia-compute-418-server, adduser, ${misc:Depends}, ${shlibs:Depends} -Provides: nvidia-persistenced -Conflicts: nvidia-persistenced -Replaces: nvidia-persistenced +Provides: nvidia-compute-utils, nvidia-persistenced +Conflicts: nvidia-compute-utils, nvidia-persistenced +Replaces: nvidia-compute-utils, nvidia-persistenced Description: NVIDIA compute utilities This package provides utility binaries for paraller general purpose computing use cases with the NVIDIA Server Driver. @@ -182,6 +182,9 @@ Package: nvidia-headless-418-server Architecture: amd64 +Conflicts: nvidia-headless +Provides: nvidia-headless +Replaces: nvidia-headless Depends: nvidia-headless-no-dkms-418-server, nvidia-dkms-418-server, @@ -226,6 +229,7 @@ Architecture: all Multi-Arch: foreign Breaks: libnvidia-gl-418-server (<< 390.25-0ubuntu2~) +Conflicts: libnvidia-common Replaces: libnvidia-common, libnvidia-gl-418-server (<< 390.25-0ubuntu2~) Provides: libnvidia-common Depends: diff -Nru nvidia-graphics-drivers-418-server-418.181.07/debian/dkms.conf.fragment nvidia-graphics-drivers-418-server-418.181.07/debian/dkms.conf.fragment --- nvidia-graphics-drivers-418-server-418.181.07/debian/dkms.conf.fragment 2021-01-04 17:03:46.000000000 +0000 +++ nvidia-graphics-drivers-418-server-418.181.07/debian/dkms.conf.fragment 2021-02-25 16:21:01.000000000 +0000 @@ -1,3 +1,5 @@ -BUILT_MODULE_NAME[3]="nvidia-uvm" -DEST_MODULE_LOCATION[3]="/kernel/drivers/char/drm" +if [ -z "$EXCLUDED" ]; then + BUILT_MODULE_NAME[3]="nvidia-uvm" + DEST_MODULE_LOCATION[3]="/kernel/drivers/char/drm" +fi #PATCH[2]="buildfix_kernel_4.9_amd64_only.patch" diff -Nru nvidia-graphics-drivers-418-server-418.181.07/debian/dkms_nvidia/patches/buildfix_kernel_5.11.patch nvidia-graphics-drivers-418-server-418.181.07/debian/dkms_nvidia/patches/buildfix_kernel_5.11.patch --- nvidia-graphics-drivers-418-server-418.181.07/debian/dkms_nvidia/patches/buildfix_kernel_5.11.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-418-server-418.181.07/debian/dkms_nvidia/patches/buildfix_kernel_5.11.patch 2021-02-25 16:20:48.000000000 +0000 @@ -0,0 +1,431 @@ +From 4e667645ab0b62a566b0f02a7d0d042c2557e02d Mon Sep 17 00:00:00 2001 +From: Alberto Milone +Date: Wed, 24 Feb 2021 16:55:34 +0100 +Subject: [PATCH 1/1] Add support for Linux 5.11 + +--- + common/inc/nv-linux.h | 1 - + conftest.sh | 134 +++++++++++++++++++++++++++-------- + nvidia-drm/nvidia-drm-crtc.c | 45 +++--------- + nvidia-drm/nvidia-drm-drv.c | 10 ++- + nvidia-drm/nvidia-drm-gem.c | 36 +++++++++- + nvidia-drm/nvidia-drm.Kbuild | 4 +- + nvidia/nv.c | 9 +++ + nvidia/nvidia.Kbuild | 2 + + 8 files changed, 169 insertions(+), 72 deletions(-) + +diff --git a/common/inc/nv-linux.h b/common/inc/nv-linux.h +index a1ec4be..920383d 100644 +--- a/common/inc/nv-linux.h ++++ b/common/inc/nv-linux.h +@@ -115,7 +115,6 @@ + + #include /* module_param() */ + #include /* flush_tlb(), flush_tlb_all() */ +-#include /* page table entry lookup */ + + #include /* pci_find_class, etc */ + #include /* tasklets, interrupt helpers */ +diff --git a/conftest.sh b/conftest.sh +index a81f3ff..19f417d 100755 +--- a/conftest.sh ++++ b/conftest.sh +@@ -1326,10 +1326,6 @@ compile_test() { + #include + #endif + +- #if defined(NV_DRM_DRM_PRIME_H_PRESENT) +- #include +- #endif +- + #if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE) + #error DRM not enabled + #endif +@@ -1337,14 +1333,6 @@ compile_test() { + void conftest_drm_available(void) { + struct drm_driver drv; + +- /* 2013-01-15 89177644a7b6306e6084a89eab7e290f4bfef397 */ +- drv.gem_prime_pin = 0; +- drv.gem_prime_get_sg_table = 0; +- drv.gem_prime_vmap = 0; +- drv.gem_prime_vunmap = 0; +- (void)drm_gem_prime_import; +- (void)drm_gem_prime_export; +- + /* 2013-10-02 1bb72532ac260a2d3982b40bdd4c936d779d0d16 */ + (void)drm_dev_alloc; + +@@ -3068,24 +3056,6 @@ compile_test() { + compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_CRTC_DESTROY_STATE_HAS_CRTC_ARG" "" "types" + ;; + +- drm_crtc_helper_funcs_has_atomic_enable) +- # +- # Determine if struct drm_crtc_helper_funcs has an 'atomic_enable' +- # member. +- # +- # The 'enable' callback was renamed to 'atomic_enable' by: +- # 2017-06-30 0b20a0f8c3cb6f74fe326101b62eeb5e2c56a53c +- # +- CODE=" +- #include +- void conftest_drm_crtc_helper_funcs_has_atomic_enable(void) { +- struct drm_crtc_helper_funcs funcs; +- funcs.atomic_enable = NULL; +- }" +- +- compile_check_conftest "$CODE" "NV_DRM_CRTC_HELPER_FUNCS_HAS_ATOMIC_ENABLE" "" "types" +- ;; +- + drm_atomic_helper_connector_dpms) + # + # Determine if the function drm_atomic_helper_connector_dpms() is present. +@@ -3918,6 +3888,93 @@ compile_test() { + compile_check_conftest "$CODE" "NV_DRM_PRIME_PAGES_TO_SG_HAS_DRM_DEVICE_ARG" "" "types" + ;; + ++ drm_driver_has_gem_prime_callbacks) ++ # ++ # Determine if drm_driver structure has the GEM and PRIME callback ++ # function pointers. ++ # ++ # The GEM and PRIME callback are removed from drm_driver ++ # structure, by commit d693def4fd1c ("drm: Remove obsolete GEM and ++ # PRIME callbacks from struct drm_driver"). ++ # ++ CODE=" ++ #if defined(NV_DRM_DRMP_H_PRESENT) ++ #include ++ #endif ++ ++ #if defined(NV_DRM_DRM_DRV_H_PRESENT) ++ #include ++ #endif ++ ++ void conftest_drm_driver_has_gem_and_prime_callbacks(void) { ++ struct drm_driver drv; ++ ++ drv.gem_prime_pin = 0; ++ drv.gem_prime_get_sg_table = 0; ++ drv.gem_prime_vmap = 0; ++ drv.gem_prime_vunmap = 0; ++ drv.gem_vm_ops = 0; ++ }" ++ ++ compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_PRIME_CALLBACKS" "" "types" ++ ;; ++ ++ drm_crtc_atomic_check_has_atomic_state_arg) ++ # ++ # Determine if drm_crtc_helper_funcs::atomic_check takes 'state' ++ # argument of 'struct drm_atomic_state' type. ++ # ++ # The commit 29b77ad7b9ca ("drm/atomic: Pass the full state to CRTC ++ # atomic_check") passed the full atomic state to ++ # drm_crtc_helper_funcs::atomic_check() ++ # ++ # Turning incompatible-pointer-types check into error is necessary ++ # to make test fail if drm_crtc_helper_funcs::atomic_check is taking ++ # 'crtc_state' instead of 'state', otherwise test simply pass ++ # because compilation succeeds throwing incompatible-pointer-types ++ # warning. This test is expected to fail on Linux kernels <= v5.10, ++ # the commit ea8daa7b9784 ("kbuild: Add option to turn incompatible ++ # pointer check into error") has turned incompatible-pointer-types ++ # check into error from v4.6. ++ # ++ echo "$CONFTEST_PREAMBLE ++ #include ++ int conftest_drm_crtc_atomic_check_has_atomic_state_arg( ++ struct drm_crtc *crtc, struct drm_atomic_state *state) { ++ const struct drm_crtc_helper_funcs *funcs = crtc->helper_private; ++ return funcs->atomic_check(crtc, state); ++ }" > conftest$$.c ++ ++ $CC $CFLAGS -Werror=incompatible-pointer-types -c conftest$$.c > /dev/null 2>&1 ++ rm -f conftest$$.c ++ ++ if [ -f conftest$$.o ]; then ++ rm -f conftest$$.o ++ echo "#define NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types" ++ else ++ echo "#undef NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types" ++ fi ++ ;; ++ ++ drm_gem_object_vmap_has_map_arg) ++ # ++ # Determine if drm_gem_object_funcs::vmap takes 'map' ++ # argument of 'struct dma_buf_map' type. ++ # ++ # The commit 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM ++ # vmap ops and convert GEM backends") update ++ # drm_gem_object_funcs::vmap to take 'map' argument. ++ # ++ CODE=" ++ #include ++ int conftest_drm_gem_object_vmap_has_map_arg( ++ struct drm_gem_object *obj, struct dma_buf_map *map) { ++ return obj->funcs->vmap(obj, map); ++ }" ++ ++ compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_VMAP_HAS_MAP_ARG" "" "types" ++ ;; ++ + iterate_fd) + # + # iterate_fd() was added by +@@ -3925,6 +3982,7 @@ compile_test() { + # in v3.7-rc1 (2012-09-26) + # + CODE=" ++ #include + #include + void conftest_iterate_fd(void) { + iterate_fd(); +@@ -3932,6 +3990,22 @@ compile_test() { + compile_check_conftest "$CODE" "NV_ITERATE_FD_PRESENT" "" "functions" + ;; + ++ seq_read_iter) ++ # ++ # Determine if seq_read_iter() is present ++ # ++ # seq_read_iter() was added by commit d4d50710a8b4 ("seq_file: ++ # add seq_read_iter") in v5.10-rc1 (2020-11-04). ++ # ++ CODE=" ++ #include ++ void conftest_seq_read_iter(void) { ++ seq_read_iter(); ++ }" ++ ++ compile_check_conftest "$CODE" "NV_SEQ_READ_ITER_PRESENT" "" "functions" ++ ;; ++ + esac + } + +diff --git a/nvidia-drm/nvidia-drm-crtc.c b/nvidia-drm/nvidia-drm-crtc.c +index dfe7759..b75b712 100644 +--- a/nvidia-drm/nvidia-drm-crtc.c ++++ b/nvidia-drm/nvidia-drm-crtc.c +@@ -336,9 +336,18 @@ static int head_modeset_config_attach_connector( + * the 'nv_drm_crtc_state::req_config', that is fine becase 'nv_drm_crtc_state' + * will be discarded if ->atomic_check() fails. + */ ++#if defined(NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG) ++static int nv_drm_crtc_atomic_check(struct drm_crtc *crtc, ++ struct drm_atomic_state *state) ++#else + static int nv_drm_crtc_atomic_check(struct drm_crtc *crtc, + struct drm_crtc_state *crtc_state) ++#endif + { ++#if defined(NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG) ++ struct drm_crtc_state *crtc_state = ++ drm_atomic_get_new_crtc_state(state, crtc); ++#endif + struct nv_drm_crtc_state *nv_crtc_state = to_nv_crtc_state(crtc_state); + struct NvKmsKapiHeadRequestedConfig *req_config = + &nv_crtc_state->req_config; +@@ -392,44 +401,8 @@ nv_drm_crtc_mode_fixup(struct drm_crtc *crtc, + return true; + } + +-static void nv_drm_crtc_prepare(struct drm_crtc *crtc) +-{ +- +-} +- +-static void nv_drm_crtc_commit(struct drm_crtc *crtc) +-{ +- +-} +- +-static void nv_drm_crtc_disable(struct drm_crtc *crtc) +-{ +- +-} +- +-#ifdef NV_DRM_CRTC_HELPER_FUNCS_HAS_ATOMIC_ENABLE +-static void nv_drm_crtc_atomic_enable(struct drm_crtc *crtc, +- struct drm_crtc_state *old_crtc_state) +-{ +- +-} +-#else +-static void nv_drm_crtc_enable(struct drm_crtc *crtc) +-{ +- +-} +-#endif +- + static const struct drm_crtc_helper_funcs nv_crtc_helper_funcs = { + .atomic_check = nv_drm_crtc_atomic_check, +- .prepare = nv_drm_crtc_prepare, +- .commit = nv_drm_crtc_commit, +-#ifdef NV_DRM_CRTC_HELPER_FUNCS_HAS_ATOMIC_ENABLE +- .atomic_enable = nv_drm_crtc_atomic_enable, +-#else +- .enable = nv_drm_crtc_enable, +-#endif +- .disable = nv_drm_crtc_disable, + .mode_fixup = nv_drm_crtc_mode_fixup, + }; + +diff --git a/nvidia-drm/nvidia-drm-drv.c b/nvidia-drm/nvidia-drm-drv.c +index 0013a9f..5ca177b 100644 +--- a/nvidia-drm/nvidia-drm-drv.c ++++ b/nvidia-drm/nvidia-drm-drv.c +@@ -704,12 +704,16 @@ static struct drm_driver nv_drm_driver = { + + .prime_handle_to_fd = drm_gem_prime_handle_to_fd, + .prime_fd_to_handle = drm_gem_prime_fd_to_handle, +- .gem_prime_export = drm_gem_prime_export, + .gem_prime_import = nv_drm_gem_prime_import, ++ ++#if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_CALLBACKS) ++ .gem_prime_export = drm_gem_prime_export, + .gem_prime_get_sg_table = nv_drm_gem_prime_get_sg_table, + .gem_prime_vmap = nv_drm_gem_prime_vmap, + .gem_prime_vunmap = nv_drm_gem_prime_vunmap, + ++ .gem_vm_ops = &nv_drm_gem_vma_ops, ++#endif + #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ) + .gem_prime_res_obj = nv_drm_gem_prime_res_obj, + #endif +@@ -732,11 +736,13 @@ static struct drm_driver nv_drm_driver = { + .desc = "NVIDIA DRM driver", + .date = "20160202", + ++#if defined(CONFIG_DRM_LEGACY) + #if defined(NV_DRM_DRIVER_HAS_LEGACY_DEV_LIST) + .legacy_dev_list = LIST_HEAD_INIT(nv_drm_driver.legacy_dev_list), + #else + .device_list = LIST_HEAD_INIT(nv_drm_driver.device_list), + #endif ++#endif + }; + + +@@ -763,8 +769,6 @@ static void nv_drm_update_drm_driver_features(void) + nv_drm_driver.dumb_create = nv_drm_dumb_create; + nv_drm_driver.dumb_map_offset = nv_drm_dumb_map_offset; + nv_drm_driver.dumb_destroy = drm_gem_dumb_destroy; +- +- nv_drm_driver.gem_vm_ops = &nv_drm_gem_vma_ops; + #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ + } + +diff --git a/nvidia-drm/nvidia-drm-gem.c b/nvidia-drm/nvidia-drm-gem.c +index dfd1fb9..5280a72 100644 +--- a/nvidia-drm/nvidia-drm-gem.c ++++ b/nvidia-drm/nvidia-drm-gem.c +@@ -57,10 +57,44 @@ void nv_drm_gem_free(struct drm_gem_object *gem) + nv_gem->ops->free(nv_gem); + } + +-#if !defined(NV_DRM_DRIVER_HAS_GEM_FREE_OBJECT) ++#if !defined(NV_DRM_DRIVER_HAS_GEM_PRIME_CALLBACKS) && \ ++ defined(NV_DRM_GEM_OBJECT_VMAP_HAS_MAP_ARG) ++static int nv_drm_gem_vmap(struct drm_gem_object *gem, ++ struct dma_buf_map *map) ++{ ++ map->vaddr = nv_drm_gem_prime_vmap(gem); ++ if (map->vaddr == NULL) { ++ return -ENOMEM; ++ } ++ map->is_iomem = true; ++ return 0; ++} ++ ++static void nv_drm_gem_vunmap(struct drm_gem_object *gem, ++ struct dma_buf_map *map) ++{ ++ nv_drm_gem_prime_vunmap(gem, map->vaddr); ++ map->vaddr = NULL; ++} ++#endif ++ ++#if !defined(NV_DRM_DRIVER_HAS_GEM_FREE_OBJECT) || \ ++ !defined(NV_DRM_DRIVER_HAS_GEM_PRIME_CALLBACKS) + static struct drm_gem_object_funcs nv_drm_gem_funcs = { + .free = nv_drm_gem_free, + .get_sg_table = nv_drm_gem_prime_get_sg_table, ++ ++#if !defined(NV_DRM_DRIVER_HAS_GEM_PRIME_CALLBACKS) ++ .export = drm_gem_prime_export, ++#if defined(NV_DRM_GEM_OBJECT_VMAP_HAS_MAP_ARG) ++ .vmap = nv_drm_gem_vmap, ++ .vunmap = nv_drm_gem_vunmap, ++#else ++ .vmap = nv_drm_gem_prime_vmap, ++ .vunmap = nv_drm_gem_prime_vunmap, ++#endif ++ .vm_ops = &nv_drm_gem_vma_ops, ++#endif + }; + #endif + +diff --git a/nvidia-drm/nvidia-drm.Kbuild b/nvidia-drm/nvidia-drm.Kbuild +index 07eeb8f..ec8bb67 100644 +--- a/nvidia-drm/nvidia-drm.Kbuild ++++ b/nvidia-drm/nvidia-drm.Kbuild +@@ -85,7 +85,6 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += vm_fault_present + NV_CONFTEST_TYPE_COMPILE_TESTS += vm_ops_fault_removed_vma_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += kref_has_refcount_of_type_refcount_t + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_atomic_helper_crtc_destroy_state_has_crtc_arg +-NV_CONFTEST_TYPE_COMPILE_TESTS += drm_crtc_helper_funcs_has_atomic_enable + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_mode_object_find_has_file_priv_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += dma_buf_owner + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_connector_list_iter +@@ -98,3 +97,6 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_display_mode_has_vrefresh + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_master_set_has_int_return_type + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_gem_free_object + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_prime_pages_to_sg_has_drm_device_arg ++NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_gem_prime_callbacks ++NV_CONFTEST_TYPE_COMPILE_TESTS += drm_crtc_atomic_check_has_atomic_state_arg ++NV_CONFTEST_TYPE_COMPILE_TESTS += drm_gem_object_vmap_has_map_arg +diff --git a/nvidia/nv.c b/nvidia/nv.c +index 14239c5..3165109 100644 +--- a/nvidia/nv.c ++++ b/nvidia/nv.c +@@ -58,6 +58,15 @@ MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER); + #endif + #endif + ++#if defined(NV_SEQ_READ_ITER_PRESENT) ++#include ++#include ++#include ++#include ++#include ++#include ++#endif ++ + #include "conftest/patches.h" + #include "nv-pci-types.h" + +diff --git a/nvidia/nvidia.Kbuild b/nvidia/nvidia.Kbuild +index 0ba7422..453ebd6 100644 +--- a/nvidia/nvidia.Kbuild ++++ b/nvidia/nvidia.Kbuild +@@ -162,11 +162,13 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += ktime_get_raw_ts64 + NV_CONFTEST_FUNCTION_COMPILE_TESTS += ktime_get_real_ts64 + NV_CONFTEST_FUNCTION_COMPILE_TESTS += vga_tryget + NV_CONFTEST_FUNCTION_COMPILE_TESTS += iterate_fd ++NV_CONFTEST_FUNCTION_COMPILE_TESTS += seq_read_iter + + NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_gpl_of_node_to_nid + NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_gpl_sme_active + NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_swiotlb_map_sg_attrs + NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_swiotlb_dma_ops ++NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_close_fd + + NV_CONFTEST_TYPE_COMPILE_TESTS += i2c_adapter + NV_CONFTEST_TYPE_COMPILE_TESTS += pm_message_t +-- +2.25.1 + diff -Nru nvidia-graphics-drivers-418-server-418.181.07/debian/dkms_nvidia.conf nvidia-graphics-drivers-418-server-418.181.07/debian/dkms_nvidia.conf --- nvidia-graphics-drivers-418-server-418.181.07/debian/dkms_nvidia.conf 2021-01-04 17:03:46.000000000 +0000 +++ nvidia-graphics-drivers-418-server-418.181.07/debian/dkms_nvidia.conf 2021-02-25 16:21:01.000000000 +0000 @@ -1,6 +1,18 @@ PACKAGE_NAME="nvidia" PACKAGE_VERSION="418.181.07" CLEAN="make clean" +UNAME=${kernelver%%-*} +UNAME_MAJ=${UNAME%%.*} +UNAME_MIN=${UNAME#*.} +UNAME_MIN=${UNAME_MIN%%.*} +TARGET_MAJ=5 +TARGET_MIN=10 +# Disable UVM on from Linux 5.10 on +if [ "$UNAME_MAJ" -gt "$TARGET_MAJ" ] || [ "$UNAME_MAJ" -eq "$TARGET_MAJ" ] && [ "$UNAME_MIN" -ge "$TARGET_MIN" ]; then + EXCLUDED="nvidia-uvm" +else + EXCLUDED="" +fi BUILT_MODULE_NAME[0]="nvidia" DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm" PROCS_NUM=`nproc` @@ -13,4 +25,5 @@ DEST_MODULE_LOCATION[2]="/kernel/drivers/char/drm" AUTOINSTALL="yes" PATCH[0]="disable_fstack-clash-protection_fcf-protection.patch" +PATCH[1]="buildfix_kernel_5.11.patch" #PATCH_MATCH[0]="^4.[6-7]" diff -Nru nvidia-graphics-drivers-418-server-418.181.07/debian/templates/control.in nvidia-graphics-drivers-418-server-418.181.07/debian/templates/control.in --- nvidia-graphics-drivers-418-server-418.181.07/debian/templates/control.in 2021-01-04 17:03:46.000000000 +0000 +++ nvidia-graphics-drivers-418-server-418.181.07/debian/templates/control.in 2021-02-25 16:20:45.000000000 +0000 @@ -121,16 +121,16 @@ Multi-Arch: same Depends: ${misc:Depends}, ${shlibs:Depends} -Provides: nvidia-opencl-icd, opencl-icd, libnvidia-ml1 (= ${source:Version}), +Provides: libnvidia-compute, nvidia-opencl-icd, opencl-icd, libnvidia-ml1 (= ${source:Version}), libcuda-5.0-1, libcuda-5.5-1, libcuda-6.0-1, libcuda-6.5-1, libcuda-7.0-1, libcuda-7.5-1, libcuda-8.0-1, libcuda-9.0-1, libcuda-9.1-1, libcuda-9.2-1, libcuda-10.0-1, libcuda-10.1-1, libcuda1 (= ${source:Version}) -Conflicts: nvidia-opencl-icd, +Conflicts: libnvidia-compute, nvidia-opencl-icd, libcuda-5.0-1, libcuda-5.5-1, libcuda-6.0-1, libcuda-6.5-1, libcuda-7.0-1, libcuda-7.5-1, libcuda-8.0-1, libcuda-9.0-1, libcuda-9.1-1, libcuda-9.2-1, libcuda-10.0-1, libcuda-10.1-1 -Replaces: nvidia-opencl-icd, libnvidia-compute-#FLAVOUR# (<< 390.25-0ubuntu2~), +Replaces: libnvidia-compute, nvidia-opencl-icd, libnvidia-compute-#FLAVOUR# (<< 390.25-0ubuntu2~), libcuda-5.0-1, libcuda-5.5-1, libcuda-6.0-1, libcuda-6.5-1, libcuda-7.0-1, libcuda-7.5-1, libcuda-8.0-1, libcuda-9.0-1, libcuda-9.1-1, libcuda-9.2-1, libcuda-10.0-1, libcuda-10.1-1 @@ -144,9 +144,9 @@ Depends: libnvidia-compute-#FLAVOUR#, adduser, ${misc:Depends}, ${shlibs:Depends} -Provides: nvidia-persistenced -Conflicts: nvidia-persistenced -Replaces: nvidia-persistenced +Provides: nvidia-compute-utils, nvidia-persistenced +Conflicts: nvidia-compute-utils, nvidia-persistenced +Replaces: nvidia-compute-utils, nvidia-persistenced Description: NVIDIA compute utilities This package provides utility binaries for paraller general purpose computing use cases with the NVIDIA Server Driver. @@ -182,6 +182,9 @@ Package: nvidia-headless-#FLAVOUR# Architecture: amd64 +Conflicts: nvidia-headless +Provides: nvidia-headless +Replaces: nvidia-headless Depends: nvidia-headless-no-dkms-#FLAVOUR#, nvidia-dkms-#FLAVOUR#, @@ -226,6 +229,7 @@ Architecture: all Multi-Arch: foreign Breaks: libnvidia-gl-#FLAVOUR# (<< 390.25-0ubuntu2~) +Conflicts: libnvidia-common Replaces: libnvidia-common, libnvidia-gl-#FLAVOUR# (<< 390.25-0ubuntu2~) Provides: libnvidia-common Depends: diff -Nru nvidia-graphics-drivers-418-server-418.181.07/debian/templates/dkms.conf.fragment.in nvidia-graphics-drivers-418-server-418.181.07/debian/templates/dkms.conf.fragment.in --- nvidia-graphics-drivers-418-server-418.181.07/debian/templates/dkms.conf.fragment.in 2021-01-04 17:03:46.000000000 +0000 +++ nvidia-graphics-drivers-418-server-418.181.07/debian/templates/dkms.conf.fragment.in 2021-02-25 16:20:43.000000000 +0000 @@ -1,3 +1,5 @@ -BUILT_MODULE_NAME[3]="nvidia-uvm" -DEST_MODULE_LOCATION[3]="/kernel/drivers/char/drm" +if [ -z "$EXCLUDED" ]; then + BUILT_MODULE_NAME[3]="nvidia-uvm" + DEST_MODULE_LOCATION[3]="/kernel/drivers/char/drm" +fi #PATCH[2]="buildfix_kernel_4.9_amd64_only.patch" diff -Nru nvidia-graphics-drivers-418-server-418.181.07/debian/templates/dkms_nvidia.conf.in nvidia-graphics-drivers-418-server-418.181.07/debian/templates/dkms_nvidia.conf.in --- nvidia-graphics-drivers-418-server-418.181.07/debian/templates/dkms_nvidia.conf.in 2021-01-04 17:03:46.000000000 +0000 +++ nvidia-graphics-drivers-418-server-418.181.07/debian/templates/dkms_nvidia.conf.in 2021-02-25 16:20:49.000000000 +0000 @@ -1,6 +1,18 @@ PACKAGE_NAME="nvidia" PACKAGE_VERSION="#VERSION#" CLEAN="make clean" +UNAME=${kernelver%%-*} +UNAME_MAJ=${UNAME%%.*} +UNAME_MIN=${UNAME#*.} +UNAME_MIN=${UNAME_MIN%%.*} +TARGET_MAJ=5 +TARGET_MIN=10 +# Disable UVM on from Linux 5.10 on +if [ "$UNAME_MAJ" -gt "$TARGET_MAJ" ] || [ "$UNAME_MAJ" -eq "$TARGET_MAJ" ] && [ "$UNAME_MIN" -ge "$TARGET_MIN" ]; then + EXCLUDED="nvidia-uvm" +else + EXCLUDED="" +fi BUILT_MODULE_NAME[0]="nvidia" DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm" PROCS_NUM=`nproc` @@ -13,4 +25,5 @@ DEST_MODULE_LOCATION[2]="/kernel/drivers/char/drm" AUTOINSTALL="yes" PATCH[0]="disable_fstack-clash-protection_fcf-protection.patch" +PATCH[1]="buildfix_kernel_5.11.patch" #PATCH_MATCH[0]="^4.[6-7]"