Eu tenho o patch para firegl_public.c
trabalhando no kernel mais recente:
--- ../firegl_public.c 2016-06-04 23:00:11.938899758 -0400
+++ firegl_public.c 2016-06-06 21:30:45.942122307 -0400
@@ -136,6 +136,9 @@
#include <asm/processor.h>
#include <asm/tlbflush.h> // for flush_tlb_page
#include <asm/cpufeature.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
+#undef CONFIG_MTRR
+#endif
#ifdef CONFIG_MTRR
#include <asm/mtrr.h>
#endif
@@ -631,7 +634,12 @@
len = snprintf(buf, request, "%d\n", major);
#else
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0)
len = seq_printf(m, "%d\n", major);
+#else
+ seq_printf(m, "%d\n", major);
+ len = 0;
+#endif
#endif
KCL_DEBUG1(FN_FIREGL_PROC, "return len=%i\n",len);
@@ -3424,7 +3432,7 @@
int ATI_API_CALL KCL_MEM_MTRR_AddRegionWc(unsigned long base, unsigned long size)
{
#ifdef CONFIG_MTRR
- return mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
+ return -EPERM;/*return mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);*/
#else /* !CONFIG_MTRR */
return -EPERM;
#endif /* !CONFIG_MTRR */
@@ -3433,7 +3441,7 @@
int ATI_API_CALL KCL_MEM_MTRR_DeleteRegion(int reg, unsigned long base, unsigned long size)
{
#ifdef CONFIG_MTRR
- return mtrr_del(reg, base, size);
+ return -EPERM;/*return mtrr_del(reg, base, size);*/
#else /* !CONFIG_MTRR */
return -EPERM;
#endif /* !CONFIG_MTRR */
@@ -6452,10 +6460,10 @@
if(static_cpu_has(X86_FEATURE_XSAVE)) {
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
fpu_xsave(fpu);
- if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP))
+ if (!(fpu->state->xsave.xsave_hdr.xstate_bv))
#else
copy_xregs_to_kernel(&fpu->state.xsave);
- if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
+ if (!(fpu->state.xsave.header.xfeatures))
#endif
return 1;
} else if (static_cpu_has(X86_FEATURE_FXSR)) {