diff --git a/packages/x11/driver/xf86-video-fglrx/patches.upstream/xf86-video-fglrx-12.2-TS_USEDFPU_fix.patch b/packages/x11/driver/xf86-video-fglrx/patches.upstream/xf86-video-fglrx-12.2-TS_USEDFPU_fix.patch new file mode 100644 index 0000000000..c1ff6cd495 --- /dev/null +++ b/packages/x11/driver/xf86-video-fglrx/patches.upstream/xf86-video-fglrx-12.2-TS_USEDFPU_fix.patch @@ -0,0 +1,20 @@ +diff -Naur amd-driver-installer-12-2-x86.x86_64/common/lib/modules/fglrx/build_mod/firegl_public.c amd-driver-installer-12-2-x86.x86_64.patch/common/lib/modules/fglrx/build_mod/firegl_public.c +--- amd-driver-installer-12-2-x86.x86_64/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-02-29 21:34:52.000000000 +0100 ++++ amd-driver-installer-12-2-x86.x86_64.patch/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-03-08 20:37:59.390714008 +0100 +@@ -5799,10 +5799,16 @@ + #ifdef CONFIG_X86_64 + kernel_fpu_begin(); + #else ++#ifndef TS_USEDFPU ++ preempt_disable(); ++ if (__thread_has_fpu(current)) ++ __save_init_fpu(current); ++#else + struct thread_info *cur_task = current_thread_info(); + preempt_disable(); + if (cur_task->status & TS_USEDFPU) + __save_init_fpu(cur_task->task); ++#endif + else + clts(); + #endif