Changeset da1bafb in mainline for kernel/arch/amd64/src/interrupt.c
- Timestamp:
- 2010-05-24T18:57:31Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0095368
- Parents:
- 666f492
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/interrupt.c
r666f492 rda1bafb 106 106 } 107 107 108 /** General Protection Fault. */ 108 /** General Protection Fault. 109 * 110 */ 109 111 static void gp_fault(int n, istate_t *istate) 110 112 { 111 113 if (TASK) { 112 size_t ver; 113 114 spinlock_lock(&TASK->lock); 115 ver = TASK->arch.iomapver; 116 spinlock_unlock(&TASK->lock); 117 114 irq_spinlock_lock(&TASK->lock, false); 115 size_t ver = TASK->arch.iomapver; 116 irq_spinlock_unlock(&TASK->lock, false); 117 118 118 if (CPU->arch.iomapver_copy != ver) { 119 119 /* … … 129 129 fault_if_from_uspace(istate, "General protection fault."); 130 130 } 131 131 132 132 decode_istate(n, istate); 133 133 panic("General protection fault."); … … 159 159 #endif 160 160 161 /** Handler of IRQ exceptions */ 161 /** Handler of IRQ exceptions. 162 * 163 */ 162 164 static void irq_interrupt(int n, istate_t *istate) 163 165 { … … 174 176 * The IRQ handler was found. 175 177 */ 176 178 177 179 if (irq->preack) { 178 180 /* Send EOI before processing the interrupt */ … … 181 183 } 182 184 irq->handler(irq); 183 spinlock_unlock(&irq->lock);185 irq_spinlock_unlock(&irq->lock, false); 184 186 } else { 185 187 /*
Note:
See TracChangeset
for help on using the changeset viewer.