• David Brownell's avatar
    [AVR32] ext int fixes · 58febc0b
    David Brownell authored
    Bugfixes for external irq handler set_irq_type():
    
     - If set_irq_type() can't set the type, don't change anything!
    
     - It's not OK to change the flow handler as part of set_irq_type(),
       among other issues that violates spinlock rules.  Instead, we can
       call the relevant handler when we demux the external interrupts.
    
     - The external irq demux has no need to grab the spinlock.  And in
       fact grabbing it that way was wrong, since that code might be
       pre-empted by an irq at a different priority level, and that code
       might then have tried to grab that spinlock...
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarHaavard Skinnemoen <hskinnemoen@atmel.com>
    58febc0b
extint.c 4.27 KB