Skip to content

Commit 5c2ab3b

Browse files
committed
570.123.11
1 parent 392cd00 commit 5c2ab3b

Some content is hidden

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

57 files changed

+52502
-49877
lines changed

README.md

Lines changed: 3 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 570.123.10.
4+
version 570.123.11.
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-
570.123.10 driver release. This can be achieved by installing
20+
570.123.11 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/570.123.10/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/570.123.11/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.

kernel-open/Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
8686
EXTRA_CFLAGS += -I$(src)
8787
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
8888
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
89-
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"570.123.10\"
89+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"570.123.11\"
9090

9191
ifneq ($(SYSSRCHOST1X),)
9292
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -345,8 +345,6 @@ extern int nv_pat_mode;
345345

346346
#define NV_PAGE_COUNT(page) \
347347
((unsigned int)page_count(page))
348-
#define NV_GET_PAGE_COUNT(page_ptr) \
349-
(NV_PAGE_COUNT(NV_GET_PAGE_STRUCT(page_ptr->phys_addr)))
350348
#define NV_GET_PAGE_FLAGS(page_ptr) \
351349
(NV_GET_PAGE_STRUCT(page_ptr->phys_addr)->flags)
352350

@@ -1161,10 +1159,6 @@ typedef struct nvidia_pte_s {
11611159
NvU64 phys_addr;
11621160
unsigned long virt_addr;
11631161
NvU64 dma_addr;
1164-
#ifdef CONFIG_XEN
1165-
unsigned int guest_pfn;
1166-
#endif
1167-
unsigned int page_count;
11681162
} nvidia_pte_t;
11691163

11701164
#if defined(CONFIG_DMA_SHARED_BUFFER)

kernel-open/conftest.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7604,6 +7604,33 @@ compile_test() {
76047604
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_DATE" "" "types"
76057605
;;
76067606

7607+
drm_connector_helper_funcs_mode_valid_has_const_mode_arg)
7608+
#
7609+
# Determine if the 'mode' pointer argument is const in
7610+
# drm_connector_helper_funcs::mode_valid.
7611+
#
7612+
# The 'mode' pointer argument in
7613+
# drm_connector_helper_funcs::mode_valid was made const by commit
7614+
# 26d6fd81916e ("drm/connector: make mode_valid take a const struct
7615+
# drm_display_mode") in linux-next, expected in v6.15.
7616+
#
7617+
CODE="
7618+
#if defined(NV_DRM_DRM_ATOMIC_HELPER_H_PRESENT)
7619+
#include <drm/drm_atomic_helper.h>
7620+
#endif
7621+
7622+
static int conftest_drm_connector_mode_valid(struct drm_connector *connector,
7623+
const struct drm_display_mode *mode) {
7624+
return 0;
7625+
}
7626+
7627+
const struct drm_connector_helper_funcs conftest_drm_connector_helper_funcs = {
7628+
.mode_valid = conftest_drm_connector_mode_valid,
7629+
};"
7630+
7631+
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_HELPER_FUNCS_MODE_VALID_HAS_CONST_MODE_ARG" "" "types"
7632+
;;
7633+
76077634
# When adding a new conftest entry, please use the correct format for
76087635
# specifying the relevant upstream Linux kernel commit. Please
76097636
# avoid specifying -rc kernels, and only use SHAs that actually exist

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,11 @@ static int nv_drm_connector_get_modes(struct drm_connector *connector)
314314
}
315315

