Skip to content

Commit ed4be64

Browse files
committed
560.35.03
1 parent 315fd96 commit ed4be64

File tree

25 files changed

+156
-51
lines changed

25 files changed

+156
-51
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 560.31.02.
4+
version 560.35.03.
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-
560.31.02 driver release. This can be achieved by installing
20+
560.35.03 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/560.31.02/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/560.35.03/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
@@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
7272
EXTRA_CFLAGS += -I$(src)
7373
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
7474
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
75-
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"560.31.02\"
75+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"560.35.03\"
7676

7777
ifneq ($(SYSSRCHOST1X),)
7878
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)

kernel-open/common/inc/nvkms-kapi.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,7 +1425,7 @@ struct NvKmsKapiFunctionsTable {
14251425
);
14261426

14271427
/*!
1428-
* Immediately reset the specified display semaphore to the pending state.
1428+
* Immediately initialize the specified display semaphore to the pending state.
14291429
*
14301430
* Must be called prior to applying a mode set that utilizes the specified
14311431
* display semaphore for synchronization.
@@ -1438,7 +1438,7 @@ struct NvKmsKapiFunctionsTable {
14381438
* for the specified device.
14391439
*/
14401440
NvBool
1441-
(*resetDisplaySemaphore)
1441+
(*tryInitDisplaySemaphore)
14421442
(
14431443
struct NvKmsKapiDevice *device,
14441444
NvU32 semaphoreIndex
@@ -1447,7 +1447,7 @@ struct NvKmsKapiFunctionsTable {
14471447
/*!
14481448
* Immediately set the specified display semaphore to the displayable state.
14491449
*
1450-
* Must be called after \ref resetDisplaySemaphore to indicate a mode
1450+
* Must be called after \ref tryInitDisplaySemaphore to indicate a mode
14511451
* configuration change that utilizes the specified display semaphore for
14521452
* synchronization may proceed.
14531453
*
@@ -1471,7 +1471,7 @@ struct NvKmsKapiFunctionsTable {
14711471
*
14721472
* This can be used by clients to restore a semaphore to a consistent state
14731473
* when they have prepared it for use by previously calling
1474-
* \ref resetDisplaySemaphore() on it, but are then prevented from
1474+
* \ref tryInitDisplaySemaphore() on it, but are then prevented from
14751475
* submitting the associated hardware operations to consume it due to the
14761476
* subsequent failure of some software or hardware operation.
14771477
*

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ static int __nv_drm_convert_in_fences(
192192
&to_nv_crtc_state(crtc_state)->req_config;
193193
struct nv_drm_plane_fence_cb_data *fence_data;
194194
uint32_t semaphore_index;
195+
uint32_t idx_count;
195196
int ret, i;
196197

197198
if (!crtc_state->active) {
@@ -244,9 +245,14 @@ static int __nv_drm_convert_in_fences(
244245
return -EINVAL;
245246
}
246247

247-
semaphore_index = nv_drm_next_display_semaphore(nv_dev);
248+
for (idx_count = 0; idx_count < nv_dev->display_semaphores.count; idx_count++) {
249+
semaphore_index = nv_drm_next_display_semaphore(nv_dev);
250+
if (nvKms->tryInitDisplaySemaphore(nv_dev->pDevice, semaphore_index)) {
251+
break;
252+
}
253+
}
248254

249-
if (!nvKms->resetDisplaySemaphore(nv_dev->pDevice, semaphore_index)) {
255+
if (idx_count == nv_dev->display_semaphores.count) {
250256
NV_DRM_DEV_LOG_ERR(
251257
nv_dev,
252258
"Failed to initialize semaphore for plane fence");

kernel-open/nvidia-uvm/uvm_common.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
Copyright (c) 2013-2023 NVIDIA Corporation
2+
Copyright (c) 2013-2024 NVIDIA Corporation
33
44
Permission is hereby granted, free of charge, to any person obtaining a copy
55
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 *
423423
UVM_ASSERT(first);
424424
UVM_ASSERT(outer);
425425

426-
if (uvm_platform_uses_canonical_form_address()) {
426+
// Maxwell GPUs (num_va_bits == 40b) do not support canonical form address
427+
// even when plugged into platforms using it.
428+
if (uvm_platform_uses_canonical_form_address() && num_va_bits > 40) {
427429
*first = 1ULL << (num_va_bits - 1);
428430
*outer = (NvU64)((NvS64)(1ULL << 63) >> (64 - num_va_bits));
429431
}

kernel-open/nvidia-uvm/uvm_populate_pageable.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,15 @@ NV_STATUS uvm_populate_pageable_vma(struct vm_area_struct *vma,
137137
if (status != NV_OK)
138138
goto out;
139139

140+
// Kernel v6.6 introduced a bug in set_pte_range() around the handling of AF
141+
// bit. Instead of setting the AF bit, the bit is incorrectly being cleared
142+
// in set_pte_range() during first-touch fault handling. Calling
143+
// handle_mm_fault() again takes a different code path which correctly sets
144+
// the AF bit.
145+
status = handle_fault(vma, start, vma_num_pages, !!(gup_flags & FOLL_WRITE));
146+
if (status != NV_OK)
147+
goto out;
148+
140149
if (touch)
141150
ret = NV_PIN_USER_PAGES_REMOTE(mm, start, vma_num_pages, gup_flags, pages, NULL);
142151
else

src/common/inc/nvBldVer.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,25 @@
3636
// and then checked back in. You cannot make changes to these sections without
3737
// corresponding changes to the buildmeister script
3838
#ifndef NV_BUILD_BRANCH
39-
#define NV_BUILD_BRANCH r560_78
39+
#define NV_BUILD_BRANCH r560_88
4040
#endif
4141
#ifndef NV_PUBLIC_BRANCH
42-
#define NV_PUBLIC_BRANCH r560_78
42+
#define NV_PUBLIC_BRANCH r560_88
4343
#endif
4444

4545
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
46-
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r560/r560_78-120"
47-
#define NV_BUILD_CHANGELIST_NUM (34643855)
46+
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r560/r560_88-137"
47+
#define NV_BUILD_CHANGELIST_NUM (34725486)
4848
#define NV_BUILD_TYPE "Official"
49-
#define NV_BUILD_NAME "rel/gpu_drv/r560/r560_78-120"
50-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34643855)
49+
#define NV_BUILD_NAME "rel/gpu_drv/r560/r560_88-137"
50+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34725486)
5151

5252
#else /* Windows builds */
53-
#define NV_BUILD_BRANCH_VERSION "r560_78-2"
54-
#define NV_BUILD_CHANGELIST_NUM (34643068)
53+
#define NV_BUILD_BRANCH_VERSION "r560_88-4"
54+
#define NV_BUILD_CHANGELIST_NUM (34711266)
5555
#define NV_BUILD_TYPE "Official"
56-
#define NV_BUILD_NAME "560.81"
57-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34643068)
56+
#define NV_BUILD_NAME "560.94"
57+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34711266)
5858
#define NV_BUILD_BRANCH_BASE_VERSION R560
5959
#endif
6060
// End buildmeister python edited section

