Rev 1380 | Rev 1637 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1380 | Rev 1636 | ||
|---|---|---|---|
| Line 122... | Line 122... | ||
| 122 | 122 | ||
| 123 | /* |
123 | /* |
| 124 | * Get the system rid of the stolen ASID. |
124 | * Get the system rid of the stolen ASID. |
| 125 | */ |
125 | */ |
| 126 | tlb_shootdown_start(TLB_INVL_ASID, asid, 0, 0); |
126 | tlb_shootdown_start(TLB_INVL_ASID, asid, 0, 0); |
| 127 | tlb_shootdown_finalize(); |
- | |
| 128 | tlb_invalidate_asid(asid); |
127 | tlb_invalidate_asid(asid); |
| - | 128 | tlb_shootdown_finalize(); |
|
| 129 | } else { |
129 | } else { |
| 130 | 130 | ||
| 131 | /* |
131 | /* |
| 132 | * There is at least one unallocated ASID. |
132 | * There is at least one unallocated ASID. |
| 133 | * Find it and assign it. |
133 | * Find it and assign it. |
| 134 | */ |
134 | */ |
| 135 | 135 | ||
| 136 | asid = asid_find_free(); |
136 | asid = asid_find_free(); |
| 137 | asids_allocated++; |
137 | asids_allocated++; |
| - | 138 | ||
| - | 139 | /* |
|
| - | 140 | * Purge the allocated rid from TLBs. |
|
| - | 141 | */ |
|
| - | 142 | tlb_shootdown_start(TLB_INVL_ASID, asid, 0, 0); |
|
| - | 143 | tlb_invalidate_asid(asid); |
|
| - | 144 | tlb_shootdown_finalize(); |
|
| 138 | } |
145 | } |
| 139 | 146 | ||
| 140 | spinlock_unlock(&asidlock); |
147 | spinlock_unlock(&asidlock); |
| 141 | 148 | ||
| 142 | return asid; |
149 | return asid; |