Skip to content

Commit 30e15d7

Browse files
committed
575.57.08
1 parent e00332b commit 30e15d7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+790
-409
lines changed

README.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# NVIDIA Linux Open GPU Kernel Module Source
22

33
This is the source release of the NVIDIA Linux open GPU kernel modules,
4-
version 575.51.03.
4+
version 575.57.08.
55

66

77
## How to Build
@@ -17,7 +17,7 @@ as root:
1717

1818
Note that the kernel modules built here must be used with GSP
1919
firmware and user-space NVIDIA GPU driver components from a corresponding
20-
575.51.03 driver release. This can be achieved by installing
20+
575.57.08 driver release. This can be achieved by installing
2121
the NVIDIA GPU driver from the .run file using the `--no-kernel-modules`
2222
option. E.g.,
2323

@@ -185,7 +185,7 @@ table below).
185185
For details on feature support and limitations, see the NVIDIA GPU driver
186186
end user README here:
187187

188-
https://us.download.nvidia.com/XFree86/Linux-x86_64/575.51.03/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/575.57.08/README/kernel_open.html
189189

190190
For vGPU support, please refer to the README.vgpu packaged in the vGPU Host
191191
Package for more details.
@@ -955,16 +955,27 @@ Subsystem Device ID.
955955
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 103C 204B |
956956
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 10DE 204B |
957957
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 17AA 204B |
958+
| NVIDIA RTX PRO 5000 Blackwell | 2BB3 1028 204D |
959+
| NVIDIA RTX PRO 5000 Blackwell | 2BB3 103C 204D |
960+
| NVIDIA RTX PRO 5000 Blackwell | 2BB3 10DE 204D |
961+
| NVIDIA RTX PRO 5000 Blackwell | 2BB3 17AA 204D |
958962
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 1028 204C |
959963
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 103C 204C |
960964
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 10DE 204C |
961965
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 17AA 204C |
966+
| NVIDIA RTX PRO 6000 Blackwell Server Edition | 2BB5 10DE 204E |
962967
| NVIDIA GeForce RTX 5080 | 2C02 |
963968
| NVIDIA GeForce RTX 5070 Ti | 2C05 |
964969
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C18 |
965970
| NVIDIA GeForce RTX 5080 Laptop GPU | 2C19 |
966971
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C58 |
967972
| NVIDIA GeForce RTX 5080 Laptop GPU | 2C59 |
973+
| NVIDIA GeForce RTX 5060 Ti | 2D04 |
974+
| NVIDIA GeForce RTX 5060 | 2D05 |
975+
| NVIDIA GeForce RTX 5070 Laptop GPU | 2D18 |
976+
| NVIDIA GeForce RTX 5060 Laptop GPU | 2D19 |
977+
| NVIDIA GeForce RTX 5070 Laptop GPU | 2D58 |
978+
| NVIDIA GeForce RTX 5060 Laptop GPU | 2D59 |
968979
| NVIDIA GeForce RTX 5070 | 2F04 |
969980
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F18 |
970981
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F58 |

kernel-open/Kbuild

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -75,21 +75,14 @@ $(foreach _module, $(NV_KERNEL_MODULES), \
7575
$(eval include $(src)/$(_module)/$(_module).Kbuild))
7676

7777

78-
#
79-
# Define CFLAGS that apply to all the NVIDIA kernel modules. EXTRA_CFLAGS
80-
# is deprecated since 2.6.24 in favor of ccflags-y, but we need to support
81-
# older kernels which do not have ccflags-y. Newer kernels append
82-
# $(EXTRA_CFLAGS) to ccflags-y for compatibility.
83-
#
84-
85-
EXTRA_CFLAGS += -I$(src)/common/inc
86-
EXTRA_CFLAGS += -I$(src)
87-
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
88-
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
89-
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"575.51.03\"
78+
ccflags-y += -I$(src)/common/inc
79+
ccflags-y += -I$(src)
80+
ccflags-y += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
81+
ccflags-y += -D__KERNEL__ -DMODULE -DNVRM
82+
ccflags-y += -DNV_VERSION_STRING=\"575.57.08\"
9083

