[nvidia-340xx-kmod] Fix build on kernel-6.0.2
by wojnilowicz
commit 005bc4bb3aa0c6f6b1c1980e9b1d9cfda1297655
Author: Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com>
Date: Sun Oct 16 10:47:48 2022 +0200
Fix build on kernel-6.0.2
0011-kernel-6.0.patch | 151 +++++++++++++++++++++++++++++++++++++++++++++++++
fix-build-issues.patch | 73 +++++++++++++++---------
nvidia-340xx-kmod.spec | 7 ++-
3 files changed, 204 insertions(+), 27 deletions(-)
---
diff --git a/0011-kernel-6.0.patch b/0011-kernel-6.0.patch
new file mode 100644
index 0000000..2b9df3b
--- /dev/null
+++ b/0011-kernel-6.0.patch
@@ -0,0 +1,151 @@
+diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
+--- a/kernel/nv-acpi.c 2022-10-14 02:26:04.379601051 +0000
++++ b/kernel/nv-acpi.c 2022-10-14 02:28:07.309332369 +0000
+@@ -178,6 +178,53 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
++static struct nv_acpi_add_enumerated_data {
++ nv_acpi_t *object;
++ int *counter;
++};
++static int nv_acpi_add_enumerated(struct acpi_device *dev, void *data)
++{
++ struct nv_acpi_add_enumerated_data *rcvd_data = data;
++ nv_acpi_t *pNvAcpiObject = rcvd_data->object;
++ int *device_counter = rcvd_data->counter;
++ acpi_status status = -1;
++ nv_acpi_integer_t device_id = 0;
++ if (!dev)
++ return 0;
++ if (*device_counter == NV_MAXNUM_DISPLAY_DEVICES) {
++ nv_printf(NV_DBG_ERRORS,
++ "NVRM: nv_acpi_add: Total number of devices cannot exceed %d\n",
++ NV_MAXNUM_DISPLAY_DEVICES);
++ return 1;
++ }
++ status =
++ acpi_evaluate_integer(dev->handle, "_ADR", NULL, &device_id);
++ if (ACPI_FAILURE(status))
++ /* Couldnt query device_id for this device */
++ return 0;
++
++ device_id = (device_id & 0xffff);
++
++ if ((device_id != 0x100) && /* Not a known CRT device-id */
++ (device_id != 0x200) && /* Not a known TV device-id */
++ (device_id != 0x0110) && (device_id != 0x0118) && (device_id != 0x0400) && /* Not an LCD*/
++ (device_id != 0x0111) && (device_id != 0x0120) && (device_id != 0x0300)) /* Not a known DVI device-id */
++ {
++ /* This isnt a known device Id.
++ Do default switching on this system. */
++ pNvAcpiObject->default_display_mask = 1;
++ return 1;
++ }
++
++ pNvAcpiObject->pNvVideo[*device_counter].dev_id = device_id;
++ pNvAcpiObject->pNvVideo[*device_counter].dev_handle = dev->handle;
++
++ (*device_counter)++;
++ return 0;
++}
++#endif
++
+ static int nv_acpi_add(struct acpi_device *device)
+ {
+ /*
+@@ -190,8 +237,10 @@
+ union acpi_object control_argument_0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list control_argument_list = { 0, NULL };
+ nv_stack_t *sp = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct list_head *node, *next;
+ nv_acpi_integer_t device_id = 0;
++#endif
+ int device_counter = 0;
+
+ NV_KMEM_CACHE_ALLOC_STACK(sp);
+@@ -220,6 +269,7 @@
+
+ // grab handles to all the important nodes representing devices
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ list_for_each_safe(node, next, &device->children)
+ {
+ struct acpi_device *dev =
+@@ -261,6 +311,13 @@
+ device_counter++;
+
+ }
++#else
++ struct nv_acpi_add_enumerated_data data = {
++ .object = pNvAcpiObject,
++ .counter = &device_counter,
++ };
++ acpi_dev_for_each_child(device, nv_acpi_add_enumerated, &data);
++#endif
+
+ // arg 0, bits 1:0, 0 = enable events
+ control_argument_0.integer.type = ACPI_TYPE_INTEGER;
+@@ -1192,6 +1249,31 @@
+ return status;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
++static int nv_acpi_ddc_method_enumerated(struct acpi_device *dev, void *data)
++{
++ acpi_handle *lcd_dev_handle = data;
++ acpi_status status;
++ nv_acpi_integer_t device_id = 0;
++ if (!dev)
++ return 0;
++ status = acpi_evaluate_integer(dev->handle, "_ADR", NULL, &device_id);
++ if (ACPI_FAILURE(status))
++ /* Couldnt query device_id for this device */
++ return 0;
++
++ device_id = (device_id & 0xffff);
++
++ if ((device_id == 0x0110) || (device_id == 0x0118) || (device_id == 0x0400)) /* Only for an LCD*/
++ {
++ *lcd_dev_handle = dev->handle;
++ nv_printf(NV_DBG_INFO, "NVRM: %s Found LCD: %x\n", __FUNCTION__, device_id);
++ return 1;
++ }
++ return 0;
++}
++#endif
++
+ /*
+ * This function executes a _DDC ACPI method.
+ */
+@@ -1207,8 +1289,10 @@
+ union acpi_object *ddc;
+ union acpi_object ddc_arg0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list input = { 1, &ddc_arg0 };
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct list_head *node, *next;
+ nv_acpi_integer_t device_id = 0;
++#endif
+ NvU32 i;
+ acpi_handle dev_handle = NULL;
+ acpi_handle lcd_dev_handle = NULL;
+@@ -1239,6 +1323,7 @@
+ return RM_ERR_NOT_SUPPORTED;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ list_for_each_safe(node, next, &device->children)
+ {
+ struct acpi_device *dev =
+@@ -1262,6 +1347,9 @@
+ }
+
+ }
++#else
++ acpi_dev_for_each_child(device, nv_acpi_ddc_method_enumerated, &lcd_dev_handle);
++#endif
+
+ if (lcd_dev_handle == NULL)
+ {
diff --git a/fix-build-issues.patch b/fix-build-issues.patch
index 514f86f..b49fe90 100644
--- a/fix-build-issues.patch
+++ b/fix-build-issues.patch
@@ -244,7 +244,7 @@ diff -Naur a/kernel/conftest.Kbuild b/kernel/conftest.Kbuild
+
+$(NV_CONFTEST_HEADERS): | $(BUILD_SANITY_CHECKS)
diff -Naur a/kernel/conftest.sh b/kernel/conftest.sh
---- a/kernel/conftest.sh 2022-08-28 09:42:13.768657744 +0200
+--- a/kernel/conftest.sh 2022-10-16 09:28:09.779225728 +0200
+++ b/kernel/conftest.sh 2022-08-28 09:42:35.542184258 +0200
@@ -113,6 +113,7 @@
FILES="$FILES drm/drm_vblank.h"
@@ -537,7 +537,7 @@ diff -Naur a/kernel/conftest.sh b/kernel/conftest.sh
#
# Determine whether driver feature flag DRIVER_PRIME is present.
diff -Naur a/kernel/dkms.conf b/kernel/dkms.conf
---- a/kernel/dkms.conf 2022-08-28 09:42:13.587661680 +0200
+--- a/kernel/dkms.conf 2022-10-16 09:28:09.688227805 +0200
+++ b/kernel/dkms.conf 2022-08-28 09:42:35.543184237 +0200
@@ -1,7 +1,13 @@
+if [ -x /usr/bin/nproc ]; then
@@ -555,7 +555,7 @@ diff -Naur a/kernel/dkms.conf b/kernel/dkms.conf
CLEAN="make clean"
AUTOINSTALL="yes"
diff -Naur a/kernel/Makefile b/kernel/Makefile
---- a/kernel/Makefile 2022-08-28 09:42:13.585661723 +0200
+--- a/kernel/Makefile 2022-10-16 09:28:09.686227851 +0200
+++ b/kernel/Makefile 2022-08-28 09:42:35.539184324 +0200
@@ -70,11 +70,11 @@
MODULE_GLUE_OBJS := $(patsubst %.c,%.o,nv-frontend.c)
@@ -589,8 +589,8 @@ diff -Naur a/kernel/Makefile b/kernel/Makefile
#
# Generate multiple targets at runtime depending on the items present in
diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
---- a/kernel/nv-acpi.c 2022-08-28 09:42:13.588661658 +0200
-+++ b/kernel/nv-acpi.c 2022-08-28 09:42:35.543184237 +0200
+--- a/kernel/nv-acpi.c 2022-10-16 09:28:09.690227759 +0200
++++ b/kernel/nv-acpi.c 2022-10-16 09:27:14.547486369 +0200
@@ -556,9 +556,11 @@
void NV_API_CALL nv_acpi_methods_init(NvU32 *handlesPresent)
@@ -646,7 +646,7 @@ diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
if (ACPI_FAILURE(status) || !device)
return RM_ERR_INVALID_ARGUMENT;
diff -Naur a/kernel/nv.c b/kernel/nv.c
---- a/kernel/nv.c 2022-08-28 09:42:13.607661245 +0200
+--- a/kernel/nv.c 2022-10-16 09:28:09.739226641 +0200
+++ b/kernel/nv.c 2022-08-28 09:42:35.548184128 +0200
@@ -752,7 +752,7 @@
NV_SPIN_LOCK_INIT(&km_lock);
@@ -670,7 +670,7 @@ diff -Naur a/kernel/nv.c b/kernel/nv.c
vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
#endif
diff -Naur a/kernel/nv-dma.c b/kernel/nv-dma.c
---- a/kernel/nv-dma.c 2022-08-28 09:42:13.589661636 +0200
+--- a/kernel/nv-dma.c 2022-10-16 09:28:09.691227737 +0200
+++ b/kernel/nv-dma.c 2022-08-28 09:42:35.544184215 +0200
@@ -136,10 +136,17 @@
return status;
@@ -705,7 +705,7 @@ diff -Naur a/kernel/nv-dma.c b/kernel/nv-dma.c
*priv = dma_map->user_pages;
diff -Naur a/kernel/nv-drm.c b/kernel/nv-drm.c
---- a/kernel/nv-drm.c 2022-08-28 09:42:13.589661636 +0200
+--- a/kernel/nv-drm.c 2022-10-16 09:28:09.691227737 +0200
+++ b/kernel/nv-drm.c 2022-08-28 09:42:35.544184215 +0200
@@ -23,6 +23,11 @@
#include <linux/file.h>
@@ -1176,8 +1176,8 @@ diff -Naur a/kernel/nv-drm.c b/kernel/nv-drm.c
#endif
diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
---- a/kernel/nv-frontend.c 2022-08-28 09:42:13.589661636 +0200
-+++ b/kernel/nv-frontend.c 2022-08-28 09:42:35.544184215 +0200
+--- a/kernel/nv-frontend.c 2022-10-16 09:28:09.692227714 +0200
++++ b/kernel/nv-frontend.c 2022-10-16 09:18:55.847854785 +0200
@@ -8,6 +8,7 @@
* _NVRM_COPYRIGHT_END_
*/
@@ -1186,6 +1186,15 @@ diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
#include "nv-misc.h"
#include "os-interface.h"
#include "nv-linux.h"
+@@ -15,7 +16,7 @@
+ #include "nv-frontend.h"
+
+ #if defined(MODULE_LICENSE)
+-MODULE_LICENSE("NVIDIA");
++MODULE_LICENSE("GPL");
+ #endif
+ #if defined(MODULE_INFO)
+ MODULE_INFO(supported, "external");
@@ -377,7 +378,7 @@
#if (NV_BUILD_MODULE_INSTANCES != 0)
#if defined(CONFIG_PROC_FS)
@@ -1196,7 +1205,7 @@ diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
#else
nvidia_exit_module();
diff -Naur a/kernel/nv.h b/kernel/nv.h
---- a/kernel/nv.h 2022-08-28 09:42:13.608661223 +0200
+--- a/kernel/nv.h 2022-10-16 09:28:09.740226618 +0200
+++ b/kernel/nv.h 2022-08-28 09:42:35.549184106 +0200
@@ -13,7 +13,7 @@
#define _NV_H_
@@ -1208,7 +1217,7 @@ diff -Naur a/kernel/nv.h b/kernel/nv.h
#if !defined(NV_MIN)
#define NV_MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b))
diff -Naur a/kernel/nvidia-drm-conftest.h b/kernel/nvidia-drm-conftest.h
---- a/kernel/nvidia-drm-conftest.h 2022-08-28 09:42:13.770657700 +0200
+--- a/kernel/nvidia-drm-conftest.h 2022-10-16 09:28:09.782225660 +0200
+++ b/kernel/nvidia-drm-conftest.h 2022-08-28 09:42:35.549184106 +0200
@@ -54,7 +54,7 @@
@@ -1220,7 +1229,7 @@ diff -Naur a/kernel/nvidia-drm-conftest.h b/kernel/nvidia-drm-conftest.h
#define NV_DRM_FENCE_AVAILABLE
#else
diff -Naur a/kernel/nvidia-drm-gem.c b/kernel/nvidia-drm-gem.c
---- a/kernel/nvidia-drm-gem.c 2022-08-28 09:42:13.770657700 +0200
+--- a/kernel/nvidia-drm-gem.c 2022-10-16 09:28:09.784225614 +0200
+++ b/kernel/nvidia-drm-gem.c 2022-08-28 09:42:35.549184106 +0200
@@ -26,10 +26,10 @@
@@ -1248,8 +1257,20 @@ diff -Naur a/kernel/nvidia-drm-gem.c b/kernel/nvidia-drm-gem.c
#endif
};
+diff -Naur a/kernel/nvidia-drm-helper.c b/kernel/nvidia-drm-helper.c
+--- a/kernel/nvidia-drm-helper.c 2022-10-16 09:28:09.785225591 +0200
++++ b/kernel/nvidia-drm-helper.c 2022-10-16 09:23:22.593780123 +0200
+@@ -29,7 +29,7 @@
+
+ #include "nvidia-drm-helper.h"
+
+-#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE)
++#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) && FALSE
+
+ #if defined(NV_DRM_DRMP_H_PRESENT)
+ #include <drm/drmP.h>
diff -Naur a/kernel/nvidia-drm-linux.c b/kernel/nvidia-drm-linux.c
---- a/kernel/nvidia-drm-linux.c 2022-08-28 09:42:13.772657657 +0200
+--- a/kernel/nvidia-drm-linux.c 2022-10-16 09:28:09.786225568 +0200
+++ b/kernel/nvidia-drm-linux.c 2022-08-28 09:42:35.549184106 +0200
@@ -25,7 +25,6 @@
#include <linux/err.h>
@@ -1286,7 +1307,7 @@ diff -Naur a/kernel/nvidia-drm-linux.c b/kernel/nvidia-drm-linux.c
- MODULE_VERSION(NV_VERSION_STRING);
-#endif
diff -Naur a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
---- a/kernel/nvidia-modules-common.mk 2022-08-28 09:42:13.608661223 +0200
+--- a/kernel/nvidia-modules-common.mk 2022-10-16 09:28:09.740226618 +0200
+++ b/kernel/nvidia-modules-common.mk 2022-08-28 09:42:35.550184084 +0200
@@ -149,10 +149,10 @@
CONFTEST_HEADERS := $(obj)/conftest.h $(CONFTEST_COMPILE_TEST_HEADERS) \
@@ -1320,7 +1341,7 @@ diff -Naur a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
@$(RM) -rf Module*.symvers .tmp_versions modules.order
diff -Naur a/kernel/nv-linux.h b/kernel/nv-linux.h
---- a/kernel/nv-linux.h 2022-08-28 09:42:13.591661593 +0200
+--- a/kernel/nv-linux.h 2022-10-16 09:28:09.693227691 +0200
+++ b/kernel/nv-linux.h 2022-08-28 09:42:35.545184193 +0200
@@ -119,12 +119,15 @@
#include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
@@ -1648,7 +1669,7 @@ diff -Naur a/kernel/nv-linux.h b/kernel/nv-linux.h
-
#endif /* _NV_LINUX_H_ */
diff -Naur a/kernel/nv-procfs.c b/kernel/nv-procfs.c
---- a/kernel/nv-procfs.c 2022-08-28 09:42:13.591661593 +0200
+--- a/kernel/nv-procfs.c 2022-10-16 09:28:09.694227668 +0200
+++ b/kernel/nv-procfs.c 2022-08-28 09:42:35.546184171 +0200
@@ -409,6 +409,15 @@
return ((status < 0) ? status : (int)count);
@@ -1699,7 +1720,7 @@ diff -Naur a/kernel/nv-procfs.c b/kernel/nv-procfs.c
static int
nv_procfs_read_text_file(
diff -Naur a/kernel/nv-vm.c b/kernel/nv-vm.c
---- a/kernel/nv-vm.c 2022-08-28 09:42:13.592661571 +0200
+--- a/kernel/nv-vm.c 2022-10-16 09:28:09.694227668 +0200
+++ b/kernel/nv-vm.c 2022-08-28 09:42:35.546184171 +0200
@@ -12,6 +12,9 @@
#include "os-interface.h"
@@ -1733,7 +1754,7 @@ diff -Naur a/kernel/nv-vm.c b/kernel/nv-vm.c
#define NV_MAP_SG_MAX_RETRIES 16
diff -Naur a/kernel/os-interface.c b/kernel/os-interface.c
---- a/kernel/os-interface.c 2022-08-28 09:42:13.609661201 +0200
+--- a/kernel/os-interface.c 2022-10-16 09:28:09.741226595 +0200
+++ b/kernel/os-interface.c 2022-08-28 09:42:35.550184084 +0200
@@ -439,7 +439,7 @@
NvU32 *useconds
@@ -1775,7 +1796,7 @@ diff -Naur a/kernel/os-interface.c b/kernel/os-interface.c
{
schedule_timeout(jiffies);
diff -Naur a/kernel/os-interface.h b/kernel/os-interface.h
---- a/kernel/os-interface.h 2022-08-28 09:42:13.609661201 +0200
+--- a/kernel/os-interface.h 2022-10-16 09:28:09.741226595 +0200
+++ b/kernel/os-interface.h 2022-08-28 09:42:35.551184063 +0200
@@ -24,7 +24,7 @@
* *
@@ -1787,7 +1808,7 @@ diff -Naur a/kernel/os-interface.h b/kernel/os-interface.h
/*
* Define away Microsoft compiler extensions when possible
diff -Naur a/kernel/os-mlock.c b/kernel/os-mlock.c
---- a/kernel/os-mlock.c 2022-08-28 09:42:13.610661179 +0200
+--- a/kernel/os-mlock.c 2022-10-16 09:28:09.742226573 +0200
+++ b/kernel/os-mlock.c 2022-08-28 09:42:35.551184063 +0200
@@ -14,6 +14,8 @@
#include "os-interface.h"
@@ -1812,7 +1833,7 @@ diff -Naur a/kernel/os-mlock.c b/kernel/os-mlock.c
if (ret < 0)
diff -Naur a/kernel/uvm/conftest.sh b/kernel/uvm/conftest.sh
---- a/kernel/uvm/conftest.sh 2022-08-28 09:42:13.624660875 +0200
+--- a/kernel/uvm/conftest.sh 2022-10-16 09:28:09.743226550 +0200
+++ b/kernel/uvm/conftest.sh 2022-08-28 09:42:35.552184041 +0200
@@ -176,6 +176,7 @@
FILES="$FILES linux/ktime.h"
@@ -1833,7 +1854,7 @@ diff -Naur a/kernel/uvm/conftest.sh b/kernel/uvm/conftest.sh
#include <asm/set_memory.h>
#else
diff -Naur a/kernel/uvm/Makefile b/kernel/uvm/Makefile
---- a/kernel/uvm/Makefile 2022-08-28 09:42:13.610661179 +0200
+--- a/kernel/uvm/Makefile 2022-10-16 09:28:09.742226573 +0200
+++ b/kernel/uvm/Makefile 2022-08-28 09:42:35.551184063 +0200
@@ -207,6 +207,7 @@
@@ -1844,7 +1865,7 @@ diff -Naur a/kernel/uvm/Makefile b/kernel/uvm/Makefile
module $(MODULE_NAME).ko: $(UVM_MODULE_SYMVERS) debug_diagnostics_printing
diff -Naur a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
---- a/kernel/uvm/nvidia_uvm_linux.h 2022-08-28 09:42:13.625660853 +0200
+--- a/kernel/uvm/nvidia_uvm_linux.h 2022-10-16 09:28:09.744226527 +0200
+++ b/kernel/uvm/nvidia_uvm_linux.h 2022-08-28 09:42:35.553184019 +0200
@@ -141,7 +141,9 @@
#if !defined(NV_VMWARE)
@@ -1867,7 +1888,7 @@ diff -Naur a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
#include <linux/ioctl32.h> /* register_ioctl32_conversion() */
#endif
diff -Naur a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
---- a/kernel/uvm/nvidia_uvm_lite_api.c 2022-08-28 09:42:13.628660788 +0200
+--- a/kernel/uvm/nvidia_uvm_lite_api.c 2022-10-16 09:28:09.745226504 +0200
+++ b/kernel/uvm/nvidia_uvm_lite_api.c 2022-08-28 09:42:35.554183997 +0200
@@ -30,6 +30,12 @@
#include "uvm_gpu_ops_tests.h"
@@ -2021,7 +2042,7 @@ diff -Naur a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
//
// We can not reverse uvm_map_page, so inserted pages will stay
diff -Naur a/kernel/uvm/nvidia_uvm_lite.c b/kernel/uvm/nvidia_uvm_lite.c
---- a/kernel/uvm/nvidia_uvm_lite.c 2022-08-28 09:42:13.627660810 +0200
+--- a/kernel/uvm/nvidia_uvm_lite.c 2022-10-16 09:28:09.745226504 +0200
+++ b/kernel/uvm/nvidia_uvm_lite.c 2022-08-28 09:42:35.554183997 +0200
@@ -131,8 +131,8 @@
RM_STATUS _preexisting_error_on_channel(UvmGpuMigrationTracking *pMigTracker,
diff --git a/nvidia-340xx-kmod.spec b/nvidia-340xx-kmod.spec
index d7441c9..1e16bf2 100644
--- a/nvidia-340xx-kmod.spec
+++ b/nvidia-340xx-kmod.spec
@@ -12,7 +12,7 @@ Name: nvidia-340xx-kmod
Epoch: 1
Version: 340.108
# Taken over by kmodtool
-Release: 22%{?dist}
+Release: 23%{?dist}
Summary: NVIDIA display driver kernel module
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -21,6 +21,7 @@ URL: http://www.nvidia.com/
Source11: nvidia-kmodtool-excludekernel-filterfile
Patch0: import-files-from-390.151.patch
Patch1: fix-build-issues.patch
+Patch2: 0011-kernel-6.0.patch
BuildRequires: elfutils-libelf-devel
BuildRequires: gcc
@@ -49,6 +50,7 @@ tar --use-compress-program xz -xf %{_datadir}/%{name}-%{version}/%{name}-%{versi
# patch loop
%patch0 -p1
%patch1 -p1
+%patch2 -p2
for kernel_version in %{?kernel_versions} ; do
cp -a kernel _kmod_build_${kernel_version%%___*}
@@ -77,6 +79,9 @@ done
%{?akmod_install}
%changelog
+* Sun Oct 16 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com> - 1:340.108-23
+- Fix build on kernel-6.0.2
+
* Sun Aug 28 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com> - 1:340.108-22
- Fix build on kernel-5.19.0
2 years, 1 month
[nvidia-340xx-kmod/f37] Fix build on kernel-6.0.2
by wojnilowicz
commit df735034072cc7838e72f505a2c5791717d32494
Author: Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com>
Date: Sun Oct 16 10:43:10 2022 +0200
Fix build on kernel-6.0.2
0011-kernel-6.0.patch | 151 +++++++++++++++++++++++++++++++++++++++++++++++++
fix-build-issues.patch | 73 +++++++++++++++---------
nvidia-340xx-kmod.spec | 7 ++-
3 files changed, 204 insertions(+), 27 deletions(-)
---
diff --git a/0011-kernel-6.0.patch b/0011-kernel-6.0.patch
new file mode 100644
index 0000000..2b9df3b
--- /dev/null
+++ b/0011-kernel-6.0.patch
@@ -0,0 +1,151 @@
+diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
+--- a/kernel/nv-acpi.c 2022-10-14 02:26:04.379601051 +0000
++++ b/kernel/nv-acpi.c 2022-10-14 02:28:07.309332369 +0000
+@@ -178,6 +178,53 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
++static struct nv_acpi_add_enumerated_data {
++ nv_acpi_t *object;
++ int *counter;
++};
++static int nv_acpi_add_enumerated(struct acpi_device *dev, void *data)
++{
++ struct nv_acpi_add_enumerated_data *rcvd_data = data;
++ nv_acpi_t *pNvAcpiObject = rcvd_data->object;
++ int *device_counter = rcvd_data->counter;
++ acpi_status status = -1;
++ nv_acpi_integer_t device_id = 0;
++ if (!dev)
++ return 0;
++ if (*device_counter == NV_MAXNUM_DISPLAY_DEVICES) {
++ nv_printf(NV_DBG_ERRORS,
++ "NVRM: nv_acpi_add: Total number of devices cannot exceed %d\n",
++ NV_MAXNUM_DISPLAY_DEVICES);
++ return 1;
++ }
++ status =
++ acpi_evaluate_integer(dev->handle, "_ADR", NULL, &device_id);
++ if (ACPI_FAILURE(status))
++ /* Couldnt query device_id for this device */
++ return 0;
++
++ device_id = (device_id & 0xffff);
++
++ if ((device_id != 0x100) && /* Not a known CRT device-id */
++ (device_id != 0x200) && /* Not a known TV device-id */
++ (device_id != 0x0110) && (device_id != 0x0118) && (device_id != 0x0400) && /* Not an LCD*/
++ (device_id != 0x0111) && (device_id != 0x0120) && (device_id != 0x0300)) /* Not a known DVI device-id */
++ {
++ /* This isnt a known device Id.
++ Do default switching on this system. */
++ pNvAcpiObject->default_display_mask = 1;
++ return 1;
++ }
++
++ pNvAcpiObject->pNvVideo[*device_counter].dev_id = device_id;
++ pNvAcpiObject->pNvVideo[*device_counter].dev_handle = dev->handle;
++
++ (*device_counter)++;
++ return 0;
++}
++#endif
++
+ static int nv_acpi_add(struct acpi_device *device)
+ {
+ /*
+@@ -190,8 +237,10 @@
+ union acpi_object control_argument_0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list control_argument_list = { 0, NULL };
+ nv_stack_t *sp = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct list_head *node, *next;
+ nv_acpi_integer_t device_id = 0;
++#endif
+ int device_counter = 0;
+
+ NV_KMEM_CACHE_ALLOC_STACK(sp);
+@@ -220,6 +269,7 @@
+
+ // grab handles to all the important nodes representing devices
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ list_for_each_safe(node, next, &device->children)
+ {
+ struct acpi_device *dev =
+@@ -261,6 +311,13 @@
+ device_counter++;
+
+ }
++#else
++ struct nv_acpi_add_enumerated_data data = {
++ .object = pNvAcpiObject,
++ .counter = &device_counter,
++ };
++ acpi_dev_for_each_child(device, nv_acpi_add_enumerated, &data);
++#endif
+
+ // arg 0, bits 1:0, 0 = enable events
+ control_argument_0.integer.type = ACPI_TYPE_INTEGER;
+@@ -1192,6 +1249,31 @@
+ return status;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
++static int nv_acpi_ddc_method_enumerated(struct acpi_device *dev, void *data)
++{
++ acpi_handle *lcd_dev_handle = data;
++ acpi_status status;
++ nv_acpi_integer_t device_id = 0;
++ if (!dev)
++ return 0;
++ status = acpi_evaluate_integer(dev->handle, "_ADR", NULL, &device_id);
++ if (ACPI_FAILURE(status))
++ /* Couldnt query device_id for this device */
++ return 0;
++
++ device_id = (device_id & 0xffff);
++
++ if ((device_id == 0x0110) || (device_id == 0x0118) || (device_id == 0x0400)) /* Only for an LCD*/
++ {
++ *lcd_dev_handle = dev->handle;
++ nv_printf(NV_DBG_INFO, "NVRM: %s Found LCD: %x\n", __FUNCTION__, device_id);
++ return 1;
++ }
++ return 0;
++}
++#endif
++
+ /*
+ * This function executes a _DDC ACPI method.
+ */
+@@ -1207,8 +1289,10 @@
+ union acpi_object *ddc;
+ union acpi_object ddc_arg0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list input = { 1, &ddc_arg0 };
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct list_head *node, *next;
+ nv_acpi_integer_t device_id = 0;
++#endif
+ NvU32 i;
+ acpi_handle dev_handle = NULL;
+ acpi_handle lcd_dev_handle = NULL;
+@@ -1239,6 +1323,7 @@
+ return RM_ERR_NOT_SUPPORTED;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ list_for_each_safe(node, next, &device->children)
+ {
+ struct acpi_device *dev =
+@@ -1262,6 +1347,9 @@
+ }
+
+ }
++#else
++ acpi_dev_for_each_child(device, nv_acpi_ddc_method_enumerated, &lcd_dev_handle);
++#endif
+
+ if (lcd_dev_handle == NULL)
+ {
diff --git a/fix-build-issues.patch b/fix-build-issues.patch
index 514f86f..b49fe90 100644
--- a/fix-build-issues.patch
+++ b/fix-build-issues.patch
@@ -244,7 +244,7 @@ diff -Naur a/kernel/conftest.Kbuild b/kernel/conftest.Kbuild
+
+$(NV_CONFTEST_HEADERS): | $(BUILD_SANITY_CHECKS)
diff -Naur a/kernel/conftest.sh b/kernel/conftest.sh
---- a/kernel/conftest.sh 2022-08-28 09:42:13.768657744 +0200
+--- a/kernel/conftest.sh 2022-10-16 09:28:09.779225728 +0200
+++ b/kernel/conftest.sh 2022-08-28 09:42:35.542184258 +0200
@@ -113,6 +113,7 @@
FILES="$FILES drm/drm_vblank.h"
@@ -537,7 +537,7 @@ diff -Naur a/kernel/conftest.sh b/kernel/conftest.sh
#
# Determine whether driver feature flag DRIVER_PRIME is present.
diff -Naur a/kernel/dkms.conf b/kernel/dkms.conf
---- a/kernel/dkms.conf 2022-08-28 09:42:13.587661680 +0200
+--- a/kernel/dkms.conf 2022-10-16 09:28:09.688227805 +0200
+++ b/kernel/dkms.conf 2022-08-28 09:42:35.543184237 +0200
@@ -1,7 +1,13 @@
+if [ -x /usr/bin/nproc ]; then
@@ -555,7 +555,7 @@ diff -Naur a/kernel/dkms.conf b/kernel/dkms.conf
CLEAN="make clean"
AUTOINSTALL="yes"
diff -Naur a/kernel/Makefile b/kernel/Makefile
---- a/kernel/Makefile 2022-08-28 09:42:13.585661723 +0200
+--- a/kernel/Makefile 2022-10-16 09:28:09.686227851 +0200
+++ b/kernel/Makefile 2022-08-28 09:42:35.539184324 +0200
@@ -70,11 +70,11 @@
MODULE_GLUE_OBJS := $(patsubst %.c,%.o,nv-frontend.c)
@@ -589,8 +589,8 @@ diff -Naur a/kernel/Makefile b/kernel/Makefile
#
# Generate multiple targets at runtime depending on the items present in
diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
---- a/kernel/nv-acpi.c 2022-08-28 09:42:13.588661658 +0200
-+++ b/kernel/nv-acpi.c 2022-08-28 09:42:35.543184237 +0200
+--- a/kernel/nv-acpi.c 2022-10-16 09:28:09.690227759 +0200
++++ b/kernel/nv-acpi.c 2022-10-16 09:27:14.547486369 +0200
@@ -556,9 +556,11 @@
void NV_API_CALL nv_acpi_methods_init(NvU32 *handlesPresent)
@@ -646,7 +646,7 @@ diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
if (ACPI_FAILURE(status) || !device)
return RM_ERR_INVALID_ARGUMENT;
diff -Naur a/kernel/nv.c b/kernel/nv.c
---- a/kernel/nv.c 2022-08-28 09:42:13.607661245 +0200
+--- a/kernel/nv.c 2022-10-16 09:28:09.739226641 +0200
+++ b/kernel/nv.c 2022-08-28 09:42:35.548184128 +0200
@@ -752,7 +752,7 @@
NV_SPIN_LOCK_INIT(&km_lock);
@@ -670,7 +670,7 @@ diff -Naur a/kernel/nv.c b/kernel/nv.c
vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
#endif
diff -Naur a/kernel/nv-dma.c b/kernel/nv-dma.c
---- a/kernel/nv-dma.c 2022-08-28 09:42:13.589661636 +0200
+--- a/kernel/nv-dma.c 2022-10-16 09:28:09.691227737 +0200
+++ b/kernel/nv-dma.c 2022-08-28 09:42:35.544184215 +0200
@@ -136,10 +136,17 @@
return status;
@@ -705,7 +705,7 @@ diff -Naur a/kernel/nv-dma.c b/kernel/nv-dma.c
*priv = dma_map->user_pages;
diff -Naur a/kernel/nv-drm.c b/kernel/nv-drm.c
---- a/kernel/nv-drm.c 2022-08-28 09:42:13.589661636 +0200
+--- a/kernel/nv-drm.c 2022-10-16 09:28:09.691227737 +0200
+++ b/kernel/nv-drm.c 2022-08-28 09:42:35.544184215 +0200
@@ -23,6 +23,11 @@
#include <linux/file.h>
@@ -1176,8 +1176,8 @@ diff -Naur a/kernel/nv-drm.c b/kernel/nv-drm.c
#endif
diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
---- a/kernel/nv-frontend.c 2022-08-28 09:42:13.589661636 +0200
-+++ b/kernel/nv-frontend.c 2022-08-28 09:42:35.544184215 +0200
+--- a/kernel/nv-frontend.c 2022-10-16 09:28:09.692227714 +0200
++++ b/kernel/nv-frontend.c 2022-10-16 09:18:55.847854785 +0200
@@ -8,6 +8,7 @@
* _NVRM_COPYRIGHT_END_
*/
@@ -1186,6 +1186,15 @@ diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
#include "nv-misc.h"
#include "os-interface.h"
#include "nv-linux.h"
+@@ -15,7 +16,7 @@
+ #include "nv-frontend.h"
+
+ #if defined(MODULE_LICENSE)
+-MODULE_LICENSE("NVIDIA");
++MODULE_LICENSE("GPL");
+ #endif
+ #if defined(MODULE_INFO)
+ MODULE_INFO(supported, "external");
@@ -377,7 +378,7 @@
#if (NV_BUILD_MODULE_INSTANCES != 0)
#if defined(CONFIG_PROC_FS)
@@ -1196,7 +1205,7 @@ diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
#else
nvidia_exit_module();
diff -Naur a/kernel/nv.h b/kernel/nv.h
---- a/kernel/nv.h 2022-08-28 09:42:13.608661223 +0200
+--- a/kernel/nv.h 2022-10-16 09:28:09.740226618 +0200
+++ b/kernel/nv.h 2022-08-28 09:42:35.549184106 +0200
@@ -13,7 +13,7 @@
#define _NV_H_
@@ -1208,7 +1217,7 @@ diff -Naur a/kernel/nv.h b/kernel/nv.h
#if !defined(NV_MIN)
#define NV_MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b))
diff -Naur a/kernel/nvidia-drm-conftest.h b/kernel/nvidia-drm-conftest.h
---- a/kernel/nvidia-drm-conftest.h 2022-08-28 09:42:13.770657700 +0200
+--- a/kernel/nvidia-drm-conftest.h 2022-10-16 09:28:09.782225660 +0200
+++ b/kernel/nvidia-drm-conftest.h 2022-08-28 09:42:35.549184106 +0200
@@ -54,7 +54,7 @@
@@ -1220,7 +1229,7 @@ diff -Naur a/kernel/nvidia-drm-conftest.h b/kernel/nvidia-drm-conftest.h
#define NV_DRM_FENCE_AVAILABLE
#else
diff -Naur a/kernel/nvidia-drm-gem.c b/kernel/nvidia-drm-gem.c
---- a/kernel/nvidia-drm-gem.c 2022-08-28 09:42:13.770657700 +0200
+--- a/kernel/nvidia-drm-gem.c 2022-10-16 09:28:09.784225614 +0200
+++ b/kernel/nvidia-drm-gem.c 2022-08-28 09:42:35.549184106 +0200
@@ -26,10 +26,10 @@
@@ -1248,8 +1257,20 @@ diff -Naur a/kernel/nvidia-drm-gem.c b/kernel/nvidia-drm-gem.c
#endif
};
+diff -Naur a/kernel/nvidia-drm-helper.c b/kernel/nvidia-drm-helper.c
+--- a/kernel/nvidia-drm-helper.c 2022-10-16 09:28:09.785225591 +0200
++++ b/kernel/nvidia-drm-helper.c 2022-10-16 09:23:22.593780123 +0200
+@@ -29,7 +29,7 @@
+
+ #include "nvidia-drm-helper.h"
+
+-#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE)
++#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) && FALSE
+
+ #if defined(NV_DRM_DRMP_H_PRESENT)
+ #include <drm/drmP.h>
diff -Naur a/kernel/nvidia-drm-linux.c b/kernel/nvidia-drm-linux.c
---- a/kernel/nvidia-drm-linux.c 2022-08-28 09:42:13.772657657 +0200
+--- a/kernel/nvidia-drm-linux.c 2022-10-16 09:28:09.786225568 +0200
+++ b/kernel/nvidia-drm-linux.c 2022-08-28 09:42:35.549184106 +0200
@@ -25,7 +25,6 @@
#include <linux/err.h>
@@ -1286,7 +1307,7 @@ diff -Naur a/kernel/nvidia-drm-linux.c b/kernel/nvidia-drm-linux.c
- MODULE_VERSION(NV_VERSION_STRING);
-#endif
diff -Naur a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
---- a/kernel/nvidia-modules-common.mk 2022-08-28 09:42:13.608661223 +0200
+--- a/kernel/nvidia-modules-common.mk 2022-10-16 09:28:09.740226618 +0200
+++ b/kernel/nvidia-modules-common.mk 2022-08-28 09:42:35.550184084 +0200
@@ -149,10 +149,10 @@
CONFTEST_HEADERS := $(obj)/conftest.h $(CONFTEST_COMPILE_TEST_HEADERS) \
@@ -1320,7 +1341,7 @@ diff -Naur a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
@$(RM) -rf Module*.symvers .tmp_versions modules.order
diff -Naur a/kernel/nv-linux.h b/kernel/nv-linux.h
---- a/kernel/nv-linux.h 2022-08-28 09:42:13.591661593 +0200
+--- a/kernel/nv-linux.h 2022-10-16 09:28:09.693227691 +0200
+++ b/kernel/nv-linux.h 2022-08-28 09:42:35.545184193 +0200
@@ -119,12 +119,15 @@
#include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
@@ -1648,7 +1669,7 @@ diff -Naur a/kernel/nv-linux.h b/kernel/nv-linux.h
-
#endif /* _NV_LINUX_H_ */
diff -Naur a/kernel/nv-procfs.c b/kernel/nv-procfs.c
---- a/kernel/nv-procfs.c 2022-08-28 09:42:13.591661593 +0200
+--- a/kernel/nv-procfs.c 2022-10-16 09:28:09.694227668 +0200
+++ b/kernel/nv-procfs.c 2022-08-28 09:42:35.546184171 +0200
@@ -409,6 +409,15 @@
return ((status < 0) ? status : (int)count);
@@ -1699,7 +1720,7 @@ diff -Naur a/kernel/nv-procfs.c b/kernel/nv-procfs.c
static int
nv_procfs_read_text_file(
diff -Naur a/kernel/nv-vm.c b/kernel/nv-vm.c
---- a/kernel/nv-vm.c 2022-08-28 09:42:13.592661571 +0200
+--- a/kernel/nv-vm.c 2022-10-16 09:28:09.694227668 +0200
+++ b/kernel/nv-vm.c 2022-08-28 09:42:35.546184171 +0200
@@ -12,6 +12,9 @@
#include "os-interface.h"
@@ -1733,7 +1754,7 @@ diff -Naur a/kernel/nv-vm.c b/kernel/nv-vm.c
#define NV_MAP_SG_MAX_RETRIES 16
diff -Naur a/kernel/os-interface.c b/kernel/os-interface.c
---- a/kernel/os-interface.c 2022-08-28 09:42:13.609661201 +0200
+--- a/kernel/os-interface.c 2022-10-16 09:28:09.741226595 +0200
+++ b/kernel/os-interface.c 2022-08-28 09:42:35.550184084 +0200
@@ -439,7 +439,7 @@
NvU32 *useconds
@@ -1775,7 +1796,7 @@ diff -Naur a/kernel/os-interface.c b/kernel/os-interface.c
{
schedule_timeout(jiffies);
diff -Naur a/kernel/os-interface.h b/kernel/os-interface.h
---- a/kernel/os-interface.h 2022-08-28 09:42:13.609661201 +0200
+--- a/kernel/os-interface.h 2022-10-16 09:28:09.741226595 +0200
+++ b/kernel/os-interface.h 2022-08-28 09:42:35.551184063 +0200
@@ -24,7 +24,7 @@
* *
@@ -1787,7 +1808,7 @@ diff -Naur a/kernel/os-interface.h b/kernel/os-interface.h
/*
* Define away Microsoft compiler extensions when possible
diff -Naur a/kernel/os-mlock.c b/kernel/os-mlock.c
---- a/kernel/os-mlock.c 2022-08-28 09:42:13.610661179 +0200
+--- a/kernel/os-mlock.c 2022-10-16 09:28:09.742226573 +0200
+++ b/kernel/os-mlock.c 2022-08-28 09:42:35.551184063 +0200
@@ -14,6 +14,8 @@
#include "os-interface.h"
@@ -1812,7 +1833,7 @@ diff -Naur a/kernel/os-mlock.c b/kernel/os-mlock.c
if (ret < 0)
diff -Naur a/kernel/uvm/conftest.sh b/kernel/uvm/conftest.sh
---- a/kernel/uvm/conftest.sh 2022-08-28 09:42:13.624660875 +0200
+--- a/kernel/uvm/conftest.sh 2022-10-16 09:28:09.743226550 +0200
+++ b/kernel/uvm/conftest.sh 2022-08-28 09:42:35.552184041 +0200
@@ -176,6 +176,7 @@
FILES="$FILES linux/ktime.h"
@@ -1833,7 +1854,7 @@ diff -Naur a/kernel/uvm/conftest.sh b/kernel/uvm/conftest.sh
#include <asm/set_memory.h>
#else
diff -Naur a/kernel/uvm/Makefile b/kernel/uvm/Makefile
---- a/kernel/uvm/Makefile 2022-08-28 09:42:13.610661179 +0200
+--- a/kernel/uvm/Makefile 2022-10-16 09:28:09.742226573 +0200
+++ b/kernel/uvm/Makefile 2022-08-28 09:42:35.551184063 +0200
@@ -207,6 +207,7 @@
@@ -1844,7 +1865,7 @@ diff -Naur a/kernel/uvm/Makefile b/kernel/uvm/Makefile
module $(MODULE_NAME).ko: $(UVM_MODULE_SYMVERS) debug_diagnostics_printing
diff -Naur a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
---- a/kernel/uvm/nvidia_uvm_linux.h 2022-08-28 09:42:13.625660853 +0200
+--- a/kernel/uvm/nvidia_uvm_linux.h 2022-10-16 09:28:09.744226527 +0200
+++ b/kernel/uvm/nvidia_uvm_linux.h 2022-08-28 09:42:35.553184019 +0200
@@ -141,7 +141,9 @@
#if !defined(NV_VMWARE)
@@ -1867,7 +1888,7 @@ diff -Naur a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
#include <linux/ioctl32.h> /* register_ioctl32_conversion() */
#endif
diff -Naur a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
---- a/kernel/uvm/nvidia_uvm_lite_api.c 2022-08-28 09:42:13.628660788 +0200
+--- a/kernel/uvm/nvidia_uvm_lite_api.c 2022-10-16 09:28:09.745226504 +0200
+++ b/kernel/uvm/nvidia_uvm_lite_api.c 2022-08-28 09:42:35.554183997 +0200
@@ -30,6 +30,12 @@
#include "uvm_gpu_ops_tests.h"
@@ -2021,7 +2042,7 @@ diff -Naur a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
//
// We can not reverse uvm_map_page, so inserted pages will stay
diff -Naur a/kernel/uvm/nvidia_uvm_lite.c b/kernel/uvm/nvidia_uvm_lite.c
---- a/kernel/uvm/nvidia_uvm_lite.c 2022-08-28 09:42:13.627660810 +0200
+--- a/kernel/uvm/nvidia_uvm_lite.c 2022-10-16 09:28:09.745226504 +0200
+++ b/kernel/uvm/nvidia_uvm_lite.c 2022-08-28 09:42:35.554183997 +0200
@@ -131,8 +131,8 @@
RM_STATUS _preexisting_error_on_channel(UvmGpuMigrationTracking *pMigTracker,
diff --git a/nvidia-340xx-kmod.spec b/nvidia-340xx-kmod.spec
index d8906a7..c7d8771 100644
--- a/nvidia-340xx-kmod.spec
+++ b/nvidia-340xx-kmod.spec
@@ -12,7 +12,7 @@ Name: nvidia-340xx-kmod
Epoch: 1
Version: 340.108
# Taken over by kmodtool
-Release: 22%{?dist}
+Release: 23%{?dist}
Summary: NVIDIA display driver kernel module
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -21,6 +21,7 @@ URL: http://www.nvidia.com/
Source11: nvidia-kmodtool-excludekernel-filterfile
Patch0: import-files-from-390.151.patch
Patch1: fix-build-issues.patch
+Patch2: 0011-kernel-6.0.patch
BuildRequires: elfutils-libelf-devel
BuildRequires: gcc
@@ -49,6 +50,7 @@ tar --use-compress-program xz -xf %{_datadir}/%{name}-%{version}/%{name}-%{versi
# patch loop
%patch0 -p1
%patch1 -p1
+%patch2 -p1
for kernel_version in %{?kernel_versions} ; do
cp -a kernel _kmod_build_${kernel_version%%___*}
@@ -77,6 +79,9 @@ done
%{?akmod_install}
%changelog
+* Sun Oct 16 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com> - 1:340.108-23
+- Fix build on kernel-6.0.2
+
* Sun Aug 28 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com> - 1:340.108-22
- Fix build on kernel-5.19.0
2 years, 1 month
[nvidia-340xx-kmod/f36] Fix build on kernel-6.0.2
by wojnilowicz
commit 4193f3b5ad399acee4d09e4af444a365bf85c5d2
Author: Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com>
Date: Sun Oct 16 09:38:25 2022 +0200
Fix build on kernel-6.0.2
0011-kernel-6.0.patch | 151 +++++++++++++++++++++++++++++++++++++++++++++++++
fix-build-issues.patch | 73 +++++++++++++++---------
nvidia-340xx-kmod.spec | 7 ++-
3 files changed, 204 insertions(+), 27 deletions(-)
---
diff --git a/0011-kernel-6.0.patch b/0011-kernel-6.0.patch
new file mode 100644
index 0000000..2b9df3b
--- /dev/null
+++ b/0011-kernel-6.0.patch
@@ -0,0 +1,151 @@
+diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
+--- a/kernel/nv-acpi.c 2022-10-14 02:26:04.379601051 +0000
++++ b/kernel/nv-acpi.c 2022-10-14 02:28:07.309332369 +0000
+@@ -178,6 +178,53 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
++static struct nv_acpi_add_enumerated_data {
++ nv_acpi_t *object;
++ int *counter;
++};
++static int nv_acpi_add_enumerated(struct acpi_device *dev, void *data)
++{
++ struct nv_acpi_add_enumerated_data *rcvd_data = data;
++ nv_acpi_t *pNvAcpiObject = rcvd_data->object;
++ int *device_counter = rcvd_data->counter;
++ acpi_status status = -1;
++ nv_acpi_integer_t device_id = 0;
++ if (!dev)
++ return 0;
++ if (*device_counter == NV_MAXNUM_DISPLAY_DEVICES) {
++ nv_printf(NV_DBG_ERRORS,
++ "NVRM: nv_acpi_add: Total number of devices cannot exceed %d\n",
++ NV_MAXNUM_DISPLAY_DEVICES);
++ return 1;
++ }
++ status =
++ acpi_evaluate_integer(dev->handle, "_ADR", NULL, &device_id);
++ if (ACPI_FAILURE(status))
++ /* Couldnt query device_id for this device */
++ return 0;
++
++ device_id = (device_id & 0xffff);
++
++ if ((device_id != 0x100) && /* Not a known CRT device-id */
++ (device_id != 0x200) && /* Not a known TV device-id */
++ (device_id != 0x0110) && (device_id != 0x0118) && (device_id != 0x0400) && /* Not an LCD*/
++ (device_id != 0x0111) && (device_id != 0x0120) && (device_id != 0x0300)) /* Not a known DVI device-id */
++ {
++ /* This isnt a known device Id.
++ Do default switching on this system. */
++ pNvAcpiObject->default_display_mask = 1;
++ return 1;
++ }
++
++ pNvAcpiObject->pNvVideo[*device_counter].dev_id = device_id;
++ pNvAcpiObject->pNvVideo[*device_counter].dev_handle = dev->handle;
++
++ (*device_counter)++;
++ return 0;
++}
++#endif
++
+ static int nv_acpi_add(struct acpi_device *device)
+ {
+ /*
+@@ -190,8 +237,10 @@
+ union acpi_object control_argument_0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list control_argument_list = { 0, NULL };
+ nv_stack_t *sp = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct list_head *node, *next;
+ nv_acpi_integer_t device_id = 0;
++#endif
+ int device_counter = 0;
+
+ NV_KMEM_CACHE_ALLOC_STACK(sp);
+@@ -220,6 +269,7 @@
+
+ // grab handles to all the important nodes representing devices
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ list_for_each_safe(node, next, &device->children)
+ {
+ struct acpi_device *dev =
+@@ -261,6 +311,13 @@
+ device_counter++;
+
+ }
++#else
++ struct nv_acpi_add_enumerated_data data = {
++ .object = pNvAcpiObject,
++ .counter = &device_counter,
++ };
++ acpi_dev_for_each_child(device, nv_acpi_add_enumerated, &data);
++#endif
+
+ // arg 0, bits 1:0, 0 = enable events
+ control_argument_0.integer.type = ACPI_TYPE_INTEGER;
+@@ -1192,6 +1249,31 @@
+ return status;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
++static int nv_acpi_ddc_method_enumerated(struct acpi_device *dev, void *data)
++{
++ acpi_handle *lcd_dev_handle = data;
++ acpi_status status;
++ nv_acpi_integer_t device_id = 0;
++ if (!dev)
++ return 0;
++ status = acpi_evaluate_integer(dev->handle, "_ADR", NULL, &device_id);
++ if (ACPI_FAILURE(status))
++ /* Couldnt query device_id for this device */
++ return 0;
++
++ device_id = (device_id & 0xffff);
++
++ if ((device_id == 0x0110) || (device_id == 0x0118) || (device_id == 0x0400)) /* Only for an LCD*/
++ {
++ *lcd_dev_handle = dev->handle;
++ nv_printf(NV_DBG_INFO, "NVRM: %s Found LCD: %x\n", __FUNCTION__, device_id);
++ return 1;
++ }
++ return 0;
++}
++#endif
++
+ /*
+ * This function executes a _DDC ACPI method.
+ */
+@@ -1207,8 +1289,10 @@
+ union acpi_object *ddc;
+ union acpi_object ddc_arg0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list input = { 1, &ddc_arg0 };
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct list_head *node, *next;
+ nv_acpi_integer_t device_id = 0;
++#endif
+ NvU32 i;
+ acpi_handle dev_handle = NULL;
+ acpi_handle lcd_dev_handle = NULL;
+@@ -1239,6 +1323,7 @@
+ return RM_ERR_NOT_SUPPORTED;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ list_for_each_safe(node, next, &device->children)
+ {
+ struct acpi_device *dev =
+@@ -1262,6 +1347,9 @@
+ }
+
+ }
++#else
++ acpi_dev_for_each_child(device, nv_acpi_ddc_method_enumerated, &lcd_dev_handle);
++#endif
+
+ if (lcd_dev_handle == NULL)
+ {
diff --git a/fix-build-issues.patch b/fix-build-issues.patch
index 514f86f..b49fe90 100644
--- a/fix-build-issues.patch
+++ b/fix-build-issues.patch
@@ -244,7 +244,7 @@ diff -Naur a/kernel/conftest.Kbuild b/kernel/conftest.Kbuild
+
+$(NV_CONFTEST_HEADERS): | $(BUILD_SANITY_CHECKS)
diff -Naur a/kernel/conftest.sh b/kernel/conftest.sh
---- a/kernel/conftest.sh 2022-08-28 09:42:13.768657744 +0200
+--- a/kernel/conftest.sh 2022-10-16 09:28:09.779225728 +0200
+++ b/kernel/conftest.sh 2022-08-28 09:42:35.542184258 +0200
@@ -113,6 +113,7 @@
FILES="$FILES drm/drm_vblank.h"
@@ -537,7 +537,7 @@ diff -Naur a/kernel/conftest.sh b/kernel/conftest.sh
#
# Determine whether driver feature flag DRIVER_PRIME is present.
diff -Naur a/kernel/dkms.conf b/kernel/dkms.conf
---- a/kernel/dkms.conf 2022-08-28 09:42:13.587661680 +0200
+--- a/kernel/dkms.conf 2022-10-16 09:28:09.688227805 +0200
+++ b/kernel/dkms.conf 2022-08-28 09:42:35.543184237 +0200
@@ -1,7 +1,13 @@
+if [ -x /usr/bin/nproc ]; then
@@ -555,7 +555,7 @@ diff -Naur a/kernel/dkms.conf b/kernel/dkms.conf
CLEAN="make clean"
AUTOINSTALL="yes"
diff -Naur a/kernel/Makefile b/kernel/Makefile
---- a/kernel/Makefile 2022-08-28 09:42:13.585661723 +0200
+--- a/kernel/Makefile 2022-10-16 09:28:09.686227851 +0200
+++ b/kernel/Makefile 2022-08-28 09:42:35.539184324 +0200
@@ -70,11 +70,11 @@
MODULE_GLUE_OBJS := $(patsubst %.c,%.o,nv-frontend.c)
@@ -589,8 +589,8 @@ diff -Naur a/kernel/Makefile b/kernel/Makefile
#
# Generate multiple targets at runtime depending on the items present in
diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
---- a/kernel/nv-acpi.c 2022-08-28 09:42:13.588661658 +0200
-+++ b/kernel/nv-acpi.c 2022-08-28 09:42:35.543184237 +0200
+--- a/kernel/nv-acpi.c 2022-10-16 09:28:09.690227759 +0200
++++ b/kernel/nv-acpi.c 2022-10-16 09:27:14.547486369 +0200
@@ -556,9 +556,11 @@
void NV_API_CALL nv_acpi_methods_init(NvU32 *handlesPresent)
@@ -646,7 +646,7 @@ diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
if (ACPI_FAILURE(status) || !device)
return RM_ERR_INVALID_ARGUMENT;
diff -Naur a/kernel/nv.c b/kernel/nv.c
---- a/kernel/nv.c 2022-08-28 09:42:13.607661245 +0200
+--- a/kernel/nv.c 2022-10-16 09:28:09.739226641 +0200
+++ b/kernel/nv.c 2022-08-28 09:42:35.548184128 +0200
@@ -752,7 +752,7 @@
NV_SPIN_LOCK_INIT(&km_lock);
@@ -670,7 +670,7 @@ diff -Naur a/kernel/nv.c b/kernel/nv.c
vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
#endif
diff -Naur a/kernel/nv-dma.c b/kernel/nv-dma.c
---- a/kernel/nv-dma.c 2022-08-28 09:42:13.589661636 +0200
+--- a/kernel/nv-dma.c 2022-10-16 09:28:09.691227737 +0200
+++ b/kernel/nv-dma.c 2022-08-28 09:42:35.544184215 +0200
@@ -136,10 +136,17 @@
return status;
@@ -705,7 +705,7 @@ diff -Naur a/kernel/nv-dma.c b/kernel/nv-dma.c
*priv = dma_map->user_pages;
diff -Naur a/kernel/nv-drm.c b/kernel/nv-drm.c
---- a/kernel/nv-drm.c 2022-08-28 09:42:13.589661636 +0200
+--- a/kernel/nv-drm.c 2022-10-16 09:28:09.691227737 +0200
+++ b/kernel/nv-drm.c 2022-08-28 09:42:35.544184215 +0200
@@ -23,6 +23,11 @@
#include <linux/file.h>
@@ -1176,8 +1176,8 @@ diff -Naur a/kernel/nv-drm.c b/kernel/nv-drm.c
#endif
diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
---- a/kernel/nv-frontend.c 2022-08-28 09:42:13.589661636 +0200
-+++ b/kernel/nv-frontend.c 2022-08-28 09:42:35.544184215 +0200
+--- a/kernel/nv-frontend.c 2022-10-16 09:28:09.692227714 +0200
++++ b/kernel/nv-frontend.c 2022-10-16 09:18:55.847854785 +0200
@@ -8,6 +8,7 @@
* _NVRM_COPYRIGHT_END_
*/
@@ -1186,6 +1186,15 @@ diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
#include "nv-misc.h"
#include "os-interface.h"
#include "nv-linux.h"
+@@ -15,7 +16,7 @@
+ #include "nv-frontend.h"
+
+ #if defined(MODULE_LICENSE)
+-MODULE_LICENSE("NVIDIA");
++MODULE_LICENSE("GPL");
+ #endif
+ #if defined(MODULE_INFO)
+ MODULE_INFO(supported, "external");
@@ -377,7 +378,7 @@
#if (NV_BUILD_MODULE_INSTANCES != 0)
#if defined(CONFIG_PROC_FS)
@@ -1196,7 +1205,7 @@ diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
#else
nvidia_exit_module();
diff -Naur a/kernel/nv.h b/kernel/nv.h
---- a/kernel/nv.h 2022-08-28 09:42:13.608661223 +0200
+--- a/kernel/nv.h 2022-10-16 09:28:09.740226618 +0200
+++ b/kernel/nv.h 2022-08-28 09:42:35.549184106 +0200
@@ -13,7 +13,7 @@
#define _NV_H_
@@ -1208,7 +1217,7 @@ diff -Naur a/kernel/nv.h b/kernel/nv.h
#if !defined(NV_MIN)
#define NV_MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b))
diff -Naur a/kernel/nvidia-drm-conftest.h b/kernel/nvidia-drm-conftest.h
---- a/kernel/nvidia-drm-conftest.h 2022-08-28 09:42:13.770657700 +0200
+--- a/kernel/nvidia-drm-conftest.h 2022-10-16 09:28:09.782225660 +0200
+++ b/kernel/nvidia-drm-conftest.h 2022-08-28 09:42:35.549184106 +0200
@@ -54,7 +54,7 @@
@@ -1220,7 +1229,7 @@ diff -Naur a/kernel/nvidia-drm-conftest.h b/kernel/nvidia-drm-conftest.h
#define NV_DRM_FENCE_AVAILABLE
#else
diff -Naur a/kernel/nvidia-drm-gem.c b/kernel/nvidia-drm-gem.c
---- a/kernel/nvidia-drm-gem.c 2022-08-28 09:42:13.770657700 +0200
+--- a/kernel/nvidia-drm-gem.c 2022-10-16 09:28:09.784225614 +0200
+++ b/kernel/nvidia-drm-gem.c 2022-08-28 09:42:35.549184106 +0200
@@ -26,10 +26,10 @@
@@ -1248,8 +1257,20 @@ diff -Naur a/kernel/nvidia-drm-gem.c b/kernel/nvidia-drm-gem.c
#endif
};
+diff -Naur a/kernel/nvidia-drm-helper.c b/kernel/nvidia-drm-helper.c
+--- a/kernel/nvidia-drm-helper.c 2022-10-16 09:28:09.785225591 +0200
++++ b/kernel/nvidia-drm-helper.c 2022-10-16 09:23:22.593780123 +0200
+@@ -29,7 +29,7 @@
+
+ #include "nvidia-drm-helper.h"
+
+-#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE)
++#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) && FALSE
+
+ #if defined(NV_DRM_DRMP_H_PRESENT)
+ #include <drm/drmP.h>
diff -Naur a/kernel/nvidia-drm-linux.c b/kernel/nvidia-drm-linux.c
---- a/kernel/nvidia-drm-linux.c 2022-08-28 09:42:13.772657657 +0200
+--- a/kernel/nvidia-drm-linux.c 2022-10-16 09:28:09.786225568 +0200
+++ b/kernel/nvidia-drm-linux.c 2022-08-28 09:42:35.549184106 +0200
@@ -25,7 +25,6 @@
#include <linux/err.h>
@@ -1286,7 +1307,7 @@ diff -Naur a/kernel/nvidia-drm-linux.c b/kernel/nvidia-drm-linux.c
- MODULE_VERSION(NV_VERSION_STRING);
-#endif
diff -Naur a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
---- a/kernel/nvidia-modules-common.mk 2022-08-28 09:42:13.608661223 +0200
+--- a/kernel/nvidia-modules-common.mk 2022-10-16 09:28:09.740226618 +0200
+++ b/kernel/nvidia-modules-common.mk 2022-08-28 09:42:35.550184084 +0200
@@ -149,10 +149,10 @@
CONFTEST_HEADERS := $(obj)/conftest.h $(CONFTEST_COMPILE_TEST_HEADERS) \
@@ -1320,7 +1341,7 @@ diff -Naur a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
@$(RM) -rf Module*.symvers .tmp_versions modules.order
diff -Naur a/kernel/nv-linux.h b/kernel/nv-linux.h
---- a/kernel/nv-linux.h 2022-08-28 09:42:13.591661593 +0200
+--- a/kernel/nv-linux.h 2022-10-16 09:28:09.693227691 +0200
+++ b/kernel/nv-linux.h 2022-08-28 09:42:35.545184193 +0200
@@ -119,12 +119,15 @@
#include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
@@ -1648,7 +1669,7 @@ diff -Naur a/kernel/nv-linux.h b/kernel/nv-linux.h
-
#endif /* _NV_LINUX_H_ */
diff -Naur a/kernel/nv-procfs.c b/kernel/nv-procfs.c
---- a/kernel/nv-procfs.c 2022-08-28 09:42:13.591661593 +0200
+--- a/kernel/nv-procfs.c 2022-10-16 09:28:09.694227668 +0200
+++ b/kernel/nv-procfs.c 2022-08-28 09:42:35.546184171 +0200
@@ -409,6 +409,15 @@
return ((status < 0) ? status : (int)count);
@@ -1699,7 +1720,7 @@ diff -Naur a/kernel/nv-procfs.c b/kernel/nv-procfs.c
static int
nv_procfs_read_text_file(
diff -Naur a/kernel/nv-vm.c b/kernel/nv-vm.c
---- a/kernel/nv-vm.c 2022-08-28 09:42:13.592661571 +0200
+--- a/kernel/nv-vm.c 2022-10-16 09:28:09.694227668 +0200
+++ b/kernel/nv-vm.c 2022-08-28 09:42:35.546184171 +0200
@@ -12,6 +12,9 @@
#include "os-interface.h"
@@ -1733,7 +1754,7 @@ diff -Naur a/kernel/nv-vm.c b/kernel/nv-vm.c
#define NV_MAP_SG_MAX_RETRIES 16
diff -Naur a/kernel/os-interface.c b/kernel/os-interface.c
---- a/kernel/os-interface.c 2022-08-28 09:42:13.609661201 +0200
+--- a/kernel/os-interface.c 2022-10-16 09:28:09.741226595 +0200
+++ b/kernel/os-interface.c 2022-08-28 09:42:35.550184084 +0200
@@ -439,7 +439,7 @@
NvU32 *useconds
@@ -1775,7 +1796,7 @@ diff -Naur a/kernel/os-interface.c b/kernel/os-interface.c
{
schedule_timeout(jiffies);
diff -Naur a/kernel/os-interface.h b/kernel/os-interface.h
---- a/kernel/os-interface.h 2022-08-28 09:42:13.609661201 +0200
+--- a/kernel/os-interface.h 2022-10-16 09:28:09.741226595 +0200
+++ b/kernel/os-interface.h 2022-08-28 09:42:35.551184063 +0200
@@ -24,7 +24,7 @@
* *
@@ -1787,7 +1808,7 @@ diff -Naur a/kernel/os-interface.h b/kernel/os-interface.h
/*
* Define away Microsoft compiler extensions when possible
diff -Naur a/kernel/os-mlock.c b/kernel/os-mlock.c
---- a/kernel/os-mlock.c 2022-08-28 09:42:13.610661179 +0200
+--- a/kernel/os-mlock.c 2022-10-16 09:28:09.742226573 +0200
+++ b/kernel/os-mlock.c 2022-08-28 09:42:35.551184063 +0200
@@ -14,6 +14,8 @@
#include "os-interface.h"
@@ -1812,7 +1833,7 @@ diff -Naur a/kernel/os-mlock.c b/kernel/os-mlock.c
if (ret < 0)
diff -Naur a/kernel/uvm/conftest.sh b/kernel/uvm/conftest.sh
---- a/kernel/uvm/conftest.sh 2022-08-28 09:42:13.624660875 +0200
+--- a/kernel/uvm/conftest.sh 2022-10-16 09:28:09.743226550 +0200
+++ b/kernel/uvm/conftest.sh 2022-08-28 09:42:35.552184041 +0200
@@ -176,6 +176,7 @@
FILES="$FILES linux/ktime.h"
@@ -1833,7 +1854,7 @@ diff -Naur a/kernel/uvm/conftest.sh b/kernel/uvm/conftest.sh
#include <asm/set_memory.h>
#else
diff -Naur a/kernel/uvm/Makefile b/kernel/uvm/Makefile
---- a/kernel/uvm/Makefile 2022-08-28 09:42:13.610661179 +0200
+--- a/kernel/uvm/Makefile 2022-10-16 09:28:09.742226573 +0200
+++ b/kernel/uvm/Makefile 2022-08-28 09:42:35.551184063 +0200
@@ -207,6 +207,7 @@
@@ -1844,7 +1865,7 @@ diff -Naur a/kernel/uvm/Makefile b/kernel/uvm/Makefile
module $(MODULE_NAME).ko: $(UVM_MODULE_SYMVERS) debug_diagnostics_printing
diff -Naur a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
---- a/kernel/uvm/nvidia_uvm_linux.h 2022-08-28 09:42:13.625660853 +0200
+--- a/kernel/uvm/nvidia_uvm_linux.h 2022-10-16 09:28:09.744226527 +0200
+++ b/kernel/uvm/nvidia_uvm_linux.h 2022-08-28 09:42:35.553184019 +0200
@@ -141,7 +141,9 @@
#if !defined(NV_VMWARE)
@@ -1867,7 +1888,7 @@ diff -Naur a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
#include <linux/ioctl32.h> /* register_ioctl32_conversion() */
#endif
diff -Naur a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
---- a/kernel/uvm/nvidia_uvm_lite_api.c 2022-08-28 09:42:13.628660788 +0200
+--- a/kernel/uvm/nvidia_uvm_lite_api.c 2022-10-16 09:28:09.745226504 +0200
+++ b/kernel/uvm/nvidia_uvm_lite_api.c 2022-08-28 09:42:35.554183997 +0200
@@ -30,6 +30,12 @@
#include "uvm_gpu_ops_tests.h"
@@ -2021,7 +2042,7 @@ diff -Naur a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
//
// We can not reverse uvm_map_page, so inserted pages will stay
diff -Naur a/kernel/uvm/nvidia_uvm_lite.c b/kernel/uvm/nvidia_uvm_lite.c
---- a/kernel/uvm/nvidia_uvm_lite.c 2022-08-28 09:42:13.627660810 +0200
+--- a/kernel/uvm/nvidia_uvm_lite.c 2022-10-16 09:28:09.745226504 +0200
+++ b/kernel/uvm/nvidia_uvm_lite.c 2022-08-28 09:42:35.554183997 +0200
@@ -131,8 +131,8 @@
RM_STATUS _preexisting_error_on_channel(UvmGpuMigrationTracking *pMigTracker,
diff --git a/nvidia-340xx-kmod.spec b/nvidia-340xx-kmod.spec
index ce47e88..3c1b8f0 100644
--- a/nvidia-340xx-kmod.spec
+++ b/nvidia-340xx-kmod.spec
@@ -12,7 +12,7 @@ Name: nvidia-340xx-kmod
Epoch: 1
Version: 340.108
# Taken over by kmodtool
-Release: 21%{?dist}
+Release: 22%{?dist}
Summary: NVIDIA display driver kernel module
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -21,6 +21,7 @@ URL: http://www.nvidia.com/
Source11: nvidia-kmodtool-excludekernel-filterfile
Patch0: import-files-from-390.151.patch
Patch1: fix-build-issues.patch
+Patch2: 0011-kernel-6.0.patch
BuildRequires: elfutils-libelf-devel
BuildRequires: gcc
@@ -49,6 +50,7 @@ tar --use-compress-program xz -xf %{_datadir}/%{name}-%{version}/%{name}-%{versi
# patch loop
%patch0 -p1
%patch1 -p1
+%patch2 -p1
for kernel_version in %{?kernel_versions} ; do
cp -a kernel _kmod_build_${kernel_version%%___*}
@@ -77,6 +79,9 @@ done
%{?akmod_install}
%changelog
+* Sun Oct 16 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com> - 1:340.108-22
+- Fix build on kernel-6.0.2
+
* Sun Aug 28 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com> - 1:340.108-21
- Fix build on kernel-5.19.0
2 years, 1 month
[nvidia-340xx-kmod/f35] Fix build on kernel-6.0.2
by wojnilowicz
commit 35202900901a6efef8ea7d8f7914866388ab331f
Author: Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com>
Date: Sun Oct 16 10:44:56 2022 +0200
Fix build on kernel-6.0.2
0011-kernel-6.0.patch | 151 +++++++++++++++++++++++++++++++++++++++++++++++++
fix-build-issues.patch | 73 +++++++++++++++---------
nvidia-340xx-kmod.spec | 7 ++-
3 files changed, 204 insertions(+), 27 deletions(-)
---
diff --git a/0011-kernel-6.0.patch b/0011-kernel-6.0.patch
new file mode 100644
index 0000000..2b9df3b
--- /dev/null
+++ b/0011-kernel-6.0.patch
@@ -0,0 +1,151 @@
+diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
+--- a/kernel/nv-acpi.c 2022-10-14 02:26:04.379601051 +0000
++++ b/kernel/nv-acpi.c 2022-10-14 02:28:07.309332369 +0000
+@@ -178,6 +178,53 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
++static struct nv_acpi_add_enumerated_data {
++ nv_acpi_t *object;
++ int *counter;
++};
++static int nv_acpi_add_enumerated(struct acpi_device *dev, void *data)
++{
++ struct nv_acpi_add_enumerated_data *rcvd_data = data;
++ nv_acpi_t *pNvAcpiObject = rcvd_data->object;
++ int *device_counter = rcvd_data->counter;
++ acpi_status status = -1;
++ nv_acpi_integer_t device_id = 0;
++ if (!dev)
++ return 0;
++ if (*device_counter == NV_MAXNUM_DISPLAY_DEVICES) {
++ nv_printf(NV_DBG_ERRORS,
++ "NVRM: nv_acpi_add: Total number of devices cannot exceed %d\n",
++ NV_MAXNUM_DISPLAY_DEVICES);
++ return 1;
++ }
++ status =
++ acpi_evaluate_integer(dev->handle, "_ADR", NULL, &device_id);
++ if (ACPI_FAILURE(status))
++ /* Couldnt query device_id for this device */
++ return 0;
++
++ device_id = (device_id & 0xffff);
++
++ if ((device_id != 0x100) && /* Not a known CRT device-id */
++ (device_id != 0x200) && /* Not a known TV device-id */
++ (device_id != 0x0110) && (device_id != 0x0118) && (device_id != 0x0400) && /* Not an LCD*/
++ (device_id != 0x0111) && (device_id != 0x0120) && (device_id != 0x0300)) /* Not a known DVI device-id */
++ {
++ /* This isnt a known device Id.
++ Do default switching on this system. */
++ pNvAcpiObject->default_display_mask = 1;
++ return 1;
++ }
++
++ pNvAcpiObject->pNvVideo[*device_counter].dev_id = device_id;
++ pNvAcpiObject->pNvVideo[*device_counter].dev_handle = dev->handle;
++
++ (*device_counter)++;
++ return 0;
++}
++#endif
++
+ static int nv_acpi_add(struct acpi_device *device)
+ {
+ /*
+@@ -190,8 +237,10 @@
+ union acpi_object control_argument_0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list control_argument_list = { 0, NULL };
+ nv_stack_t *sp = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct list_head *node, *next;
+ nv_acpi_integer_t device_id = 0;
++#endif
+ int device_counter = 0;
+
+ NV_KMEM_CACHE_ALLOC_STACK(sp);
+@@ -220,6 +269,7 @@
+
+ // grab handles to all the important nodes representing devices
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ list_for_each_safe(node, next, &device->children)
+ {
+ struct acpi_device *dev =
+@@ -261,6 +311,13 @@
+ device_counter++;
+
+ }
++#else
++ struct nv_acpi_add_enumerated_data data = {
++ .object = pNvAcpiObject,
++ .counter = &device_counter,
++ };
++ acpi_dev_for_each_child(device, nv_acpi_add_enumerated, &data);
++#endif
+
+ // arg 0, bits 1:0, 0 = enable events
+ control_argument_0.integer.type = ACPI_TYPE_INTEGER;
+@@ -1192,6 +1249,31 @@
+ return status;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
++static int nv_acpi_ddc_method_enumerated(struct acpi_device *dev, void *data)
++{
++ acpi_handle *lcd_dev_handle = data;
++ acpi_status status;
++ nv_acpi_integer_t device_id = 0;
++ if (!dev)
++ return 0;
++ status = acpi_evaluate_integer(dev->handle, "_ADR", NULL, &device_id);
++ if (ACPI_FAILURE(status))
++ /* Couldnt query device_id for this device */
++ return 0;
++
++ device_id = (device_id & 0xffff);
++
++ if ((device_id == 0x0110) || (device_id == 0x0118) || (device_id == 0x0400)) /* Only for an LCD*/
++ {
++ *lcd_dev_handle = dev->handle;
++ nv_printf(NV_DBG_INFO, "NVRM: %s Found LCD: %x\n", __FUNCTION__, device_id);
++ return 1;
++ }
++ return 0;
++}
++#endif
++
+ /*
+ * This function executes a _DDC ACPI method.
+ */
+@@ -1207,8 +1289,10 @@
+ union acpi_object *ddc;
+ union acpi_object ddc_arg0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list input = { 1, &ddc_arg0 };
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct list_head *node, *next;
+ nv_acpi_integer_t device_id = 0;
++#endif
+ NvU32 i;
+ acpi_handle dev_handle = NULL;
+ acpi_handle lcd_dev_handle = NULL;
+@@ -1239,6 +1323,7 @@
+ return RM_ERR_NOT_SUPPORTED;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ list_for_each_safe(node, next, &device->children)
+ {
+ struct acpi_device *dev =
+@@ -1262,6 +1347,9 @@
+ }
+
+ }
++#else
++ acpi_dev_for_each_child(device, nv_acpi_ddc_method_enumerated, &lcd_dev_handle);
++#endif
+
+ if (lcd_dev_handle == NULL)
+ {
diff --git a/fix-build-issues.patch b/fix-build-issues.patch
index 514f86f..b49fe90 100644
--- a/fix-build-issues.patch
+++ b/fix-build-issues.patch
@@ -244,7 +244,7 @@ diff -Naur a/kernel/conftest.Kbuild b/kernel/conftest.Kbuild
+
+$(NV_CONFTEST_HEADERS): | $(BUILD_SANITY_CHECKS)
diff -Naur a/kernel/conftest.sh b/kernel/conftest.sh
---- a/kernel/conftest.sh 2022-08-28 09:42:13.768657744 +0200
+--- a/kernel/conftest.sh 2022-10-16 09:28:09.779225728 +0200
+++ b/kernel/conftest.sh 2022-08-28 09:42:35.542184258 +0200
@@ -113,6 +113,7 @@
FILES="$FILES drm/drm_vblank.h"
@@ -537,7 +537,7 @@ diff -Naur a/kernel/conftest.sh b/kernel/conftest.sh
#
# Determine whether driver feature flag DRIVER_PRIME is present.
diff -Naur a/kernel/dkms.conf b/kernel/dkms.conf
---- a/kernel/dkms.conf 2022-08-28 09:42:13.587661680 +0200
+--- a/kernel/dkms.conf 2022-10-16 09:28:09.688227805 +0200
+++ b/kernel/dkms.conf 2022-08-28 09:42:35.543184237 +0200
@@ -1,7 +1,13 @@
+if [ -x /usr/bin/nproc ]; then
@@ -555,7 +555,7 @@ diff -Naur a/kernel/dkms.conf b/kernel/dkms.conf
CLEAN="make clean"
AUTOINSTALL="yes"
diff -Naur a/kernel/Makefile b/kernel/Makefile
---- a/kernel/Makefile 2022-08-28 09:42:13.585661723 +0200
+--- a/kernel/Makefile 2022-10-16 09:28:09.686227851 +0200
+++ b/kernel/Makefile 2022-08-28 09:42:35.539184324 +0200
@@ -70,11 +70,11 @@
MODULE_GLUE_OBJS := $(patsubst %.c,%.o,nv-frontend.c)
@@ -589,8 +589,8 @@ diff -Naur a/kernel/Makefile b/kernel/Makefile
#
# Generate multiple targets at runtime depending on the items present in
diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
---- a/kernel/nv-acpi.c 2022-08-28 09:42:13.588661658 +0200
-+++ b/kernel/nv-acpi.c 2022-08-28 09:42:35.543184237 +0200
+--- a/kernel/nv-acpi.c 2022-10-16 09:28:09.690227759 +0200
++++ b/kernel/nv-acpi.c 2022-10-16 09:27:14.547486369 +0200
@@ -556,9 +556,11 @@
void NV_API_CALL nv_acpi_methods_init(NvU32 *handlesPresent)
@@ -646,7 +646,7 @@ diff -Naur a/kernel/nv-acpi.c b/kernel/nv-acpi.c
if (ACPI_FAILURE(status) || !device)
return RM_ERR_INVALID_ARGUMENT;
diff -Naur a/kernel/nv.c b/kernel/nv.c
---- a/kernel/nv.c 2022-08-28 09:42:13.607661245 +0200
+--- a/kernel/nv.c 2022-10-16 09:28:09.739226641 +0200
+++ b/kernel/nv.c 2022-08-28 09:42:35.548184128 +0200
@@ -752,7 +752,7 @@
NV_SPIN_LOCK_INIT(&km_lock);
@@ -670,7 +670,7 @@ diff -Naur a/kernel/nv.c b/kernel/nv.c
vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
#endif
diff -Naur a/kernel/nv-dma.c b/kernel/nv-dma.c
---- a/kernel/nv-dma.c 2022-08-28 09:42:13.589661636 +0200
+--- a/kernel/nv-dma.c 2022-10-16 09:28:09.691227737 +0200
+++ b/kernel/nv-dma.c 2022-08-28 09:42:35.544184215 +0200
@@ -136,10 +136,17 @@
return status;
@@ -705,7 +705,7 @@ diff -Naur a/kernel/nv-dma.c b/kernel/nv-dma.c
*priv = dma_map->user_pages;
diff -Naur a/kernel/nv-drm.c b/kernel/nv-drm.c
---- a/kernel/nv-drm.c 2022-08-28 09:42:13.589661636 +0200
+--- a/kernel/nv-drm.c 2022-10-16 09:28:09.691227737 +0200
+++ b/kernel/nv-drm.c 2022-08-28 09:42:35.544184215 +0200
@@ -23,6 +23,11 @@
#include <linux/file.h>
@@ -1176,8 +1176,8 @@ diff -Naur a/kernel/nv-drm.c b/kernel/nv-drm.c
#endif
diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
---- a/kernel/nv-frontend.c 2022-08-28 09:42:13.589661636 +0200
-+++ b/kernel/nv-frontend.c 2022-08-28 09:42:35.544184215 +0200
+--- a/kernel/nv-frontend.c 2022-10-16 09:28:09.692227714 +0200
++++ b/kernel/nv-frontend.c 2022-10-16 09:18:55.847854785 +0200
@@ -8,6 +8,7 @@
* _NVRM_COPYRIGHT_END_
*/
@@ -1186,6 +1186,15 @@ diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
#include "nv-misc.h"
#include "os-interface.h"
#include "nv-linux.h"
+@@ -15,7 +16,7 @@
+ #include "nv-frontend.h"
+
+ #if defined(MODULE_LICENSE)
+-MODULE_LICENSE("NVIDIA");
++MODULE_LICENSE("GPL");
+ #endif
+ #if defined(MODULE_INFO)
+ MODULE_INFO(supported, "external");
@@ -377,7 +378,7 @@
#if (NV_BUILD_MODULE_INSTANCES != 0)
#if defined(CONFIG_PROC_FS)
@@ -1196,7 +1205,7 @@ diff -Naur a/kernel/nv-frontend.c b/kernel/nv-frontend.c
#else
nvidia_exit_module();
diff -Naur a/kernel/nv.h b/kernel/nv.h
---- a/kernel/nv.h 2022-08-28 09:42:13.608661223 +0200
+--- a/kernel/nv.h 2022-10-16 09:28:09.740226618 +0200
+++ b/kernel/nv.h 2022-08-28 09:42:35.549184106 +0200
@@ -13,7 +13,7 @@
#define _NV_H_
@@ -1208,7 +1217,7 @@ diff -Naur a/kernel/nv.h b/kernel/nv.h
#if !defined(NV_MIN)
#define NV_MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b))
diff -Naur a/kernel/nvidia-drm-conftest.h b/kernel/nvidia-drm-conftest.h
---- a/kernel/nvidia-drm-conftest.h 2022-08-28 09:42:13.770657700 +0200
+--- a/kernel/nvidia-drm-conftest.h 2022-10-16 09:28:09.782225660 +0200
+++ b/kernel/nvidia-drm-conftest.h 2022-08-28 09:42:35.549184106 +0200
@@ -54,7 +54,7 @@
@@ -1220,7 +1229,7 @@ diff -Naur a/kernel/nvidia-drm-conftest.h b/kernel/nvidia-drm-conftest.h
#define NV_DRM_FENCE_AVAILABLE
#else
diff -Naur a/kernel/nvidia-drm-gem.c b/kernel/nvidia-drm-gem.c
---- a/kernel/nvidia-drm-gem.c 2022-08-28 09:42:13.770657700 +0200
+--- a/kernel/nvidia-drm-gem.c 2022-10-16 09:28:09.784225614 +0200
+++ b/kernel/nvidia-drm-gem.c 2022-08-28 09:42:35.549184106 +0200
@@ -26,10 +26,10 @@
@@ -1248,8 +1257,20 @@ diff -Naur a/kernel/nvidia-drm-gem.c b/kernel/nvidia-drm-gem.c
#endif
};
+diff -Naur a/kernel/nvidia-drm-helper.c b/kernel/nvidia-drm-helper.c
+--- a/kernel/nvidia-drm-helper.c 2022-10-16 09:28:09.785225591 +0200
++++ b/kernel/nvidia-drm-helper.c 2022-10-16 09:23:22.593780123 +0200
+@@ -29,7 +29,7 @@
+
+ #include "nvidia-drm-helper.h"
+
+-#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE)
++#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) && FALSE
+
+ #if defined(NV_DRM_DRMP_H_PRESENT)
+ #include <drm/drmP.h>
diff -Naur a/kernel/nvidia-drm-linux.c b/kernel/nvidia-drm-linux.c
---- a/kernel/nvidia-drm-linux.c 2022-08-28 09:42:13.772657657 +0200
+--- a/kernel/nvidia-drm-linux.c 2022-10-16 09:28:09.786225568 +0200
+++ b/kernel/nvidia-drm-linux.c 2022-08-28 09:42:35.549184106 +0200
@@ -25,7 +25,6 @@
#include <linux/err.h>
@@ -1286,7 +1307,7 @@ diff -Naur a/kernel/nvidia-drm-linux.c b/kernel/nvidia-drm-linux.c
- MODULE_VERSION(NV_VERSION_STRING);
-#endif
diff -Naur a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
---- a/kernel/nvidia-modules-common.mk 2022-08-28 09:42:13.608661223 +0200
+--- a/kernel/nvidia-modules-common.mk 2022-10-16 09:28:09.740226618 +0200
+++ b/kernel/nvidia-modules-common.mk 2022-08-28 09:42:35.550184084 +0200
@@ -149,10 +149,10 @@
CONFTEST_HEADERS := $(obj)/conftest.h $(CONFTEST_COMPILE_TEST_HEADERS) \
@@ -1320,7 +1341,7 @@ diff -Naur a/kernel/nvidia-modules-common.mk b/kernel/nvidia-modules-common.mk
@$(RM) -rf Module*.symvers .tmp_versions modules.order
diff -Naur a/kernel/nv-linux.h b/kernel/nv-linux.h
---- a/kernel/nv-linux.h 2022-08-28 09:42:13.591661593 +0200
+--- a/kernel/nv-linux.h 2022-10-16 09:28:09.693227691 +0200
+++ b/kernel/nv-linux.h 2022-08-28 09:42:35.545184193 +0200
@@ -119,12 +119,15 @@
#include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
@@ -1648,7 +1669,7 @@ diff -Naur a/kernel/nv-linux.h b/kernel/nv-linux.h
-
#endif /* _NV_LINUX_H_ */
diff -Naur a/kernel/nv-procfs.c b/kernel/nv-procfs.c
---- a/kernel/nv-procfs.c 2022-08-28 09:42:13.591661593 +0200
+--- a/kernel/nv-procfs.c 2022-10-16 09:28:09.694227668 +0200
+++ b/kernel/nv-procfs.c 2022-08-28 09:42:35.546184171 +0200
@@ -409,6 +409,15 @@
return ((status < 0) ? status : (int)count);
@@ -1699,7 +1720,7 @@ diff -Naur a/kernel/nv-procfs.c b/kernel/nv-procfs.c
static int
nv_procfs_read_text_file(
diff -Naur a/kernel/nv-vm.c b/kernel/nv-vm.c
---- a/kernel/nv-vm.c 2022-08-28 09:42:13.592661571 +0200
+--- a/kernel/nv-vm.c 2022-10-16 09:28:09.694227668 +0200
+++ b/kernel/nv-vm.c 2022-08-28 09:42:35.546184171 +0200
@@ -12,6 +12,9 @@
#include "os-interface.h"
@@ -1733,7 +1754,7 @@ diff -Naur a/kernel/nv-vm.c b/kernel/nv-vm.c
#define NV_MAP_SG_MAX_RETRIES 16
diff -Naur a/kernel/os-interface.c b/kernel/os-interface.c
---- a/kernel/os-interface.c 2022-08-28 09:42:13.609661201 +0200
+--- a/kernel/os-interface.c 2022-10-16 09:28:09.741226595 +0200
+++ b/kernel/os-interface.c 2022-08-28 09:42:35.550184084 +0200
@@ -439,7 +439,7 @@
NvU32 *useconds
@@ -1775,7 +1796,7 @@ diff -Naur a/kernel/os-interface.c b/kernel/os-interface.c
{
schedule_timeout(jiffies);
diff -Naur a/kernel/os-interface.h b/kernel/os-interface.h
---- a/kernel/os-interface.h 2022-08-28 09:42:13.609661201 +0200
+--- a/kernel/os-interface.h 2022-10-16 09:28:09.741226595 +0200
+++ b/kernel/os-interface.h 2022-08-28 09:42:35.551184063 +0200
@@ -24,7 +24,7 @@
* *
@@ -1787,7 +1808,7 @@ diff -Naur a/kernel/os-interface.h b/kernel/os-interface.h
/*
* Define away Microsoft compiler extensions when possible
diff -Naur a/kernel/os-mlock.c b/kernel/os-mlock.c
---- a/kernel/os-mlock.c 2022-08-28 09:42:13.610661179 +0200
+--- a/kernel/os-mlock.c 2022-10-16 09:28:09.742226573 +0200
+++ b/kernel/os-mlock.c 2022-08-28 09:42:35.551184063 +0200
@@ -14,6 +14,8 @@
#include "os-interface.h"
@@ -1812,7 +1833,7 @@ diff -Naur a/kernel/os-mlock.c b/kernel/os-mlock.c
if (ret < 0)
diff -Naur a/kernel/uvm/conftest.sh b/kernel/uvm/conftest.sh
---- a/kernel/uvm/conftest.sh 2022-08-28 09:42:13.624660875 +0200
+--- a/kernel/uvm/conftest.sh 2022-10-16 09:28:09.743226550 +0200
+++ b/kernel/uvm/conftest.sh 2022-08-28 09:42:35.552184041 +0200
@@ -176,6 +176,7 @@
FILES="$FILES linux/ktime.h"
@@ -1833,7 +1854,7 @@ diff -Naur a/kernel/uvm/conftest.sh b/kernel/uvm/conftest.sh
#include <asm/set_memory.h>
#else
diff -Naur a/kernel/uvm/Makefile b/kernel/uvm/Makefile
---- a/kernel/uvm/Makefile 2022-08-28 09:42:13.610661179 +0200
+--- a/kernel/uvm/Makefile 2022-10-16 09:28:09.742226573 +0200
+++ b/kernel/uvm/Makefile 2022-08-28 09:42:35.551184063 +0200
@@ -207,6 +207,7 @@
@@ -1844,7 +1865,7 @@ diff -Naur a/kernel/uvm/Makefile b/kernel/uvm/Makefile
module $(MODULE_NAME).ko: $(UVM_MODULE_SYMVERS) debug_diagnostics_printing
diff -Naur a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
---- a/kernel/uvm/nvidia_uvm_linux.h 2022-08-28 09:42:13.625660853 +0200
+--- a/kernel/uvm/nvidia_uvm_linux.h 2022-10-16 09:28:09.744226527 +0200
+++ b/kernel/uvm/nvidia_uvm_linux.h 2022-08-28 09:42:35.553184019 +0200
@@ -141,7 +141,9 @@
#if !defined(NV_VMWARE)
@@ -1867,7 +1888,7 @@ diff -Naur a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
#include <linux/ioctl32.h> /* register_ioctl32_conversion() */
#endif
diff -Naur a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
---- a/kernel/uvm/nvidia_uvm_lite_api.c 2022-08-28 09:42:13.628660788 +0200
+--- a/kernel/uvm/nvidia_uvm_lite_api.c 2022-10-16 09:28:09.745226504 +0200
+++ b/kernel/uvm/nvidia_uvm_lite_api.c 2022-08-28 09:42:35.554183997 +0200
@@ -30,6 +30,12 @@
#include "uvm_gpu_ops_tests.h"
@@ -2021,7 +2042,7 @@ diff -Naur a/kernel/uvm/nvidia_uvm_lite_api.c b/kernel/uvm/nvidia_uvm_lite_api.c
//
// We can not reverse uvm_map_page, so inserted pages will stay
diff -Naur a/kernel/uvm/nvidia_uvm_lite.c b/kernel/uvm/nvidia_uvm_lite.c
---- a/kernel/uvm/nvidia_uvm_lite.c 2022-08-28 09:42:13.627660810 +0200
+--- a/kernel/uvm/nvidia_uvm_lite.c 2022-10-16 09:28:09.745226504 +0200
+++ b/kernel/uvm/nvidia_uvm_lite.c 2022-08-28 09:42:35.554183997 +0200
@@ -131,8 +131,8 @@
RM_STATUS _preexisting_error_on_channel(UvmGpuMigrationTracking *pMigTracker,
diff --git a/nvidia-340xx-kmod.spec b/nvidia-340xx-kmod.spec
index 99f0a59..d298304 100644
--- a/nvidia-340xx-kmod.spec
+++ b/nvidia-340xx-kmod.spec
@@ -12,7 +12,7 @@ Name: nvidia-340xx-kmod
Epoch: 1
Version: 340.108
# Taken over by kmodtool
-Release: 19%{?dist}
+Release: 20%{?dist}
Summary: NVIDIA display driver kernel module
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -21,6 +21,7 @@ URL: http://www.nvidia.com/
Source11: nvidia-kmodtool-excludekernel-filterfile
Patch0: import-files-from-390.151.patch
Patch1: fix-build-issues.patch
+Patch2: 0011-kernel-6.0.patch
BuildRequires: elfutils-libelf-devel
BuildRequires: gcc
@@ -49,6 +50,7 @@ tar --use-compress-program xz -xf %{_datadir}/%{name}-%{version}/%{name}-%{versi
# patch loop
%patch0 -p1
%patch1 -p1
+%patch2 -p1
for kernel_version in %{?kernel_versions} ; do
cp -a kernel _kmod_build_${kernel_version%%___*}
@@ -77,6 +79,9 @@ done
%{?akmod_install}
%changelog
+* Sun Oct 16 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com> - 1:340.108-23
+- Fix build on kernel-6.0.2
+
* Sun Aug 28 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz(a)gmail.com> - 1:340.108-19
- Fix build on kernel-5.19.0
2 years, 1 month
[mpd] Update to 0.23.10
by Leigh Scott
commit 3ceac6d9f34b47722b0a81277ddc19371a343507
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Fri Oct 14 23:44:46 2022 +0100
Update to 0.23.10
mpd.spec | 5 ++++-
sources | 4 ++--
2 files changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/mpd.spec b/mpd.spec
index da84b54..80b81ed 100644
--- a/mpd.spec
+++ b/mpd.spec
@@ -16,7 +16,7 @@
Name: mpd
Epoch: 1
-Version: 0.23.9
+Version: 0.23.10
Release: 1%{?dist}
Summary: The Music Player Daemon
License: GPLv2+
@@ -250,6 +250,9 @@ fi
%changelog
+* Fri Oct 14 2022 Leigh Scott <leigh123linux(a)gmail.com> - 1:0.23.10-1
+- Update to 0.23.10
+
* Fri Aug 19 2022 Leigh Scott <leigh123linux(a)gmail.com> - 1:0.23.9-1
- Update to 0.23.9
diff --git a/sources b/sources
index 4f43ca8..c09a4da 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (mpd-0.23.9.tar.xz) = 67db093e35693f79267f955463ecaa284773b5e47a38f1548a0d16c9ba82aecc3434fd805e224b78782c5978c07e16d26f7632823e536f5304f557985f028d6e
-SHA512 (mpd-0.23.9.tar.xz.sig) = 2ef87e5d57d2b5a03d22c58668bd339dc80b555a94728fa0b507dbfac5debd814ec2dd910552c1f00f8c0b51cea1622dd9faa95f999bda9b9ce971478be35ab6
+SHA512 (mpd-0.23.10.tar.xz) = 15e51a1fab2e187529141ebb25f0bb6cc9c2ad5127c1a9f4c40d1a944ed5bc4e7e76b26eb71f659ddd8a5ce448089e6d3dcf0c302ced8a4d08951ef1b1f09c49
+SHA512 (mpd-0.23.10.tar.xz.sig) = 1f8eb282e0e672f165a75d9465384ab77dfbbc28545634d3edabb23f813dc52d8e43e897c8fc1d8ed897edd7058d2e9c93a2f6ea81683883c168ca9d07794cef
2 years, 1 month
[lpf-spotify-client] Update README
by Sérgio M. Basto
commit 9fe58237ee06f4b9e16b1e38a4df9b0ebc18bf4c
Author: HaydenHildreth <36833433+HaydenHildreth(a)users.noreply.github.com>
Date: Fri Oct 14 13:52:07 2022 -0400
Update README
README | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/README b/README
index fd3ee93..37aad35 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
lpf-spotify-client README
=========================
-This is a lpf package. It's only use is to install another package,
+This is an lpf package. Its only use is to install another package,
called the target package. For lpf-spotify-client, the target package is
spotify-client.
2 years, 1 month