|
|
#1 | |
|
Registered User
Join Date: Feb 2006
Location: Moscow, Russia
Posts: 55
|
![]() Patch 4-rd version. add mlauss fix. Code:
diff -ur a/kernel/conftest.sh b/kernel/conftest.sh
--- a/kernel/conftest.sh 2012-04-27 22:50:12.000000000 +0400
+++ b/kernel/conftest.sh 2012-05-09 20:59:52.136000128 +0400
@@ -101,7 +101,7 @@
if [ "$OUTPUT" != "$SOURCES" ]; then
MACH_CFLAGS="-I$HEADERS/asm-$ARCH/mach-default"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
MACH_CFLAGS="$MACH_CFLAGS -I$HEADERS/asm-x86/mach-default"
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCES/arch/x86/include/asm/mach-default"
elif [ "$ARCH" = "arm" ]; then
@@ -112,7 +112,7 @@
fi
else
MACH_CFLAGS="-I$HEADERS/asm/mach-default"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
MACH_CFLAGS="$MACH_CFLAGS -I$HEADERS/asm-x86/mach-default"
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCES/arch/x86/include/asm/mach-default"
elif [ "$ARCH" = "arm" ]; then
@@ -125,7 +125,7 @@
CFLAGS="$BASE_CFLAGS $MACH_CFLAGS $OUTPUT_CFLAGS -I$HEADERS $AUTOCONF_CFLAGS"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
CFLAGS="$CFLAGS -I$SOURCES/arch/x86/include -I$OUTPUT/arch/x86/include/generated"
elif [ "$ARCH" = "arm" ]; then
CFLAGS="$CFLAGS -I$SOURCES/arch/arm/include -I$OUTPUT/arch/arm/include/generated"
@@ -512,7 +512,6 @@
# and if it as an 'event' member.
#
echo "$CONFTEST_PREAMBLE
- #include <asm/system.h>
#include <linux/pm.h>
void conftest_pm_message_t(pm_message_t state) {
pm_message_t *p = &state;
diff -ur a/kernel/nv-linux.h b/kernel/nv-linux.h
--- a/kernel/nv-linux.h 2012-04-27 22:50:12.000000000 +0400
+++ b/kernel/nv-linux.h 2012-05-08 05:41:51.366000256 +0400
@@ -111,7 +111,6 @@
#include <linux/timer.h>
#include <asm/div64.h> /* do_div() */
-#include <asm/system.h> /* cli, sli, save_flags */
#include <asm/io.h> /* ioremap, virt_to_phys */
#include <asm/uaccess.h> /* access_ok */
#include <asm/page.h> /* PAGE_OFFSET */
@@ -992,9 +991,19 @@
# define NV_IS_SUSER() capable(CAP_SYS_ADMIN)
# define NV_PCI_DEVICE_NAME(dev) ((dev)->pretty_name)
# define NV_NUM_CPUS() num_online_cpus()
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
+# include <asm/system.h>
# define NV_CLI() local_irq_disable()
# define NV_SAVE_FLAGS(eflags) local_save_flags(eflags)
# define NV_RESTORE_FLAGS(eflags) local_irq_restore(eflags)
+#else
+# include <asm/irqflags.h>
+# define NV_CLI() arch_local_irq_disable()
+# define NV_SAVE_FLAGS(eflags) eflags = arch_local_save_flags()
+# define NV_RESTORE_FLAGS(eflags) arch_local_irq_restore(eflags)
+#endif
+
# define NV_MAY_SLEEP() (!irqs_disabled() && !in_interrupt() && !NV_IN_ATOMIC())
# define NV_MODULE_PARAMETER(x) module_param(x, int, 0)
# define NV_MODULE_STRING_PARAMETER(x) module_param(x, charp, 0)
Last edited by pavlinux; 05-09-12 at 12:06 PM. |
|
|
|
|
|
|
#2 | |
|
Registered User
Join Date: Jan 2009
Posts: 19
|
This patch doesn't work.
Code:
patching file kernel/conftest.sh patching file kernel/nv-linux.h /usr/bin/patch: **** malformed patch at line 20: @@ -994,9 +993,19 @@ Failed to apply patch file "/home/$USER/3.4.patch". |
|
|
|
|
|
|
#3 |
|
Registered User
Join Date: Apr 2006
Posts: 277
|
I applied it manually, then created a diff
Edit: See bellow for newer version |
|
|
|
|
|
#4 | |
|
Registered User
Join Date: Feb 2006
Location: Moscow, Russia
Posts: 55
|
![]() Oops, the patch is the same for both versions, the number of lines may vary. --- Bug: Must be saved eflags in nv-pat.c ![]() Code:
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
NV_SAVE_FLAGS(eflags);
#else
eflags = NV_SAVE_FLAGS();
#endif
Code:
diff -ur a/kernel/conftest.sh b/kernel/conftest.sh
--- a/kernel/conftest.sh 2012-04-27 22:50:12.000000000 +0400
+++ b/kernel/conftest.sh 2012-05-08 05:15:24.042000162 +0400
@@ -512,7 +512,6 @@
# and if it as an 'event' member.
#
echo "$CONFTEST_PREAMBLE
- #include <asm/system.h>
#include <linux/pm.h>
void conftest_pm_message_t(pm_message_t state) {
pm_message_t *p = &state;
Только в b/kernel/: Makefile
diff -ur a/kernel/nv-linux.h b/kernel/nv-linux.h
--- a/kernel/nv-linux.h 2012-04-27 22:50:12.000000000 +0400
+++ b/kernel/nv-linux.h 2012-05-08 05:37:30.129000164 +0400
@@ -111,7 +111,6 @@
#include <linux/timer.h>
#include <asm/div64.h> /* do_div() */
-#include <asm/system.h> /* cli, sli, save_flags */
#include <asm/io.h> /* ioremap, virt_to_phys */
#include <asm/uaccess.h> /* access_ok */
#include <asm/page.h> /* PAGE_OFFSET */
@@ -992,9 +991,19 @@
# define NV_IS_SUSER() capable(CAP_SYS_ADMIN)
# define NV_PCI_DEVICE_NAME(dev) ((dev)->pretty_name)
# define NV_NUM_CPUS() num_online_cpus()
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
+# include <asm/system.h>
# define NV_CLI() local_irq_disable()
# define NV_SAVE_FLAGS(eflags) local_save_flags(eflags)
# define NV_RESTORE_FLAGS(eflags) local_irq_restore(eflags)
+#else
+# include <asm/irqflags.h>
+# define NV_CLI() arch_local_irq_disable()
+# define NV_SAVE_FLAGS(eflags) eflags = arch_local_save_flags()
+# define NV_RESTORE_FLAGS(eflags) arch_local_irq_restore(eflags)
+#endif
+
# define NV_MAY_SLEEP() (!irqs_disabled() && !in_interrupt() && !NV_IN_ATOMIC())
# define NV_MODULE_PARAMETER(x) module_param(x, int, 0)
# define NV_MODULE_STRING_PARAMETER(x) module_param(x, charp, 0)
|
|
|
|
|
|
|
#5 |
|
Registered User
Join Date: Apr 2006
Posts: 277
|
That one is incomplete, the nv-pat.c part is missing. This should do it:
Code:
--- kernel/conftest.sh.orig
+++ kernel/conftest.sh
@@ -512,7 +512,6 @@
# and if it as an 'event' member.
#
echo "$CONFTEST_PREAMBLE
- #include <asm/system.h>
#include <linux/pm.h>
void conftest_pm_message_t(pm_message_t state) {
pm_message_t *p = &state;
--- kernel/nv-linux.h.orig
+++ kernel/nv-linux.h
@@ -111,7 +111,6 @@
#include <linux/timer.h>
#include <asm/div64.h> /* do_div() */
-#include <asm/system.h> /* cli, sli, save_flags */
#include <asm/io.h> /* ioremap, virt_to_phys */
#include <asm/uaccess.h> /* access_ok */
#include <asm/page.h> /* PAGE_OFFSET */
@@ -992,9 +991,19 @@
# define NV_IS_SUSER() capable(CAP_SYS_ADMIN)
# define NV_PCI_DEVICE_NAME(dev) ((dev)->pretty_name)
# define NV_NUM_CPUS() num_online_cpus()
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
+# include <asm/system.h>
# define NV_CLI() local_irq_disable()
# define NV_SAVE_FLAGS(eflags) local_save_flags(eflags)
# define NV_RESTORE_FLAGS(eflags) local_irq_restore(eflags)
+#else
+# include <asm/irqflags.h>
+# define NV_CLI() arch_local_irq_disable()
+# define NV_SAVE_FLAGS() arch_local_save_flags()
+# define NV_RESTORE_FLAGS(eflags) arch_local_irq_restore(eflags)
+#endif
+
# define NV_MAY_SLEEP() (!irqs_disabled() && !in_interrupt() && !NV_IN_ATOMIC())
# define NV_MODULE_PARAMETER(x) module_param(x, int, 0)
# define NV_MODULE_STRING_PARAMETER(x) module_param(x, charp, 0)
--- kernel/nv-pat.c.orig
+++ kernel/nv-pat.c
@@ -109,7 +109,11 @@
return;
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
NV_SAVE_FLAGS(eflags);
+#else
+ eflags = NV_SAVE_FLAGS();
+#endif
NV_CLI();
nv_disable_caches(&cr4);
@@ -135,7 +139,11 @@
return;
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
NV_SAVE_FLAGS(eflags);
+#else
+ eflags = NV_SAVE_FLAGS();
+#endif
NV_CLI();
nv_disable_caches(&cr4);
|
|
|
|
|
|
#6 | |
|
Registered User
Join Date: Feb 2006
Location: Moscow, Russia
Posts: 55
|
|
|
|
|
|
|
|
#7 |
|
Registered User
Join Date: Aug 2007
Posts: 43
|
For some reason I need this hunk as well, please add it.
Code:
--- NVIDIA-Linux-x86_64-295.40/kernel/conftest.sh~ 2012-04-06 06:37:05.000000000 +0200
+++ NVIDIA-Linux-x86_64-295.40/kernel/conftest.sh 2012-04-13 08:42:13.618750616 +0200
@@ -101,7 +101,7 @@ build_cflags() {
if [ "$OUTPUT" != "$SOURCES" ]; then
MACH_CFLAGS="-I$HEADERS/asm-$ARCH/mach-default"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
MACH_CFLAGS="$MACH_CFLAGS -I$HEADERS/asm-x86/mach-default"
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCES/arch/x86/include/asm/mach-default"
elif [ "$ARCH" = "ARMv7" ]; then
@@ -112,7 +112,7 @@ build_cflags() {
fi
else
MACH_CFLAGS="-I$HEADERS/asm/mach-default"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
MACH_CFLAGS="$MACH_CFLAGS -I$HEADERS/asm-x86/mach-default"
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCES/arch/x86/include/asm/mach-default"
elif [ "$ARCH" = "ARMv7" ]; then
@@ -125,7 +125,7 @@ build_cflags() {
CFLAGS="$BASE_CFLAGS $MACH_CFLAGS $OUTPUT_CFLAGS -I$HEADERS $AUTOCONF_CFLAGS"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
CFLAGS="$CFLAGS -I$SOURCES/arch/x86/include -I$OUTPUT/arch/x86/include/generated"
elif [ "$ARCH" = "ARMv7" ]; then
CFLAGS="$CFLAGS -I$SOURCES/arch/arm/include -I$OUTPUT/arch/arm/include/generated"
|
|
|
|
|
|
#8 |
|
Registered User
Join Date: Feb 2006
Location: Moscow, Russia
Posts: 55
|
|
|
|
|
|
|
#9 |
|
Registered User
Join Date: Jun 2006
Posts: 678
|
Guys can you just post a patch as an attachment?
Copy pasting a patch almost never works because tabs and spaces all get messed up. |
|
|
|
|
|
#10 | |
|
Registered User
Join Date: Feb 2006
Location: Moscow, Russia
Posts: 55
|
Quote:
|
|
|
|
|
![]() |
| Thread Tools | |
|
|