spin_lock already locked error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm seeing a spin_lock error running the latest Red Hat EL 4 ( 
2.6.9-42.0.10.EL ) on a uniprocessor AMD x86_64 machine.  I have verified 
that CONFIG_PREEMPT and CONFIG_SMP are not defined.  I use a global 
spin_lock ( spin_lock_irqsave / spin_lock_irqrestore ) in the ISR routine 
and several other functions.  While executing in one of the functions, the 
ISR routine is called and we get an error that the spin_lock is already 
locked ( shown below ):

*** MUTEX_ENTER ***
***TRY_ISR_ENTER ** 
Kernel panic - not syncing: 
/work/ken/drivers/mps/drv/Linux/mps_linux.c:853: 
spin_lock(/work/ken/drivers/mps/drv/Linux/mps_linux.c:ffffffffa0337240) 
already locked by /work/ken/drivers/mps/drv/Linux/mps_ioctl.c/1034
Badness in panic at kernel/panic.c:117


I have read many places that on a uniprocessor machine with CONFIG_PREEMPT 
not defined, that spin_lock_irqsave reduces to just disabling interrupts. 
What I am seeing here is that not only is spin_lock_irqsave not disabling 
interrupts ( we get in the ISR routine in the middle of executing another 
function ) it also checks to see if the spin_lock is taken, which is not 
right for the non-preemptive kernel.  Any ideas as to what is going on? 
This same code works fine in an SMP environment.
-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list

[Index of Archives]     [CentOS]     [Kernel Development]     [PAM]     [Fedora Users]     [Red Hat Development]     [Big List of Linux Books]     [Linux Admin]     [Gimp]     [Asterisk PBX]     [Yosemite News]     [Red Hat Crash Utility]


  Powered by Linux