Hi there!

A little bit late!
SOLUTION:


--- firegl_public.c.modified    2017-06-09 16:41:29.334991812 +0200
+++ firegl_public.c     2017-06-08 18:25:25.835817920 +0200
@@ -4273,8 +4273,8 @@
 {
     unsigned long orig_level;
 
-    orig_level = __get_cpu_var(kasExecutionLevel);
-    __get_cpu_var(kasExecutionLevel) = level;
+    orig_level = __raw_get_cpu_var(kasExecutionLevel);
+    __raw_get_cpu_var(kasExecutionLevel) = level;
 
     return orig_level;
 }
@@ -4286,7 +4286,7 @@
  */
 static unsigned long kas_GetExecutionLevel(void)
 {
-    return __get_cpu_var(kasExecutionLevel);
+    return __raw_get_cpu_var(kasExecutionLevel);
 }
 
 /** \brief Type definition for kas_spin_lock() parameter */
@@ -4440,7 +4440,7 @@
     KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X, 0x%08X\n", ih_routine, ih_context);
 
     //Prevent simultaneous entry on some SMP systems.
-    if (test_and_set_bit(0, (void 
*)&(kasContext.in_interrupts[smp_processor_id()])))
+    if (test_and_set_bit(0, (void 
*)&(kasContext.in_interrupts[raw_smp_processor_id()])))
     {
         KCL_DEBUG1(FN_FIREGL_KAS, "The processor is handling the interrupt\n");
         return IRQ_NONE;
@@ -4455,7 +4455,7 @@
     kasSetExecutionLevel(orig_level);
     spin_unlock(&kasContext.lock_ih); 
 
-    clear_bit(0, (void *)&(kasContext.in_interrupts[smp_processor_id()]));
+    clear_bit(0, (void *)&(kasContext.in_interrupts[raw_smp_processor_id()]));
     KCL_DEBUG5(FN_FIREGL_KAS,"%d\n", ret);
 
     return ret;


bye
masta

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/560571

Title:
  BUG: using smp_processor_id() in preemptible [00000000] code:
  Xorg/1157

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/560571/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to