9184
ifneq ($(SYSSRCHOST1X),)
92-
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)
85+
ccflags-y += -I$(SYSSRCHOST1X)
9386
endif
9487

9588
# Some Android kernels prohibit driver use of filesystem functions like
@@ -99,57 +92,57 @@ endif
9992
PLATFORM_IS_ANDROID ?= 0
10093

10194
ifeq ($(PLATFORM_IS_ANDROID),1)
102-
EXTRA_CFLAGS += -DNV_FILESYSTEM_ACCESS_AVAILABLE=0
95+
ccflags-y += -DNV_FILESYSTEM_ACCESS_AVAILABLE=0
10396
else
104-
EXTRA_CFLAGS += -DNV_FILESYSTEM_ACCESS_AVAILABLE=1
97+
ccflags-y += -DNV_FILESYSTEM_ACCESS_AVAILABLE=1
10598
endif
10699

107-
EXTRA_CFLAGS += -Wno-unused-function
100+
ccflags-y += -Wno-unused-function
108101

109102
ifneq ($(NV_BUILD_TYPE),debug)
110-
EXTRA_CFLAGS += -Wuninitialized
103+
ccflags-y += -Wuninitialized
111104
endif
112105

113-
EXTRA_CFLAGS += -fno-strict-aliasing
106+
ccflags-y += -fno-strict-aliasing
114107

115108
ifeq ($(ARCH),arm64)
116-
EXTRA_CFLAGS += -mstrict-align
109+
ccflags-y += -mstrict-align
117110
endif
118111

119112
ifeq ($(NV_BUILD_TYPE),debug)
120-
EXTRA_CFLAGS += -g
113+
ccflags-y += -g
121114
endif
122115

123-
EXTRA_CFLAGS += -ffreestanding
116+
ccflags-y += -ffreestanding
124117

125118
ifeq ($(ARCH),arm64)
126-
EXTRA_CFLAGS += -mgeneral-regs-only -march=armv8-a
127-
EXTRA_CFLAGS += $(call cc-option,-mno-outline-atomics,)
119+
ccflags-y += -mgeneral-regs-only -march=armv8-a
120+
ccflags-y += $(call cc-option,-mno-outline-atomics,)
128121
endif
129122

130123
ifeq ($(ARCH),x86_64)
131-
EXTRA_CFLAGS += -mno-red-zone -mcmodel=kernel
124+
ccflags-y += -mno-red-zone -mcmodel=kernel
132125
endif
133126

134127
ifeq ($(ARCH),powerpc)
135-
EXTRA_CFLAGS += -mlittle-endian -mno-strict-align
128+
ccflags-y += -mlittle-endian -mno-strict-align
136129
endif
137130

138-
EXTRA_CFLAGS += -DNV_UVM_ENABLE
139-
EXTRA_CFLAGS += $(call cc-option,-Werror=undef,)
140-
EXTRA_CFLAGS += -DNV_SPECTRE_V2=$(NV_SPECTRE_V2)
141-
EXTRA_CFLAGS += -DNV_KERNEL_INTERFACE_LAYER
131+
ccflags-y += -DNV_UVM_ENABLE
132+
ccflags-y += $(call cc-option,-Werror=undef,)
133+
ccflags-y += -DNV_SPECTRE_V2=$(NV_SPECTRE_V2)
134+
ccflags-y += -DNV_KERNEL_INTERFACE_LAYER
142135

143136
#
144137
# Detect SGI UV systems and apply system-specific optimizations.
145138
#
146139

147140
ifneq ($(wildcard /proc/sgi_uv),)
148-
EXTRA_CFLAGS += -DNV_CONFIG_X86_UV
141+
ccflags-y += -DNV_CONFIG_X86_UV
149142
endif
150143

