[uClinux-dev] Re: soft_irq()

John Williams jwilliams at itee.uq.edu.au
Mon Mar 24 18:54:16 EST 2003

John Williams wrote:


OK well I hereby nominate myself for idiot of the week award - a 
stunningly simple yet damaging bug in my irq entry/exit assembly code 
was the source of my problem [1].  Oh well, at least I learned a bunch 
of other useful stuff while chasing it down, including finding some 
other lurking bugs that would have come to bite me later on.

Onwards and upwards!!!

Thanks all for your input.  This mailing list is great.


[1] For the curious, the microblaze return from interrupt instruction 
'rtid' takes two parameters, a link register, and an offset that gets 
added to it to form the return address.  For an understandable but still 
silly reason to do with my misunderstanding of how interrupts affect the 
instruction fetch pipeline, I was specifying an offset of 8 (2 
instructions) in my rtid statements.  This meant I was happily skipping 
past several instructions  immediately after returning from an 
interrupt.  No wonder it was so hard to track down, the effects were 
totally unpredictable!

More information about the uClinux-dev mailing list