nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.7-arch-cpu_has_pge-v2.patch

71 lines
2.2 KiB
Diff

diff -uNr 16.8/common/lib/modules/fglrx/build_mod/firegl_public.c 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.c
--- 16.8/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-12-18 19:47:41.000000000 +0100
+++ 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.c 2016-08-15 15:09:37.228538907 +0200
@@ -4518,7 +4518,11 @@
write_cr0(cr0);
wbinvd();
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+ if (boot_cpu_has(X86_FEATURE_PGE))
+#else
if (cpu_has_pge)
+#endif
{
cr4 = READ_CR4();
WRITE_CR4(cr4 & ~X86_CR4_PGE);
@@ -4532,7 +4536,11 @@
wbinvd();
__flush_tlb();
write_cr0(cr0 & 0xbfffffff);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+ if (boot_cpu_has(X86_FEATURE_PGE))
+#else
if (cpu_has_pge)
+#endif
{
WRITE_CR4(cr4);
}
@@ -4559,7 +4567,11 @@
write_cr0(cr0);
wbinvd();
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+ if (boot_cpu_has(X86_FEATURE_PGE))
+#else
if (cpu_has_pge)
+#endif
{
cr4 = READ_CR4();
WRITE_CR4(cr4 & ~X86_CR4_PGE);
@@ -4572,7 +4584,11 @@
wbinvd();
__flush_tlb();
write_cr0(cr0 & 0xbfffffff);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+ if (boot_cpu_has(X86_FEATURE_PGE))
+#else
if (cpu_has_pge)
+#endif
{
WRITE_CR4(cr4);
}
diff -uNr 16.8/common/lib/modules/fglrx/build_mod/firegl_public.h 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.h
--- 16.8/common/lib/modules/fglrx/build_mod/firegl_public.h 2015-12-18 19:47:41.000000000 +0100
+++ 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.h 2016-08-15 15:09:05.815141238 +0200
@@ -650,9 +650,15 @@
#define cpu_has_pat test_bit(X86_FEATURE_PAT, (void *) &boot_cpu_data.x86_capability)
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+#ifndef boot_cpu_has(X86_FEATURE_PGE)
+#define boot_cpu_has(X86_FEATURE_PGE) test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
+#endif
+#else
#ifndef cpu_has_pge
#define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
#endif
+#endif
/* 2.6.29 defines pgprot_writecombine as a macro which resolves to a
* GPL-only function with the same name. So we always use our own