151144
ifdef VGX_FORCE_VFIO_PCI_CORE
152-
EXTRA_CFLAGS += -DNV_VGPU_FORCE_VFIO_PCI_CORE
145+
ccflags-y += -DNV_VGPU_FORCE_VFIO_PCI_CORE
153146
endif
154147

155148
WARNINGS_AS_ERRORS ?=
@@ -183,7 +176,8 @@ NV_CONFTEST_CMD := /bin/sh $(NV_CONFTEST_SCRIPT) \
183176

184177
NV_CFLAGS_FROM_CONFTEST := $(shell $(NV_CONFTEST_CMD) build_cflags)
185178

186-
NV_CONFTEST_CFLAGS = $(NV_CFLAGS_FROM_CONFTEST) $(EXTRA_CFLAGS) -fno-pie
179+
NV_CONFTEST_CFLAGS = $(NV_CFLAGS_FROM_CONFTEST) $(ccflags-y) -fno-pie
180+
NV_CONFTEST_CFLAGS += $(filter -std=%,$(KBUILD_CFLAGS))
187181
NV_CONFTEST_CFLAGS += $(call cc-disable-warning,pointer-sign)
188182
NV_CONFTEST_CFLAGS += $(call cc-option,-fshort-wchar,)
189183
NV_CONFTEST_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types,)

kernel-open/common/inc/nv-timer.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: Copyright (c) 2017 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
* SPDX-FileCopyrightText: Copyright (c) 2017-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
33
* SPDX-License-Identifier: MIT
44
*
55
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -63,4 +63,13 @@ static inline void nv_timer_setup(struct nv_timer *nv_timer,
6363
#endif
6464
}
6565

66+
static inline void nv_timer_delete_sync(struct timer_list *timer)
67+
{
68+
#if !defined(NV_BSD) && NV_IS_EXPORT_SYMBOL_PRESENT_timer_delete_sync
69+
timer_delete_sync(timer);
70+
#else
71+
del_timer_sync(timer);
72+
#endif
73+
}
74+
6675
#endif // __NV_TIMER_H__

kernel-open/common/inc/nv.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -961,7 +961,6 @@ NvBool NV_API_CALL rm_isr (nvidia_stack_t *, nv_state_t *
961961
void NV_API_CALL rm_isr_bh (nvidia_stack_t *, nv_state_t *);
962962
void NV_API_CALL rm_isr_bh_unlocked (nvidia_stack_t *, nv_state_t *);
963963
NvBool NV_API_CALL rm_is_msix_allowed (nvidia_stack_t *, nv_state_t *);
964-
NvBool NV_API_CALL rm_wait_for_bar_firewall (nvidia_stack_t *, NvU32 domain, NvU8 bus, NvU8 device, NvU8 function, NvU16 devId);
965964
NV_STATUS NV_API_CALL rm_power_management (nvidia_stack_t *, nv_state_t *, nv_pm_action_t);
966965
NV_STATUS NV_API_CALL rm_stop_user_channels (nvidia_stack_t *, nv_state_t *);
967966
NV_STATUS NV_API_CALL rm_restart_user_channels (nvidia_stack_t *, nv_state_t *);

kernel-open/conftest.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3149,6 +3149,21 @@ compile_test() {
31493149
compile_check_conftest "$CODE" "NV_FOLL_LONGTERM_PRESENT" "" "types"
31503150
;;
31513151

3152+
has_enum_pidtype_tgid)
3153+
# Determine if PIDTYPE_TGID is present in the kernel as an enum
3154+
#
3155+
# Added by commit 6883f81aac6f ("pid: Implement PIDTYPE_TGID")
3156+
# in v4.19
3157+
#
3158+
CODE="
3159+
#include <linux/pid.h>
3160+
3161+
enum pid_type type = PIDTYPE_TGID;
3162+
"
3163+
3164+
compile_check_conftest "$CODE" "NV_HAS_ENUM_PIDTYPE_TGID" "" "types"
3165+
;;
3166+
31523167
vfio_pin_pages_has_vfio_device_arg)
31533168
#
31543169
# Determine if vfio_pin_pages() kABI accepts "struct vfio_device *"
@@ -7579,6 +7594,22 @@ compile_test() {
75797594
compile_check_conftest "$CODE" "NV_STRUCT_PAGE_HAS_ZONE_DEVICE_DATA" "" "types"
75807595
;;
75817596

7597+
page_pgmap)
7598+
#
7599+
# Determine if the page_pgmap() function is present.
7600+
#
7601+
# Added by commit 82ba975e4c43 ("mm: allow compound zone device
7602+
# pages") in v6.14
7603+
#
7604+
CODE="
7605+
#include <linux/mmzone.h>
7606+
int conftest_page_pgmap(void) {
7607+
return page_pgmap(NULL);
7608+
}"
7609+
7610+
compile_check_conftest "$CODE" "NV_PAGE_PGMAP_PRESENT" "" "functions"
7611+
;;
7612+
75827613
folio_test_swapcache)
75837614
#
75847615
# Determine if the folio_test_swapcache() function is present.

