The loop which checks to see if "dynamic" IDT entries are allocated
needs to compare with the trampoline address of the reserved ISR.
Otherwise it will never succeed.
Details
Details
- Reviewers
kib - Commits
- rG18f55c67f746: x86: Fix lapic_ipi_alloc() on i386
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 39598 Build 36487: arc lint + arc unit
Event Timeline
Comment Actions
But doesn't this mean that IDTVEC(rsdv) do not work and effectively unexpected interrupt would cause double fault?
Comment Actions
I could be missing something, but I think not. setidt() shifts the entry point address by setidt_disp before updating the IDT. The problem here is that when reading entries out of the IDT, we have to shift back before comparing with IDTVEC(foo).