Both booke and AIM interrupt.c files contain nearly identical code. This merges
the two files, to reduce duplication.
Details
- Reviewers
marcel - Group Reviewers
PowerPC - Commits
- rS285195: Merge booke and aim interrupt.c files.
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
I like the unification, but...
In powerpc_extr_interrupt(), we clear WE (as in: framep->srr1 &= ~PSL_WE), so that when an interrupt wakes us from doze or nap we don't fall back to sleep after the interrupt,but instead we stay awake. If there's nothing to do, then the scheduler will have us go back to sleep. There's no such code in powerpc_interrupt(), which means that doze/nap will be broken by this change.
In powerpc_decr_interrupt() we do the same.
You could add this to trap_subr.S by having int_external_input and powerpc_decr_interrupt branch to a new label that clears PSL_WE before going to trapexit.
Other than that: LGTM.
Thanks for the review, I completely missed that bit. I'll have a new patch tested and ready soon.
Address Marcel's comments. Now it clears PSL_WE before returning from extint
and decr interrupts.