diff --git a/README.md b/README.md index 425471927..2e7c84aad 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # NVIDIA Linux Open GPU Kernel Module Source This is the source release of the NVIDIA Linux open GPU kernel modules, -version 580.126.16. +version 580.126.18. ## How to Build @@ -17,7 +17,7 @@ as root: Note that the kernel modules built here must be used with GSP firmware and user-space NVIDIA GPU driver components from a corresponding -580.126.16 driver release. This can be achieved by installing +580.126.18 driver release. This can be achieved by installing the NVIDIA GPU driver from the .run file using the `--no-kernel-modules` option. E.g., @@ -185,7 +185,7 @@ table below). For details on feature support and limitations, see the NVIDIA GPU driver end user README here: -https://us.download.nvidia.com/XFree86/Linux-x86_64/580.126.16/README/kernel_open.html +https://us.download.nvidia.com/XFree86/Linux-x86_64/580.126.18/README/kernel_open.html For vGPU support, please refer to the README.vgpu packaged in the vGPU Host Package for more details. diff --git a/kernel-open/Kbuild b/kernel-open/Kbuild index 7eb77f883..2f4aa3e2f 100644 --- a/kernel-open/Kbuild +++ b/kernel-open/Kbuild @@ -79,7 +79,7 @@ ccflags-y += -I$(src)/common/inc ccflags-y += -I$(src) ccflags-y += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args ccflags-y += -D__KERNEL__ -DMODULE -DNVRM -ccflags-y += -DNV_VERSION_STRING=\"580.126.16\" +ccflags-y += -DNV_VERSION_STRING=\"580.126.18\" # Include and link Tegra out-of-tree modules. ifneq ($(wildcard /usr/src/nvidia/nvidia-oot),) diff --git a/kernel-open/conftest.sh b/kernel-open/conftest.sh index 0d74ec82e..bd7fda6f1 100755 --- a/kernel-open/conftest.sh +++ b/kernel-open/conftest.sh @@ -1390,22 +1390,28 @@ compile_test() { compile_check_conftest "$CODE" "NV_GET_DEV_PAGEMAP_HAS_PGMAP_ARG" "" "types" ;; - zone_device_page_init_has_order_arg) + zone_device_page_init_has_pgmap_and_order_args) # - # Determine if the zone_device_page_init() has an extra argument + # Determine if the zone_device_page_init() has two additional + # arguments # # This change was introduced by d245f9b4ab80 # ("mm/zone_device: support large zone device private folios") # - # in linux-next, expected in v6.19. + # It was further amended in 9387a71ec62c + # (mm/zone_device: reinitialize large zone device private folios) + # + # both commits are in linux-next, expected in v6.19. # CODE=" #include void init_page(void) { struct page *page; - zone_device_page_init(page, 0); + struct dev_pagemap *pgmap; + + zone_device_page_init(page, pgmap, 0); }" - compile_check_conftest "$CODE" "NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG" "" "types" + compile_check_conftest "$CODE" "NV_ZONE_DEVICE_PAGE_INIT_HAS_PGMAP_AND_ORDER_ARGS" "" "types" ;; dev_pagemap_ops_has_folio_free) diff --git a/kernel-open/nvidia-uvm/nvidia-uvm.Kbuild b/kernel-open/nvidia-uvm/nvidia-uvm.Kbuild index c479215af..ea6be6993 100644 --- a/kernel-open/nvidia-uvm/nvidia-uvm.Kbuild +++ b/kernel-open/nvidia-uvm/nvidia-uvm.Kbuild @@ -63,7 +63,7 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += migrate_device_range NV_CONFTEST_TYPE_COMPILE_TESTS += handle_mm_fault_has_pt_regs_arg NV_CONFTEST_TYPE_COMPILE_TESTS += get_dev_pagemap_has_pgmap_arg NV_CONFTEST_TYPE_COMPILE_TESTS += dev_pagemap_ops_has_folio_free -NV_CONFTEST_TYPE_COMPILE_TESTS += zone_device_page_init_has_order_arg +NV_CONFTEST_TYPE_COMPILE_TESTS += zone_device_page_init_has_pgmap_and_order_args NV_CONFTEST_TYPE_COMPILE_TESTS += mempolicy_has_unified_nodes NV_CONFTEST_TYPE_COMPILE_TESTS += mempolicy_has_home_node NV_CONFTEST_TYPE_COMPILE_TESTS += mpol_preferred_many_present diff --git a/kernel-open/nvidia-uvm/uvm_hmm.c b/kernel-open/nvidia-uvm/uvm_hmm.c index 2ddf64b7c..eac8a666a 100644 --- a/kernel-open/nvidia-uvm/uvm_hmm.c +++ b/kernel-open/nvidia-uvm/uvm_hmm.c @@ -78,11 +78,14 @@ module_param(uvm_disable_hmm, bool, 0444); // Pass 0 as the order, when actual large order support is added this // function will need to be revisited // -#if defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG) -#define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, 0) +static __always_inline void nv_zone_device_page_init(struct page *page) +{ +#if defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_PGMAP_AND_ORDER_ARGS) + zone_device_page_init(page, page_pgmap(page), 0); #else -#define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page) + zone_device_page_init(page); #endif +} // The function nv_PageSwapCache() wraps the check for page swap cache flag in // order to support a wide variety of kernel versions. @@ -2156,7 +2159,7 @@ static void fill_dst_pfn(uvm_va_block_t *va_block, UVM_ASSERT(!page_count(dpage)); UVM_ASSERT(!dpage->zone_device_data); - ZONE_DEVICE_PAGE_INIT(dpage); + nv_zone_device_page_init(dpage); dpage->zone_device_data = gpu_chunk; atomic64_inc(&va_block->hmm.va_space->hmm.allocated_page_count); } diff --git a/src/common/inc/nvBldVer.h b/src/common/inc/nvBldVer.h index e7c9f52b0..ad0946ddf 100644 --- a/src/common/inc/nvBldVer.h +++ b/src/common/inc/nvBldVer.h @@ -43,18 +43,18 @@ #endif #if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) -#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r580/r582_12-403" -#define NV_BUILD_CHANGELIST_NUM (37265831) +#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r580/r582_12-405" +#define NV_BUILD_CHANGELIST_NUM (37332263) #define NV_BUILD_TYPE "Official" -#define NV_BUILD_NAME "rel/gpu_drv/r580/r582_12-403" -#define NV_LAST_OFFICIAL_CHANGELIST_NUM (37265831) +#define NV_BUILD_NAME "rel/gpu_drv/r580/r582_12-405" +#define NV_LAST_OFFICIAL_CHANGELIST_NUM (37332263) #else /* Windows builds */ -#define NV_BUILD_BRANCH_VERSION "r582_12-4" -#define NV_BUILD_CHANGELIST_NUM (37198475) +#define NV_BUILD_BRANCH_VERSION "r582_12-5" +#define NV_BUILD_CHANGELIST_NUM (37273147) #define NV_BUILD_TYPE "Official" -#define NV_BUILD_NAME "582.28" -#define NV_LAST_OFFICIAL_CHANGELIST_NUM (37198475) +#define NV_BUILD_NAME "582.34" +#define NV_LAST_OFFICIAL_CHANGELIST_NUM (37273147) #define NV_BUILD_BRANCH_BASE_VERSION R580 #endif // End buildmeister python edited section diff --git a/src/common/inc/nvUnixVersion.h b/src/common/inc/nvUnixVersion.h index 6b01f1ea7..aafd9f5c9 100644 --- a/src/common/inc/nvUnixVersion.h +++ b/src/common/inc/nvUnixVersion.h @@ -4,7 +4,7 @@ #if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \ (defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1) -#define NV_VERSION_STRING "580.126.16" +#define NV_VERSION_STRING "580.126.18" #else diff --git a/version.mk b/version.mk index a30c02a33..bc5192c65 100644 --- a/version.mk +++ b/version.mk @@ -1,5 +1,5 @@ -NVIDIA_VERSION = 580.126.16 -NVIDIA_NVID_VERSION = 580.126.16 +NVIDIA_VERSION = 580.126.18 +NVIDIA_NVID_VERSION = 580.126.18 NVIDIA_NVID_EXTRA = # This file.