Changeset fd67c9f in mainline for kernel/arch/ia32/src/interrupt.c
- Timestamp:
- 2019-04-06T08:10:27Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 534bcdf
- Parents:
- ef56a43
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/src/interrupt.c
ref56a43 rfd67c9f 192 192 bool ack = false; 193 193 assert(inum < IRQ_COUNT); 194 assert(inum != IRQ_PIC0_SPUR);195 assert(inum != IRQ_PIC1_SPUR);196 194 assert(inum != IRQ_PIC1); 197 195 … … 210 208 irq_spinlock_unlock(&irq->lock, false); 211 209 } else { 212 /*213 * Spurious interrupt.214 */215 210 #ifdef CONFIG_DEBUG 216 printf("cpu%u: spurious interrupt (inum=%u)\n", CPU->id, inum); 211 log(LF_ARCH, LVL_DEBUG, "cpu%u: unhandled IRQ %u", CPU->id, 212 inum); 217 213 #endif 218 214 } … … 224 220 static void pic_spurious(unsigned int n, istate_t *istate) 225 221 { 226 /* 227 * XXX: Examine ISR to figure out whether this is indeed a spurious 228 * or actual IRQ. 229 */ 222 unsigned int inum = n - IVT_IRQBASE; 223 if (!pic_is_spurious(inum)) { 224 /* This is actually not a spurious IRQ, so proceed as usual. */ 225 irq_interrupt(n, istate); 226 return; 227 } 228 pic_handle_spurious(n); 230 229 #ifdef CONFIG_DEBUG 231 log(LF_ARCH, LVL_DEBUG, "cpu%u: PIC spurious interrupt", CPU->id); 230 log(LF_ARCH, LVL_DEBUG, "cpu%u: PIC spurious interrupt %u", CPU->id, 231 inum); 232 232 #endif 233 233 }
Note:
See TracChangeset
for help on using the changeset viewer.