Rev 2089 | Rev 2633 | 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 | ||