70 lines
2.0 KiB
Diff
70 lines
2.0 KiB
Diff
diff --git a/ndiswrapper/driver/ntoskernel.c b/ndiswrapper/driver/ntoskernel.c
|
|
index 4fe0dc1..4dd7a89 100644
|
|
--- a/ndiswrapper/driver/ntoskernel.c
|
|
+++ b/ndiswrapper/driver/ntoskernel.c
|
|
@@ -2524,7 +2524,11 @@ int ntoskernel_init(void)
|
|
info->task = NULL;
|
|
info->count = 0;
|
|
#ifdef CONFIG_SMP
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,3,0)
|
|
cpumask_setall(&info->cpus_allowed);
|
|
+#else
|
|
+ cpumask_setall(&info->cpus_mask);
|
|
+#endif
|
|
#endif
|
|
}
|
|
} while (0);
|
|
diff --git a/ndiswrapper/driver/ntoskernel.h b/ndiswrapper/driver/ntoskernel.h
|
|
index 3c4c6ff..8a71ae3 100644
|
|
--- a/ndiswrapper/driver/ntoskernel.h
|
|
+++ b/ndiswrapper/driver/ntoskernel.h
|
|
@@ -107,7 +107,11 @@ static cpumask_t cpumasks[NR_CPUS];
|
|
#endif /* CONFIG_SMP */
|
|
|
|
#ifndef tsk_cpus_allowed
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,3,0)
|
|
#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
|
|
+#else
|
|
+#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_mask)
|
|
+#endif
|
|
#endif
|
|
|
|
#ifndef __packed
|
|
@@ -631,7 +635,12 @@ struct irql_info {
|
|
int count;
|
|
struct mutex lock;
|
|
#ifdef CONFIG_SMP
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,3,0)
|
|
cpumask_t cpus_allowed;
|
|
+#else
|
|
+ const cpumask_t *cpus_ptr;
|
|
+ cpumask_t cpus_mask;
|
|
+#endif
|
|
#endif
|
|
struct task_struct *task;
|
|
};
|
|
@@ -658,7 +667,11 @@ static inline KIRQL raise_irql(KIRQL newirql)
|
|
/* TODO: is this enough to pin down to current cpu? */
|
|
#ifdef CONFIG_SMP
|
|
assert(task_cpu(current) == smp_processor_id());
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,3,0)
|
|
cpumask_copy(&info->cpus_allowed, tsk_cpus_allowed(current));
|
|
+#else
|
|
+ cpumask_copy(&info->cpus_mask, tsk_cpus_allowed(current));
|
|
+#endif
|
|
set_cpus_allowed_ptr(current, cpumask_of(smp_processor_id()));
|
|
#endif
|
|
put_cpu_var(irql_info);
|
|
@@ -682,7 +695,11 @@ static inline void lower_irql(KIRQL oldirql)
|
|
if (--info->count == 0) {
|
|
info->task = NULL;
|
|
#ifdef CONFIG_SMP
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,3,0)
|
|
set_cpus_allowed_ptr(current, &info->cpus_allowed);
|
|
+#else
|
|
+ set_cpus_allowed_ptr(current, &info->cpus_mask);
|
|
+#endif
|
|
#endif
|
|
mutex_unlock(&info->lock);
|
|
}
|