Rev 1383 | Rev 1389 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1383 | Rev 1384 | ||
|---|---|---|---|
| Line 179... | Line 179... | ||
| 179 | * @param istate Interrupted register context. |
179 | * @param istate Interrupted register context. |
| 180 | * |
180 | * |
| 181 | */ |
181 | */ |
| 182 | void pht_refill(bool data, istate_t *istate) |
182 | void pht_refill(bool data, istate_t *istate) |
| 183 | { |
183 | { |
| 184 | asid_t asid; |
- | |
| 185 | __address badvaddr; |
184 | __address badvaddr; |
| 186 | pte_t *pte; |
185 | pte_t *pte; |
| 187 | int pfcr; |
186 | int pfcr; |
| 188 | as_t *as; |
187 | as_t *as; |
| 189 | bool lock; |
188 | bool lock; |
| Line 202... | Line 201... | ||
| 202 | : "=r" (badvaddr) |
201 | : "=r" (badvaddr) |
| 203 | ); |
202 | ); |
| 204 | } else |
203 | } else |
| 205 | badvaddr = istate->pc; |
204 | badvaddr = istate->pc; |
| 206 | 205 | ||
| 207 | spinlock_lock(&as->lock); |
- | |
| 208 | asid = as->asid; |
- | |
| 209 | spinlock_unlock(&as->lock); |
- | |
| 210 | - | ||
| 211 | page_table_lock(as, lock); |
206 | page_table_lock(as, lock); |
| 212 | 207 | ||
| 213 | pte = find_mapping_and_check(as, lock, badvaddr, istate, &pfcr); |
208 | pte = find_mapping_and_check(as, lock, badvaddr, istate, &pfcr); |
| 214 | if (!pte) { |
209 | if (!pte) { |
| 215 | switch (pfcr) { |
210 | switch (pfcr) { |