Rev 2089 | Rev 2634 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2089 | Rev 2107 | ||
---|---|---|---|
Line 111... | Line 111... | ||
111 | drift -= cp0_compare_value; |
111 | drift -= cp0_compare_value; |
112 | CPU->missed_clock_ticks++; |
112 | CPU->missed_clock_ticks++; |
113 | } |
113 | } |
114 | nextcount = cp0_count_read() + cp0_compare_value - drift; |
114 | nextcount = cp0_count_read() + cp0_compare_value - drift; |
115 | cp0_compare_write(nextcount); |
115 | cp0_compare_write(nextcount); |
- | 116 | ||
- | 117 | /* |
|
- | 118 | * We are holding a lock which prevents preemption. |
|
- | 119 | * Release the lock, call clock() and reacquire the lock again. |
|
- | 120 | */ |
|
- | 121 | spinlock_unlock(&irq->lock); |
|
116 | clock(); |
122 | clock(); |
- | 123 | spinlock_lock(&irq->lock); |
|
117 | 124 | ||
118 | if (virtual_timer_fnc != NULL) |
125 | if (virtual_timer_fnc != NULL) |
119 | virtual_timer_fnc(); |
126 | virtual_timer_fnc(); |
120 | } |
127 | } |
121 | 128 |