316316
static int nv_drm_connector_mode_valid(struct drm_connector *connector,
317+
#if defined(NV_DRM_CONNECTOR_HELPER_FUNCS_MODE_VALID_HAS_CONST_MODE_ARG)
318+
const struct drm_display_mode *mode)
319+
#else
317320
struct drm_display_mode *mode)
321+
#endif
318322
{
319323
struct drm_device *dev = connector->dev;
320324
struct nv_drm_device *nv_dev = to_nv_device(dev);

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,4 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_gem_prime_mmap
145145
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_output_poll_changed
146146
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_date
147147
NV_CONFTEST_TYPE_COMPILE_TESTS += file_operations_fop_unsigned_offset_present
148+
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_connector_helper_funcs_mode_valid_has_const_mode_arg

kernel-open/nvidia-uvm/uvm_conf_computing.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,12 @@ void uvm_conf_computing_disable_key_rotation(uvm_gpu_t *gpu)
708708

709709
bool uvm_conf_computing_is_key_rotation_enabled(uvm_gpu_t *gpu)
710710
{
711-
return gpu->channel_manager->conf_computing.key_rotation_enabled;
711+
UVM_ASSERT(gpu);
712+
713+
// If the channel_manager is not set, we're in channel manager destroy
714+
// path after the pointer was NULL-ed. Chances are that other key rotation
715+
// infrastructure is not available either. Disallow the key rotation.
716+
return gpu->channel_manager && gpu->channel_manager->conf_computing.key_rotation_enabled;
712717
}
713718

714719
bool uvm_conf_computing_is_key_rotation_enabled_in_pool(uvm_channel_pool_t *pool)

kernel-open/nvidia-uvm/uvm_linux.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ static inline const struct cpumask *uvm_cpumask_of_node(int node)
183183
printk(fmt, ##__VA_ARGS__); \
184184
} while (0)
185185

186-
#define NV_UVM_GFP_FLAGS (GFP_KERNEL)
186+
#define NV_UVM_GFP_FLAGS (GFP_KERNEL | __GFP_NOMEMALLOC)
187187

188188
#if defined(NVCPU_X86)
189189
/* Some old IA32 kernels don't have 64/64 division routines,

kernel-open/nvidia-uvm/uvm_va_block.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1569,7 +1569,7 @@ static NV_STATUS block_alloc_cpu_chunk(uvm_va_block_t *block,
15691569
if (status == NV_OK)
15701570
break;
15711571

1572-
if (flags & UVM_CPU_CHUNK_ALLOC_FLAGS_STRICT) {
1572+
if ((flags & UVM_CPU_CHUNK_ALLOC_FLAGS_STRICT) && (num_possible_nodes() > 1)) {
15731573
flags &= ~UVM_CPU_CHUNK_ALLOC_FLAGS_STRICT;
15741574
numa_fallback = true;
15751575
status = uvm_cpu_chunk_alloc(alloc_size, flags, NUMA_NO_NODE, chunk);

kernel-open/nvidia/nv-vm.c

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,6 @@ NV_STATUS nv_alloc_contig_pages(
431431

432432
page_ptr = at->page_table[i];
433433
page_ptr->phys_addr = phys_addr;
434-
page_ptr->page_count = NV_GET_PAGE_COUNT(page_ptr);
435434
page_ptr->virt_addr = virt_addr;
436435
page_ptr->dma_addr = nv_phys_to_dma(dev, page_ptr->phys_addr);
437436

@@ -486,17 +485,6 @@ void nv_free_contig_pages(
486485
{
487486
page_ptr = at->page_table[i];
488487

489-
if (NV_GET_PAGE_COUNT(page_ptr) != page_ptr->page_count)
490-
{
491-
static int count = 0;
492-
if (count++ < NV_MAX_RECURRING_WARNING_MESSAGES)
493-
{
494-
nv_printf(NV_DBG_ERRORS,
495-
"NVRM: VM: %s: page count != initial page count (%u,%u)\n",
496-
__FUNCTION__, NV_GET_PAGE_COUNT(page_ptr),
497-
page_ptr->page_count);
498-
}
499-
}
500488
NV_MAYBE_UNRESERVE_PAGE(page_ptr);
501489
}
502490

@@ -600,7 +588,6 @@ NV_STATUS nv_alloc_system_pages(
600588

601589
page_ptr = at->page_table[(i * os_pages_in_page) + sub_page_idx];
602590
page_ptr->phys_addr = phys_addr;
603-
page_ptr->page_count = NV_GET_PAGE_COUNT(page_ptr);
604591
page_ptr->virt_addr = sub_page_virt_addr;
605592

606593
//
@@ -667,18 +654,6 @@ void nv_free_system_pages(
667654
{
668655
page_ptr = at->page_table[i];
669656

670-
if (NV_GET_PAGE_COUNT(page_ptr) != page_ptr->page_count)
671-
{
672-
static int count = 0;
673-
if (count++ < NV_MAX_RECURRING_WARNING_MESSAGES)
674-
{
675-
nv_printf(NV_DBG_ERRORS,
676-
"NVRM: VM: %s: page count != initial page count (%u,%u)\n",
677-
__FUNCTION__, NV_GET_PAGE_COUNT(page_ptr),
678-
page_ptr->page_count);
679-
}
680-
}
681-
682657
NV_MAYBE_UNRESERVE_PAGE(page_ptr);
683658
}
684659

0 commit comments

Comments
 (0)