src/common/inc/nvUnixVersion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \
55
(defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1)
66

7-
#define NV_VERSION_STRING "560.31.02"
7+
#define NV_VERSION_STRING "560.35.03"
88

99
#else
1010

src/common/sdk/nvidia/inc/nvfixedtypes.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,11 @@ typedef NvUFXP32 NvUFXP25_7;
8484
typedef NvUFXP32 NvUFXP26_6;
8585
typedef NvUFXP32 NvUFXP28_4;
8686

87+
typedef NvUFXP64 NvUFXP37_27;
8788
typedef NvUFXP64 NvUFXP40_24;
8889
typedef NvUFXP64 NvUFXP48_16;
8990
typedef NvUFXP64 NvUFXP52_12;
91+
typedef NvUFXP64 NvUFXP54_10;
9092
typedef NvUFXP64 NvUFXP60_4;
9193

9294
/*!

src/nvidia-modeset/kapi/include/nvkms-kapi-notifiers.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ NvBool nvKmsKapiIsNotifierFinish(const struct NvKmsKapiDevice *device,
8484
void nvKmsKapiNotifierSetNotBegun(struct NvKmsKapiDevice *device,
8585
NvU32 head, NvU32 layer, NvU32 index);
8686

87-
NvBool nvKmsKapiResetDisplaySemaphore(struct NvKmsKapiDevice *device,
88-
NvU32 index);
87+
NvBool nvKmsKapiTryInitDisplaySemaphore(struct NvKmsKapiDevice *device,
88+
NvU32 index);
8989

9090
void nvKmsKapiSignalDisplaySemaphore(struct NvKmsKapiDevice *device,
9191
NvU32 index);

0 commit comments

Comments
 (0)