[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-arm-kernel
Subject:    Re: kernel BUG at sched.c:566! - In Innovator.
From:       Matthias Welwarsky <mwelwarsky () web ! de>
Date:       2003-09-09 11:59:37
[Download RAW message or body]

On Tuesday 09 September 2003 12:53, Pasanth s wrote:
> Hi,
>    at present I'm using Linux version
> 2.4.19-rmk7-omap1 for Innovator. When one kernel
> thread has acquired a semaphore using down(), and when
> the hard_start_xmit() tried to call down() for the
> same semaphore, I got the following exception. I
> noticed that, there were no interrupt handlers
> running/started, but dn't know how it came. Somebody
> please help me? [I am also looking into the source,
> but felt, will be really great to have some
> assistance]
>
> Scheduling in interrupt
> kernel BUG at sched.c:566!

You cannot protect against an interrupt using semaphores. hard_start_xmit() is 
called from interrupt context and must not use down(), or any other function 
that may sleep, like sleep_on() and of course schedule().

To protect a thread against being interrupted, you need to use an interrupt 
disabling lock, like spin_lock_irqsave()/spin_unlock_irqrestore().

regards,
	matthias


-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ/Etiquette:       http://www.arm.linux.org.uk/armlinux/mailinglists.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic