Rev 3862 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3862 | Rev 4638 | ||
---|---|---|---|
Line 82... | Line 82... | ||
82 | uintptr_t page, count_t count) |
82 | uintptr_t page, count_t count) |
83 | { |
83 | { |
84 | unsigned int i; |
84 | unsigned int i; |
85 | 85 | ||
86 | CPU->tlb_active = 0; |
86 | CPU->tlb_active = 0; |
- | 87 | ||
87 | spinlock_lock(&tlblock); |
88 | spinlock_lock(&tlblock); |
88 | 89 | ||
89 | for (i = 0; i < config.cpu_count; i++) { |
90 | for (i = 0; i < config.cpu_count; i++) { |
90 | cpu_t *cpu; |
91 | cpu_t *cpu; |
91 | 92 | ||
Line 116... | Line 117... | ||
116 | } |
117 | } |
117 | spinlock_unlock(&cpu->lock); |
118 | spinlock_unlock(&cpu->lock); |
118 | } |
119 | } |
119 | 120 | ||
120 | tlb_shootdown_ipi_send(); |
121 | tlb_shootdown_ipi_send(); |
121 | - | ||
122 | busy_wait: |
122 | busy_wait: |
123 | for (i = 0; i < config.cpu_count; i++) |
123 | for (i = 0; i < config.cpu_count; i++) { |
124 | if (cpus[i].tlb_active) |
124 | if (cpus[i].tlb_active) |
125 | goto busy_wait; |
125 | goto busy_wait; |
- | 126 | } |
|
126 | } |
127 | } |
127 | 128 | ||
128 | /** Finish TLB shootdown sequence. */ |
129 | /** Finish TLB shootdown sequence. */ |
129 | void tlb_shootdown_finalize(void) |
130 | void tlb_shootdown_finalize(void) |
130 | { |
131 | { |