/** \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);
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(kasExecutio nLevel) ; var(kasExecutio nLevel) = level; cpu_var( kasExecutionLev el); cpu_var( kasExecutionLev el) = level;
- __get_cpu_
+ orig_level = __raw_get_
+ __raw_get_
return orig_level; nLevel( void) var(kasExecutio nLevel) ; cpu_var( kasExecutionLev el);
}
@@ -4286,7 +4286,7 @@
*/
static unsigned long kas_GetExecutio
{
- return __get_cpu_
+ return __raw_get_
}
/** \brief Type definition for kas_spin_lock() parameter */ DEBUG5( FN_FIREGL_ KAS,"0x% 08X, 0x%08X\n", ih_routine, ih_context);
@@ -4440,7 +4440,7 @@
KCL_
//Prevent simultaneous entry on some SMP systems. set_bit( 0, (void *)&(kasContext. in_interrupts[ smp_processor_ id()])) ) set_bit( 0, (void *)&(kasContext. in_interrupts[ raw_smp_ processor_ id()])) )
KCL_DEBUG1( FN_FIREGL_ KAS, "The processor is handling the interrupt\n"); utionLevel( orig_level) ; unlock( &kasContext. lock_ih) ;
- if (test_and_
+ if (test_and_
{
return IRQ_NONE;
@@ -4455,7 +4455,7 @@
kasSetExec
spin_
- clear_bit(0, (void *)&(kasContext. in_interrupts[ smp_processor_ id()])) ; in_interrupts[ raw_smp_ processor_ id()])) ; DEBUG5( FN_FIREGL_ KAS,"%d\ n", ret);
+ clear_bit(0, (void *)&(kasContext.
KCL_
return ret;
bye
masta