diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 637a0cbed..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,220 +0,0 @@ -# Changelog - -## Release 550 Entries - -### [550.90.07] 2024-06-04 - -### [550.78] 2024-04-25 - -### [550.76] 2024-04-17 - -### [550.67] 2024-03-19 - -### [550.54.15] 2024-03-18 - -### [550.54.14] 2024-02-23 - -#### Added - -- Added vGPU Host and vGPU Guest support. For vGPU Host, please refer to the README.vgpu packaged in the vGPU Host Package for more details. - -### [550.40.07] 2024-01-24 - -#### Fixed - -- Set INSTALL_MOD_DIR only if it's not defined, [#570](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/570) by @keelung-yang - -## Release 545 Entries - -### [545.29.06] 2023-11-22 - -#### Fixed - -- The brightness control of NVIDIA seems to be broken, [#573](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/573) - -### [545.29.02] 2023-10-31 - -### [545.23.06] 2023-10-17 - -#### Fixed - -- Fix always-false conditional, [#493](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/493) by @meme8383 - -#### Added - -- Added beta-quality support for GeForce and Workstation GPUs. Please see the "Open Linux Kernel Modules" chapter in the NVIDIA GPU driver end user README for details. - -## Release 535 Entries - -### [535.129.03] 2023-10-31 - -### [535.113.01] 2023-09-21 - -#### Fixed - -- Fixed building main against current centos stream 8 fails, [#550](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/550) by @airlied - -### [535.104.05] 2023-08-22 - -### [535.98] 2023-08-08 - -### [535.86.10] 2023-07-31 - -### [535.86.05] 2023-07-18 - -### [535.54.03] 2023-06-14 - -### [535.43.02] 2023-05-30 - -#### Fixed - -- Fixed console restore with traditional VGA consoles. - -#### Added - -- Added support for Run Time D3 (RTD3) on Ampere and later GPUs. -- Added support for G-Sync on desktop GPUs. - -## Release 530 Entries - -### [530.41.03] 2023-03-23 - -### [530.30.02] 2023-02-28 - -#### Changed - -- GSP firmware is now distributed as `gsp_tu10x.bin` and `gsp_ga10x.bin` to better reflect the GPU architectures supported by each firmware file in this release. - - The .run installer will continue to install firmware to /lib/firmware/nvidia/ and the nvidia.ko kernel module will load the appropriate firmware for each GPU at runtime. - -#### Fixed - -- Add support for resizable BAR on Linux when NVreg_EnableResizableBar=1 module param is set. [#3](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/3) by @sjkelly - -#### Added - -- Support for power management features like Suspend, Hibernate and Resume. - -## Release 525 Entries - -### [525.147.05] 2023-10-31 - -#### Fixed - -- Fix nvidia_p2p_get_pages(): Fix double-free in register-callback error path, [#557](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/557) by @BrendanCunningham - -### [525.125.06] 2023-06-26 - -### [525.116.04] 2023-05-09 - -### [525.116.03] 2023-04-25 - -### [525.105.17] 2023-03-30 - -### [525.89.02] 2023-02-08 - -### [525.85.12] 2023-01-30 - -### [525.85.05] 2023-01-19 - -#### Fixed - -- Fix build problems with Clang 15.0, [#377](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/377) by @ptr1337 - -### [525.78.01] 2023-01-05 - -### [525.60.13] 2022-12-05 - -### [525.60.11] 2022-11-28 - -#### Fixed - -- Fixed nvenc compatibility with usermode clients [#104](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/104) - -### [525.53] 2022-11-10 - -#### Changed - -- GSP firmware is now distributed as multiple firmware files: this release has `gsp_tu10x.bin` and `gsp_ad10x.bin` replacing `gsp.bin` from previous releases. - - Each file is named after a GPU architecture and supports GPUs from one or more architectures. This allows GSP firmware to better leverage each architecture's capabilities. - - The .run installer will continue to install firmware to `/lib/firmware/nvidia/` and the `nvidia.ko` kernel module will load the appropriate firmware for each GPU at runtime. - -#### Fixed - -- Add support for IBT (indirect branch tracking) on supported platforms, [#256](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/256) by @rnd-ash -- Return EINVAL when [failing to] allocating memory, [#280](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/280) by @YusufKhan-gamedev -- Fix various typos in nvidia/src/kernel, [#16](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/16) by @alexisgeoffrey -- Added support for rotation in X11, Quadro Sync, Stereo, and YUV 4:2:0 on Turing. - -## Release 520 Entries - -### [520.61.07] 2022-10-20 - -### [520.56.06] 2022-10-12 - -#### Added - -- Introduce support for GeForce RTX 4090 GPUs. - -### [520.61.05] 2022-10-10 - -#### Added - -- Introduce support for NVIDIA H100 GPUs. - -#### Fixed - -- Fix/Improve Makefile, [#308](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/308/) by @izenynn -- Make nvLogBase2 more efficient, [#177](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/177/) by @DMaroo -- nv-pci: fixed always true expression, [#195](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/195/) by @ValZapod - -## Release 515 Entries - -### [515.76] 2022-09-20 - -#### Fixed - -- Improved compatibility with new Linux kernel releases -- Fixed possible excessive GPU power draw on an idle X11 or Wayland desktop when driving high resolutions or refresh rates - -### [515.65.07] 2022-10-19 - -### [515.65.01] 2022-08-02 - -#### Fixed - -- Collection of minor fixes to issues, [#6](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/61) by @Joshua-Ashton -- Remove unnecessary use of acpi_bus_get_device(). - -### [515.57] 2022-06-28 - -#### Fixed - -- Backtick is deprecated, [#273](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/273) by @arch-user-france1 - -### [515.48.07] 2022-05-31 - -#### Added - -- List of compatible GPUs in README.md. - -#### Fixed - -- Fix various README capitalizations, [#8](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/8) by @27lx -- Automatically tag bug report issues, [#15](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/15) by @thebeanogamer -- Improve conftest.sh Script, [#37](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/37) by @Nitepone -- Update HTTP link to HTTPS, [#101](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/101) by @alcaparra -- moved array sanity check to before the array access, [#117](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/117) by @RealAstolfo -- Fixed some typos, [#122](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/122) by @FEDOyt -- Fixed capitalization, [#123](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/123) by @keroeslux -- Fix typos in NVDEC Engine Descriptor, [#126](https://github.com/NVIDIA/open-gpu-kernel-modules/pull/126) from @TrickyDmitriy -- Extranous apostrohpes in a makefile script [sic], [#14](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/14) by @kiroma -- HDMI no audio @ 4K above 60Hz, [#75](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/75) by @adolfotregosa -- dp_configcaps.cpp:405: array index sanity check in wrong place?, [#110](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/110) by @dcb314 -- NVRM kgspInitRm_IMPL: missing NVDEC0 engine, cannot initialize GSP-RM, [#116](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/116) by @kfazz -- ERROR: modpost: "backlight_device_register" [...nvidia-modeset.ko] undefined, [#135](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/135) by @sndirsch -- aarch64 build fails, [#151](https://github.com/NVIDIA/open-gpu-kernel-modules/issues/151) by @frezbo - -### [515.43.04] 2022-05-11 - -- Initial release. - diff --git a/README.md b/README.md index bff824402..c9d9e4d5f 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 550.90.07. +version 550.90.12. ## 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 -550.90.07 driver release. This can be achieved by installing +550.90.12 driver release. This can be achieved by installing the NVIDIA GPU driver from the .run file using the `--no-kernel-modules` option. E.g., @@ -188,7 +188,7 @@ encountered specific to them. 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/550.90.07/README/kernel_open.html +https://us.download.nvidia.com/XFree86/Linux-x86_64/550.90.12/README/kernel_open.html For vGPU support, please refer to the README.vgpu packaged in the vGPU Host Package for more details. @@ -912,6 +912,7 @@ Subsystem Device ID. | NVIDIA GeForce RTX 4060 Ti | 2805 | | NVIDIA GeForce RTX 4060 | 2808 | | NVIDIA GeForce RTX 4070 Laptop GPU | 2820 | +| NVIDIA GeForce RTX 3050 A Laptop GPU | 2822 | | NVIDIA RTX 3000 Ada Generation Laptop GPU | 2838 | | NVIDIA GeForce RTX 4070 Laptop GPU | 2860 | | NVIDIA GeForce RTX 4060 | 2882 | diff --git a/kernel-open/Kbuild b/kernel-open/Kbuild index afc515387..1885c1f65 100644 --- a/kernel-open/Kbuild +++ b/kernel-open/Kbuild @@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc EXTRA_CFLAGS += -I$(src) EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM -EXTRA_CFLAGS += -DNV_VERSION_STRING=\"550.90.07\" +EXTRA_CFLAGS += -DNV_VERSION_STRING=\"550.90.12\" ifneq ($(SYSSRCHOST1X),) EXTRA_CFLAGS += -I$(SYSSRCHOST1X) diff --git a/kernel-open/nvidia-uvm/uvm_common.h b/kernel-open/nvidia-uvm/uvm_common.h index a0c0d5a70..4568f6858 100644 --- a/kernel-open/nvidia-uvm/uvm_common.h +++ b/kernel-open/nvidia-uvm/uvm_common.h @@ -1,5 +1,5 @@ /******************************************************************************* - Copyright (c) 2013-2023 NVIDIA Corporation + Copyright (c) 2013-2024 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 @@ -423,7 +423,9 @@ static void uvm_get_unaddressable_range(NvU32 num_va_bits, NvU64 *first, NvU64 * UVM_ASSERT(first); UVM_ASSERT(outer); - if (uvm_platform_uses_canonical_form_address()) { + // Maxwell GPUs (num_va_bits == 40b) do not support canonical form address + // even when plugged into platforms using it. + if (uvm_platform_uses_canonical_form_address() && num_va_bits > 40) { *first = 1ULL << (num_va_bits - 1); *outer = (NvU64)((NvS64)(1ULL << 63) >> (64 - num_va_bits)); } diff --git a/src/common/inc/nvBldVer.h b/src/common/inc/nvBldVer.h index acd51ae08..13ffd2214 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/r550/r552_52-292" -#define NV_BUILD_CHANGELIST_NUM (34362171) +#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r550/r552_52-297" +#define NV_BUILD_CHANGELIST_NUM (34768053) #define NV_BUILD_TYPE "Official" -#define NV_BUILD_NAME "rel/gpu_drv/r550/r552_52-292" -#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34362171) +#define NV_BUILD_NAME "rel/gpu_drv/r550/r552_52-297" +#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34768053) #else /* Windows builds */ -#define NV_BUILD_BRANCH_VERSION "r552_52-2" -#define NV_BUILD_CHANGELIST_NUM (34331643) +#define NV_BUILD_BRANCH_VERSION "r552_52-5" +#define NV_BUILD_CHANGELIST_NUM (34662372) #define NV_BUILD_TYPE "Official" -#define NV_BUILD_NAME "552.55" -#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34331643) +#define NV_BUILD_NAME "552.90" +#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34662372) #define NV_BUILD_BRANCH_BASE_VERSION R550 #endif // End buildmeister python edited section diff --git a/src/common/inc/nvUnixVersion.h b/src/common/inc/nvUnixVersion.h index ba411f924..de4732cb3 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 "550.90.07" +#define NV_VERSION_STRING "550.90.12" #else diff --git a/src/nvidia/generated/g_kernel_nvlink_nvoc.h b/src/nvidia/generated/g_kernel_nvlink_nvoc.h index 411624c59..8a282309a 100644 --- a/src/nvidia/generated/g_kernel_nvlink_nvoc.h +++ b/src/nvidia/generated/g_kernel_nvlink_nvoc.h @@ -318,6 +318,7 @@ struct KernelNvlink { NvU32 PRIVATE_FIELD(deviceLockRefcount); char *PRIVATE_FIELD(driverName); char *PRIVATE_FIELD(deviceName); + NvU8 *PRIVATE_FIELD(pGidString); NvBool PRIVATE_FIELD(bVerifTrainingEnable); NvBool PRIVATE_FIELD(bL2Entry); NvBool PRIVATE_FIELD(bSkipLinkTraining); @@ -434,6 +435,7 @@ struct KernelNvlink_PRIVATE { NvU32 deviceLockRefcount; char *driverName; char *deviceName; + NvU8 *pGidString; NvBool bVerifTrainingEnable; NvBool bL2Entry; NvBool bSkipLinkTraining; diff --git a/src/nvidia/generated/g_nv_name_released.h b/src/nvidia/generated/g_nv_name_released.h index 846544b6c..62d787909 100644 --- a/src/nvidia/generated/g_nv_name_released.h +++ b/src/nvidia/generated/g_nv_name_released.h @@ -1059,6 +1059,7 @@ static const CHIPS_RELEASED sChipsReleased[] = { { 0x2805, 0x0000, 0x0000, "NVIDIA GeForce RTX 4060 Ti" }, { 0x2808, 0x0000, 0x0000, "NVIDIA GeForce RTX 4060" }, { 0x2820, 0x0000, 0x0000, "NVIDIA GeForce RTX 4070 Laptop GPU" }, + { 0x2822, 0x0000, 0x0000, "NVIDIA GeForce RTX 3050 A Laptop GPU" }, { 0x2838, 0x0000, 0x0000, "NVIDIA RTX 3000 Ada Generation Laptop GPU" }, { 0x2860, 0x0000, 0x0000, "NVIDIA GeForce RTX 4070 Laptop GPU" }, { 0x2882, 0x0000, 0x0000, "NVIDIA GeForce RTX 4060" }, diff --git a/src/nvidia/src/kernel/gpu/nvlink/kernel_nvlinkcorelib.c b/src/nvidia/src/kernel/gpu/nvlink/kernel_nvlinkcorelib.c index 5606fc31f..91e9fa092 100644 --- a/src/nvidia/src/kernel/gpu/nvlink/kernel_nvlinkcorelib.c +++ b/src/nvidia/src/kernel/gpu/nvlink/kernel_nvlinkcorelib.c @@ -325,9 +325,12 @@ knvlinkCoreUpdateDeviceUUID_IMPL status = nvlink_lib_update_uuid_and_device_name(&devInfo, pGidString, pKernelNvlink->deviceName); - // Freeing pGidString here as it is malloc'd as part of gpuGetGidInfo_IMPL - if (pGidString != NULL) - portMemFree(pGidString); + // + // pGidString is malloc'd as part of gpuGetGidInfo_IMPL + // Store pGidString within pKernelNvlink so we can free it during + // knvlinkStatePostUnload to maintain alloc/free symmetry + // + pKernelNvlink->pGidString = pGidString; } #endif diff --git a/src/nvidia/src/kernel/gpu/nvlink/kernel_nvlinkstate.c b/src/nvidia/src/kernel/gpu/nvlink/kernel_nvlinkstate.c index e5aa8d163..98eeae344 100644 --- a/src/nvidia/src/kernel/gpu/nvlink/kernel_nvlinkstate.c +++ b/src/nvidia/src/kernel/gpu/nvlink/kernel_nvlinkstate.c @@ -1032,6 +1032,18 @@ _knvlinkPurgeState } } + // + // pGidString is allocated within knvlinkStatePostLoad -> knvlinkCoreUpdateDeviceUUID + // so need to free it during destruct + // Freeing it within knvlinkCoreRemoveDevice could create problems if + // AddDevice/RemoveDevice are used outside StateLoad/StatePostUnload/StateDestroy in the future + // + if (pKernelNvlink->pGidString) + { + portMemFree(pKernelNvlink->pGidString); + pKernelNvlink->pGidString = NULL; + } + _knvlinkPurgeState_end: #endif diff --git a/version.mk b/version.mk index ce66bbce0..edeeaa01e 100644 --- a/version.mk +++ b/version.mk @@ -1,4 +1,4 @@ -NVIDIA_VERSION = 550.90.07 +NVIDIA_VERSION = 550.90.12 # This file. VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST))