On 31/10/13 17:15, Andrew Parlane wrote: > Looking at hal/arm/arch/current/src/vectors.S in IRQ: > > We increment the scheduler lock and decrement it again in interrupt_end. > > In the case of there being a spurious interrupt, we don't call > interrupt_end, and so the scheduler never gets decremented. > > Am I missing something here?
interrupt_end() does get called. A spurious interrupt only causes the code to skip calling an ISR by jumping to the spurious_IRQ label. From there it follows the same code path and will call interrupt_end() as normal. -- Nick Garnett Kernel Architect eCosCentric Limited http://www.eCosCentric.com The eCos experts Barnwell House, Barnwell Drive, Cambridge, UK. Tel: +44 1223 245571 Registered in England and Wales: Reg No: 4422071 -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
