Edit kernel-6.19.patch with Wargoth changes

This commit is contained in:
vnctdj 2026-03-07 23:44:57 +01:00
parent 234cfb7280
commit 6adcaee266
3 changed files with 55 additions and 7 deletions

View file

@ -1,6 +1,6 @@
pkgbase = nvidia-390xx-utils
pkgver = 390.157
pkgrel = 19
pkgrel = 20
url = https://www.nvidia.com/
arch = x86_64
license = custom
@ -47,7 +47,7 @@ pkgbase = nvidia-390xx-utils
b2sums = a957b5d3afb60d4879c5e25bf4b947a670048e23559864f5bced6b9ab4f79e3f9c62ad7fad52def372fa2dbe4df70410d205aa4386021e1f4db476b02836fcc5
b2sums = 68345d8fb2ea00bd7042fe6cf1c8e63c8f9be411a710eb4f40734ca109f278466d9de1f4b3a2676767b7c16d179ce9b382ebe49c181d081f157304d220d69b12
b2sums = efaed80af94533496ea77293ce48e383d836559316b8a2c9dd36a73c5ea3170f8ee61ec9a4151db13e4a28a167d3b9d7773baad9c082596e8f043de92b4c1932
b2sums = ec79dfcb1b31b5935993ed2ad91678e24ae46a9b23b5c11a611bdcefc1948a06ec8e4cce82b0eff7742ffef232a1c619ab8b3d0b72a57e8149f8dbde8cc69179
b2sums = 81bcb76be322badb3e06f34a9002de3df2c5ca260fa839b8a0bb0831ccd2278102612247fa086d7d4ac9003ca8c58800f6e51fb4c76b379c7fd707a5b6f96e5d
b2sums = a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05
pkgname = nvidia-390xx-utils

View file

@ -8,7 +8,7 @@
pkgbase=nvidia-390xx-utils
pkgname=('nvidia-390xx-utils' 'opencl-nvidia-390xx' 'nvidia-390xx-dkms')
pkgver=390.157
pkgrel=19
pkgrel=20
arch=('x86_64')
url="https://www.nvidia.com/"
license=('custom')
@ -56,7 +56,7 @@ b2sums=('8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1
'a957b5d3afb60d4879c5e25bf4b947a670048e23559864f5bced6b9ab4f79e3f9c62ad7fad52def372fa2dbe4df70410d205aa4386021e1f4db476b02836fcc5'
'68345d8fb2ea00bd7042fe6cf1c8e63c8f9be411a710eb4f40734ca109f278466d9de1f4b3a2676767b7c16d179ce9b382ebe49c181d081f157304d220d69b12'
'efaed80af94533496ea77293ce48e383d836559316b8a2c9dd36a73c5ea3170f8ee61ec9a4151db13e4a28a167d3b9d7773baad9c082596e8f043de92b4c1932'
'ec79dfcb1b31b5935993ed2ad91678e24ae46a9b23b5c11a611bdcefc1948a06ec8e4cce82b0eff7742ffef232a1c619ab8b3d0b72a57e8149f8dbde8cc69179'
'81bcb76be322badb3e06f34a9002de3df2c5ca260fa839b8a0bb0831ccd2278102612247fa086d7d4ac9003ca8c58800f6e51fb4c76b379c7fd707a5b6f96e5d'
'a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05')
create_links() {
@ -125,7 +125,7 @@ prepare() {
# From Joan Bruguera (
# https://github.com/joanbm/nvidia-470xx-linux-mainline/blob/master/patches/nvidia-470xx-fix-linux-6.19-part1.patch
# https://github.com/joanbm/nvidia-470xx-linux-mainline/blob/master/patches/nvidia-470xx-fix-linux-6.19-part2.patch
# ), edited by vnctdj
# ), edited by vnctdj + Wargoth
patch -Np1 -i ../kernel-6.19.patch
cd kernel

View file

@ -454,11 +454,41 @@ index a06c12c..c30f8cc 100644
#else
return NV_FALSE;
#endif
diff --git a/kernel/nvidia/nvlink_linux.c b/kernel/nvidia/nvlink_linux.c
index ba57b86..39816ae 100644
--- a/kernel/nvidia/nvlink_linux.c
+++ b/kernel/nvidia/nvlink_linux.c
@@ -30,6 +30,7 @@
#include "nv-linux.h"
#include "nv-procfs.h"
#include "nv-time.h"
+#include <linux/hardirq.h>
#define MAX_ERROR_STRING 512
@@ -570,7 +571,7 @@ void NVLINK_API_CALL nvlink_sleep(unsigned int ms)
nv_gettimeofday(&tm_aux);
- if (in_irq() && (ms > NV_MAX_ISR_DELAY_MS))
+ if (in_hardirq() && (ms > NV_MAX_ISR_DELAY_MS))
{
return;
}
diff --git a/kernel/nvidia/os-interface.c b/kernel/nvidia/os-interface.c
index 262171f..b08dd28 100644
index 262171f..dd65432 100644
--- a/kernel/nvidia/os-interface.c
+++ b/kernel/nvidia/os-interface.c
@@ -193,7 +193,7 @@ BOOL NV_API_CALL os_semaphore_may_sleep(void)
@@ -17,6 +17,8 @@
#include "nv-time.h"
#include "nv-gpu-numa.h"
+#include <linux/hardirq.h>
+
#define MAX_ERROR_STRING 512
static char nv_error_string[MAX_ERROR_STRING];
nv_spinlock_t nv_error_string_lock;
@@ -193,7 +195,7 @@ BOOL NV_API_CALL os_semaphore_may_sleep(void)
BOOL NV_API_CALL os_is_isr(void)
{
@ -467,3 +497,21 @@ index 262171f..b08dd28 100644
}
// return TRUE if the caller is the super-user
@@ -510,7 +512,7 @@ NV_STATUS NV_API_CALL os_delay_us(NvU32 MicroSeconds)
nv_gettimeofday(&tm1);
#endif
- if (in_irq() && (MicroSeconds > NV_MAX_ISR_DELAY_US))
+ if (in_hardirq() && (MicroSeconds > NV_MAX_ISR_DELAY_US))
return NV_ERR_GENERIC;
mdelay_safe_msec = MicroSeconds / 1000;
@@ -555,7 +557,7 @@ NV_STATUS NV_API_CALL os_delay(NvU32 MilliSeconds)
tm_start = tm_aux;
#endif
- if (in_irq() && (MilliSeconds > NV_MAX_ISR_DELAY_MS))
+ if (in_hardirq() && (MilliSeconds > NV_MAX_ISR_DELAY_MS))
return NV_ERR_GENERIC;
if (!NV_MAY_SLEEP())