0006-Add-support-for-Linux-4.4.patch 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. From 54b230e26a1889c08507e791ab043f8a4b4ff771 Mon Sep 17 00:00:00 2001
  2. From: Romain Perier <romain.perier@free-electrons.com>
  3. Date: Thu, 7 Jul 2016 14:40:53 +0200
  4. Subject: [PATCH] Add support for Linux 4.4
  5. It fixes various things like the use of seq_printf because its API
  6. changed. It also replaces the call to mtrr_add and mtrr_del by
  7. arch_phys_wc_add and arch_phys_wc_del because these symbols are
  8. no longer exported for Linux >= 4.3.x.
  9. Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
  10. ---
  11. common/lib/modules/fglrx/build_mod/firegl_public.c | 21 +++++++++++++++++++++
  12. 1 file changed, 21 insertions(+)
  13. diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
  14. index bb67bba..b4b2d30 100755
  15. --- a/common/lib/modules/fglrx/build_mod/firegl_public.c
  16. +++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
  17. @@ -636,9 +636,16 @@ static int firegl_major_proc_read(struct seq_file *m, void* data)
  18. len = snprintf(buf, request, "%d\n", major);
  19. #else
  20. +
  21. +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
  22. + seq_printf(m, "%d\n", major);
  23. + len = 0;
  24. +#else
  25. len = seq_printf(m, "%d\n", major);
  26. #endif
  27. +#endif
  28. +
  29. KCL_DEBUG1(FN_FIREGL_PROC, "return len=%i\n",len);
  30. return len;
  31. @@ -3432,7 +3439,11 @@ int ATI_API_CALL KCL_MEM_MTRR_Support(void)
  32. int ATI_API_CALL KCL_MEM_MTRR_AddRegionWc(unsigned long base, unsigned long size)
  33. {
  34. #ifdef CONFIG_MTRR
  35. +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
  36. + return arch_phys_wc_add(base, size);
  37. +#else
  38. return mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
  39. +#endif
  40. #else /* !CONFIG_MTRR */
  41. return -EPERM;
  42. #endif /* !CONFIG_MTRR */
  43. @@ -3441,7 +3452,12 @@ int ATI_API_CALL KCL_MEM_MTRR_AddRegionWc(unsigned long base, unsigned long size
  44. int ATI_API_CALL KCL_MEM_MTRR_DeleteRegion(int reg, unsigned long base, unsigned long size)
  45. {
  46. #ifdef CONFIG_MTRR
  47. +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
  48. + arch_phys_wc_del(reg);
  49. + return 0;
  50. +#else
  51. return mtrr_del(reg, base, size);
  52. +#endif
  53. #else /* !CONFIG_MTRR */
  54. return -EPERM;
  55. #endif /* !CONFIG_MTRR */
  56. @@ -6505,8 +6521,13 @@ static int KCL_fpu_save_init(struct task_struct *tsk)
  57. if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP))
  58. #else
  59. _copy_xregs_to_kernel(&fpu->state.xsave);
  60. +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
  61. + if (!(fpu->state.xsave.header.xfeatures & XFEATURE_MASK_FP))
  62. +#else
  63. if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
  64. #endif
  65. +
  66. +#endif
  67. return 1;
  68. } else if (static_cpu_has(X86_FEATURE_FXSR)) {
  69. #if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
  70. --
  71. 2.8.1