• Ben Dooks's avatar
    [ARM PATCH] 2373/1: S3C2410 - fix possible loop in irq macro · 020af266
    Ben Dooks authored
    Patch from Ben Dooks
    
    If we read the INTPEND register and get the wrong
    result (details below) then it looks like a possible
    loop to go back and re-read it after calculating
    the possible correct value for it.
    
    It seems that the INTPEND register, which should
    show the unique number of the interrupt that we
    need to handle. However, it seems that this register
    can show the wrong interrupt under certain conditions.
    
    Shannon's research shows that it is very possible that
    the occurence of an external interrupt can end up
    merging with the base interrupt number, causing
    the wrong result in the register.
    
    This patch also fixes the end position of the #ifdef
    block and ensures as many registers as possible are
    stacked before calling printk() for debug.
    
    Original patch for 2.6.9 by Shannon Holland re-written
    for 2.6.10 by Ben Dooks.
    
    Signed-off-by: Shannon Holland                             
    Signed-off-by: Ben Dooks                                 
    Signed-off-by: Russell King
    020af266
entry-macro.S 3.15 KB