kernel-open/nvidia-drm/nvidia-drm-fence.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
2+
* Copyright (c) 2016-2025, NVIDIA CORPORATION. All rights reserved.
33
*
44
* Permission is hereby granted, free of charge, to any person obtaining a
55
* copy of this software and associated documentation files (the "Software"),
@@ -1132,7 +1132,7 @@ static void __nv_drm_semsurf_fence_ctx_destroy(
11321132
*/
11331133
nv_drm_workthread_shutdown(&ctx->worker);
11341134

1135-
nv_drm_del_timer_sync(&ctx->timer);
1135+
nv_timer_delete_sync(&ctx->timer.kernel_timer);
11361136

11371137
/*
11381138
* The semaphore surface could still be sending callbacks, so it is still

kernel-open/nvidia-drm/nvidia-drm-os-interface.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015-2023, NVIDIA CORPORATION. All rights reserved.
2+
* Copyright (c) 2015-2025, NVIDIA CORPORATION. All rights reserved.
33
*
44
* Permission is hereby granted, free of charge, to any person obtaining a
55
* copy of this software and associated documentation files (the "Software"),
@@ -236,15 +236,6 @@ unsigned long nv_drm_timeout_from_ms(NvU64 relative_timeout_ms)
236236
return jiffies + msecs_to_jiffies(relative_timeout_ms);
237237
}
238238

239-
bool nv_drm_del_timer_sync(nv_drm_timer *timer)
240-
{
241-
if (del_timer_sync(&timer->kernel_timer)) {
242-
return true;
243-
} else {
244-
return false;
245-
}
246-
}
247-
248239
#if defined(NV_DRM_FENCE_AVAILABLE)
249240
int nv_drm_create_sync_file(nv_dma_fence_t *fence)
250241
{

kernel-open/nvidia-drm/nvidia-drm-os-interface.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved.
2+
* Copyright (c) 2015-2025, NVIDIA CORPORATION. All rights reserved.
33
*
44
* Permission is hereby granted, free of charge, to any person obtaining a
55
* copy of this software and associated documentation files (the "Software"),
@@ -101,8 +101,6 @@ void nv_drm_timer_setup(nv_drm_timer *timer,
101101

102102
void nv_drm_mod_timer(nv_drm_timer *timer, unsigned long relative_timeout_ms);
103103

104-
bool nv_drm_del_timer_sync(nv_drm_timer *timer);
105-
106104
unsigned long nv_drm_timer_now(void);
107105

108106
unsigned long nv_drm_timeout_from_ms(NvU64 relative_timeout_ms);

kernel-open/nvidia-drm/nvidia-drm-sources.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_gpl_refcount_dec_and_test
3737
NV_CONFTEST_GENERIC_COMPILE_TESTS += drm_alpha_blending_available
3838
NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_fd_to_handle
3939
NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_handle_to_fd
40+
NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_timer_delete_sync
4041

4142
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_dev_unref
4243
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_reinit_primary_mode_group

kernel-open/nvidia-modeset/nvidia-modeset-linux.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: Copyright (c) 2015-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
* SPDX-FileCopyrightText: Copyright (c) 2015-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
33
* SPDX-License-Identifier: MIT
44
*
55
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -53,6 +53,7 @@
5353
#include "nv-procfs.h"
5454
#include "nv-kthread-q.h"
5555
#include "nv-time.h"
56+
#include "nv-timer.h"
5657
#include "nv-lock.h"
5758
#include "nv-chardev-numbers.h"
5859

@@ -748,7 +749,7 @@ static void nvkms_kthread_q_callback(void *arg)
748749
* pending timers and than waiting for workqueue callbacks.
749750
*/
750751
if (timer->kernel_timer_created) {
751-
del_timer_sync(&timer->kernel_timer);
752+
nv_timer_delete_sync(&timer->kernel_timer);
752753
}
753754

754755
/*
@@ -1932,7 +1933,11 @@ static void __exit nvkms_exit(void)
19321933
* completion, and we wait for queue completion with
19331934
* nv_kthread_q_stop below.
19341935
*/
1936+
#if !defined(NV_BSD) && NV_IS_EXPORT_SYMBOL_PRESENT_timer_delete_sync
1937+
if (timer_delete_sync(&timer->kernel_timer) == 1) {
1938+
#else
19351939
if (del_timer_sync(&timer->kernel_timer) == 1) {
1940+
#endif
19361941
/* We've deactivated timer so we need to clean after it */
19371942
list_del(&timer->timers_list);
19381943

kernel-open/nvidia-modeset/nvidia-modeset.Kbuild

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,5 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += ktime_get_real_ts64
103103
NV_CONFTEST_FUNCTION_COMPILE_TESTS += ktime_get_raw_ts64
104104
NV_CONFTEST_FUNCTION_COMPILE_TESTS += acpi_video_backlight_use_native
105105
NV_CONFTEST_FUNCTION_COMPILE_TESTS += acpi_video_register_backlight
106+
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_timer_delete_sync
106107
NV_CONFTEST_FUNCTION_COMPILE_TESTS += kernel_read_has_pointer_pos_arg

kernel-open/nvidia-uvm/nvidia-uvm.Kbuild

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += find_next_bit_wrap
6262
NV_CONFTEST_FUNCTION_COMPILE_TESTS += iommu_is_dma_domain
6363
NV_CONFTEST_FUNCTION_COMPILE_TESTS += for_each_sgtable_dma_page
6464
NV_CONFTEST_FUNCTION_COMPILE_TESTS += folio_test_swapcache
65+
NV_CONFTEST_FUNCTION_COMPILE_TESTS += page_pgmap
6566

6667
NV_CONFTEST_TYPE_COMPILE_TESTS += vm_ops_fault_removed_vma_arg
6768
NV_CONFTEST_TYPE_COMPILE_TESTS += mmu_notifier_ops_invalidate_range
@@ -80,3 +81,5 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += struct_page_has_zone_device_data
8081

8182
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_int_active_memcg
8283
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_migrate_vma_setup
84+
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present___iowrite64_lo_hi
85+
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_make_device_exclusive

kernel-open/nvidia-uvm/uvm_ats_sva.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,11 @@ static NvU32 smmu_vcmdq_read32(void __iomem *smmu_cmdqv_base, int reg)
139139

140140
static void smmu_vcmdq_write64(void __iomem *smmu_cmdqv_base, int reg, NvU64 val)
141141
{
142+
#if NV_IS_EXPORT_SYMBOL_PRESENT___iowrite64_lo_hi
143+
__iowrite64_lo_hi(val, SMMU_VCMDQ_BASE_ADDR(smmu_cmdqv_base, VCMDQ) + reg);
144+
#else
142145
iowrite64(val, SMMU_VCMDQ_BASE_ADDR(smmu_cmdqv_base, VCMDQ) + reg);
146+
#endif
143147
}
144148

145149
// Fix for Bug 4130089: [GH180][r535] WAR for kernel not issuing SMMU

0 commit comments

Comments
 (0)