• Max Filippov's avatar
    xtensa: clear timer IRQ unconditionally in its handler · bae07f8a
    Max Filippov authored
    PIC irq_ack doesn't clear timer IRQ, because timer interrupt handler
    usually set up new timer by writing to ccompare register and thus
    clearing timer IRQ. However timer may not be set up in the IRQ handler,
    e.g. with tickless idle on SMP, or when CPU is going offline, leaving
    timer IRQ raised and making do_interrupt attempting to handle it
    forever.
    
    To fix this always write current value of ccompare SR chosen to be linux
    timer back to that SR on entry to timer interrupt handler.
    Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: default avatarChris Zankel <chris@zankel.net>
    bae07f8a
time.c 4.43 KB