Skip to content

Commit 51edebe

Browse files
committed
595.71.05
1 parent db0c4e6 commit 51edebe

47 files changed

Lines changed: 48127 additions & 47826 deletions

Some content is hidden

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

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 595.58.03.
4+
version 595.71.05.
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-
595.58.03 driver release. This can be achieved by installing
20+
595.71.05 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/595.58.03/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/595.71.05/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
@@ -79,7 +79,7 @@ ccflags-y += -I$(src)/common/inc
7979
ccflags-y += -I$(src)
8080
ccflags-y += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
8181
ccflags-y += -D__KERNEL__ -DMODULE -DNVRM
82-
ccflags-y += -DNV_VERSION_STRING=\"595.58.03\"
82+
ccflags-y += -DNV_VERSION_STRING=\"595.71.05\"
8383

8484
# Include and link Tegra out-of-tree modules.
8585
ifneq ($(wildcard /usr/src/nvidia/nvidia-public),)

kernel-open/Makefile

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -71,31 +71,6 @@ else
7171
CC ?= cc
7272
LD ?= ld
7373
OBJDUMP ?= objdump
74-
AWK ?= awk
75-
# Bake the following awk program in a string. The program is needed to add C++
76-
# to the languages excluded from BTF generation.
77-
#
78-
# Also, unconditionally return success (0) from the awk program, rather than
79-
# propagating pahole's return status (with 'exit system(pahole_cmd)'), to
80-
# workaround an DW_TAG_rvalue_reference_type error in
81-
# kernel/nvidia-modeset.ko.
82-
#
83-
# BEGIN {
84-
# pahole_cmd = "pahole"
85-
# for (i = 1; i < ARGC; i++) {
86-
# if (ARGV[i] ~ /--lang_exclude=/) {
87-
# pahole_cmd = pahole_cmd sprintf(" %s,c++", ARGV[i])
88-
# } else {
89-
# pahole_cmd = pahole_cmd sprintf(" %s", ARGV[i])
90-
# }
91-
# }
92-
# system(pahole_cmd)
93-
# }
94-
PAHOLE_AWK_PROGRAM = BEGIN { pahole_cmd = \"pahole\"; for (i = 1; i < ARGC; i++) { if (ARGV[i] ~ /--lang_exclude=/) { pahole_cmd = pahole_cmd sprintf(\" %s,c++\", ARGV[i]); } else { pahole_cmd = pahole_cmd sprintf(\" %s\", ARGV[i]); } } system(pahole_cmd); }
95-
# If scripts/pahole-flags.sh is not present in the kernel tree, add PAHOLE and
96-
# PAHOLE_AWK_PROGRAM assignments to PAHOLE_VARIABLES; otherwise assign the
97-
# empty string to PAHOLE_VARIABLES.
98-
PAHOLE_VARIABLES=$(if $(wildcard $(KERNEL_SOURCES)/scripts/pahole-flags.sh),,"PAHOLE=$(AWK) '$(PAHOLE_AWK_PROGRAM)'")
9974

10075
ifndef ARCH
10176
ARCH := $(shell uname -m | sed -e 's/i.86/i386/' \
@@ -133,10 +108,12 @@ else
133108
KBUILD_PARAMS += INSTALL_MOD_DIR="$(INSTALL_MOD_DIR)"
134109
KBUILD_PARAMS += NV_SPECTRE_V2=$(SPECTRE_V2_RETPOLINE)
135110

111+
export ORIG_PAHOLE := $(PAHOLE)
112+
136113
.PHONY: modules module clean clean_conftest modules_install
137114
modules clean modules_install:
138115
@$(MAKE) "LD=$(LD)" "CC=$(CC)" "OBJDUMP=$(OBJDUMP)" \
139-
$(PAHOLE_VARIABLES) $(KBUILD_PARAMS) $@
116+
PAHOLE=$(CURDIR)/pahole.sh $(KBUILD_PARAMS) $@
140117
@if [ "$@" = "modules" ]; then \
141118
for module in $(NV_KERNEL_MODULES); do \
142119
if [ -x split-object-file.sh ]; then \

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

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1726,7 +1726,69 @@ typedef enum
17261726
#include <linux/reset.h>
17271727
#include <linux/dma-buf.h>
17281728
#include <linux/gpio.h>
1729+
#if defined(NV_LINUX_OF_GPIO_H_PRESENT)
17291730
#include <linux/of_gpio.h>
1731+
#else
1732+
#include <linux/gpio/driver.h>
1733+
1734+
/*
1735+
* of_get_named_gpio() was removed along with linux/of_gpio.h by commit
1736+
* 51aaf65bbd21 ("gpio: of: Remove <linux/of_gpio.h>"). Provide a compat
1737+
* implementation using the remaining public GPIO APIs.
1738+
*/
1739+
static inline int of_get_named_gpio(const struct device_node *np,
1740+
const char *propname, int index)
1741+
{
1742+
struct of_phandle_args gpiospec;
1743+
struct gpio_device *gdev;
1744+
struct gpio_desc *desc;
1745+
int ret;
1746+
1747+
if (!np)
1748+
return -ENOENT;
1749+
1750+
ret =
1751+
of_parse_phandle_with_args_map(np, propname, "gpio", index, &gpiospec);
1752+
if (ret)
1753+
return ret;
1754+
1755+
gdev = gpio_device_find_by_fwnode(of_fwnode_handle(gpiospec.np));
1756+
of_node_put(gpiospec.np);
1757+
if (!gdev)
1758+
return -EPROBE_DEFER;
1759+
1760+
/*
1761+
* Use the chip's of_xlate callback to translate the DT GPIO
1762+
* specifier into a linear offset. Tegra GPIO controllers encode
1763+
* port and pin in args[0] and of_xlate sums per-port pin counts
1764+
* to produce the real offset.
1765+
*/
1766+
{
1767+
struct gpio_chip *chip = gpio_device_get_chip(gdev);
1768+
int hwgpio;
1769+
1770+
#if defined(CONFIG_OF_GPIO)
1771+
if (chip->of_xlate)
1772+
hwgpio = chip->of_xlate(chip, &gpiospec, NULL);
1773+
else
1774+
#endif
1775+
hwgpio = gpiospec.args[0];
1776+
1777+
if (hwgpio < 0) {
1778+
gpio_device_put(gdev);
1779+
return hwgpio;
1780+
}
1781+
1782+
desc = gpio_device_get_desc(gdev, hwgpio);
1783+
}
1784+
gpio_device_put(gdev);
1785+
1786+
if (IS_ERR(desc))
1787+
return PTR_ERR(desc);
1788+
1789+
return desc_to_gpio(desc);
1790+
}
1791+
#endif
17301792
#include <linux/of_device.h>
17311793
#include <linux/of_platform.h>
17321794

kernel-open/conftest.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,8 @@ check_symbol_exists() {
363363
for KMOD in linuxkpi.ko linuxkpi_gplv2.ko drm.ko dmabuf.ko ; do
364364
for KMODPATH in $KMODPATHS; do
365365
if [ -e "$KMODPATH/$KMOD" ] ; then
366-
if nm "$KMODPATH/$KMOD" | grep "$SYMBOL" >/dev/null 2>&1 ; then
366+
# Search if this symbol is a global text symbol in nm output
367+
if nm "$KMODPATH/$KMOD" | grep "T.*$SYMBOL" >/dev/null 2>&1 ; then
367368
return 0
368369
fi
369370
fi

kernel-open/header-presence-tests.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ NV_HEADER_PRESENCE_TESTS = \
4141
linux/vfio_pci_core.h \
4242
linux/cc_platform.h \
4343
linux/slub_def.h \
44+
linux/of_gpio.h \
4445
asm/cpufeature.h \
4546
asm/mshyperv.h \
4647
crypto/sig.h

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,4 @@ module_exit(nv_linux_drm_exit);
6464

6565
MODULE_INFO(supported, "external");
6666
MODULE_VERSION(NV_VERSION_STRING);
67+
MODULE_DESCRIPTION("NVIDIA DRM kernel module");

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2229,3 +2229,4 @@ module_exit(nvkms_exit);
22292229

22302230
MODULE_INFO(supported, "external");
22312231
MODULE_VERSION(NV_VERSION_STRING);
2232+
MODULE_DESCRIPTION("NVIDIA modeset kernel module");

kernel-open/nvidia-uvm/uvm.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,3 +1230,4 @@ module_exit(uvm_exit_entry);
12301230
MODULE_LICENSE("Dual MIT/GPL");
12311231
MODULE_INFO(supported, "external");
12321232
MODULE_VERSION(NV_VERSION_STRING);
1233+
MODULE_DESCRIPTION("NVIDIA Unified Virtual Memory kernel module");

kernel-open/nvidia-uvm/uvm_gpu_replayable_faults.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1800,6 +1800,7 @@ static NV_STATUS service_fault_batch_ats_sub(uvm_gpu_va_space_t *gpu_va_space,
18001800
// ATS faults can't be unserviceable, since unserviceable faults require
18011801
// GMMU PTEs.
18021802
UVM_ASSERT(!current_entry->is_fatal);
1803+
UVM_ASSERT(current_entry->gpu == gpu);
18031804

18041805
i++;
18051806

@@ -1849,6 +1850,7 @@ static NV_STATUS service_fault_batch_ats_sub(uvm_gpu_va_space_t *gpu_va_space,
18491850

18501851
} while (current_entry &&
18511852
(current_entry->fault_address < outer) &&
1853+
(previous_entry->gpu == current_entry->gpu) &&
18521854
(previous_entry->va_space == current_entry->va_space));
18531855

18541856
// Service the last sub-batch.

0 commit comments

Comments
 (0)