> Date: Mon, 31 Jul 2017 16:30:07 +0300
> From: Artturi Alm <[email protected]>
> 
> Hi,
> 
> i've been annoyed by this inconsistency for years, and was wondering
> if someone would have the time to explain why it is the way it is, or
> give me any advice towards the correct&accepted fixes.
> 
> i'll just copypaste some lines of code that should show what i mean:
> 
> #define ARM_IRQ_HANDLER arm_intr
> 
> ASENTRY_NP(irq_entry)
> ...
>       bl      ARM_IRQ_HANDLER
> ... no r0 usage ...
> 
> void (*arm_intr_dispatch)(void *) = arm_dflt_intr;
> 
> void
> arm_intr(void *frame)
> {
>       /* XXX - change this to have irq_dispatch use function pointer */
>       (*arm_intr_dispatch)(frame);
> }
> 
> int
> agtimer_intr(void *frame)
> {
> ... conditionally set the useless rc ...
>       return (rc);
> }
> 
> go void?

Interrupt handlers return int such that they can be counted.  You're
missing the actual interrupt control implementtation in your analysis.

Is this overengineered?  Yes.  Is this worth fixing?  No.

Reply via email to