Rev 2101 | Rev 2218 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2101 | Rev 2217 | ||
---|---|---|---|
Line 137... | Line 137... | ||
137 | return IRQ_ACCEPT; |
137 | return IRQ_ACCEPT; |
138 | } |
138 | } |
139 | 139 | ||
140 | static void l_apic_timer_irq_handler(irq_t *irq, void *arg, ...) |
140 | static void l_apic_timer_irq_handler(irq_t *irq, void *arg, ...) |
141 | { |
141 | { |
- | 142 | /* |
|
- | 143 | * Holding a spinlock could prevent clock() from preempting |
|
- | 144 | * the current thread. In this case, we don't need to hold the |
|
- | 145 | * irq->lock so we just unlock it and then lock it again. |
|
- | 146 | */ |
|
- | 147 | spinlock_unlock(&irq->lock); |
|
142 | clock(); |
148 | clock(); |
- | 149 | spinlock_lock(&irq->lock); |
|
143 | } |
150 | } |
144 | 151 | ||
145 | /** Initialize APIC on BSP. */ |
152 | /** Initialize APIC on BSP. */ |
146 | void apic_init(void) |
153 | void apic_init(void) |
147 | { |
154 | { |