Rev 1851 | Rev 1891 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1851 | Rev 1889 | ||
---|---|---|---|
Line 120... | Line 120... | ||
120 | /* |
120 | /* |
121 | * Notify the address space from wich the ASID |
121 | * Notify the address space from wich the ASID |
122 | * was stolen by invalidating its asid member. |
122 | * was stolen by invalidating its asid member. |
123 | */ |
123 | */ |
124 | as->asid = ASID_INVALID; |
124 | as->asid = ASID_INVALID; |
- | 125 | ||
- | 126 | /* |
|
- | 127 | * If the architecture uses some software cache |
|
- | 128 | * of TLB entries (e.g. TSB on sparc64), the |
|
- | 129 | * cache must be invalidated as well. |
|
- | 130 | */ |
|
- | 131 | as_invalidate_translation_cache(as, 0, 0); |
|
- | 132 | ||
125 | mutex_unlock(&as->lock); |
133 | mutex_unlock(&as->lock); |
126 | 134 | ||
127 | /* |
135 | /* |
128 | * Get the system rid of the stolen ASID. |
136 | * Get the system rid of the stolen ASID. |
129 | */ |
137 | */ |
Line 139... | Line 147... | ||
139 | 147 | ||
140 | asid = asid_find_free(); |
148 | asid = asid_find_free(); |
141 | asids_allocated++; |
149 | asids_allocated++; |
142 | 150 | ||
143 | /* |
151 | /* |
144 | * Purge the allocated rid from TLBs. |
152 | * Purge the allocated ASID from TLBs. |
145 | */ |
153 | */ |
146 | tlb_shootdown_start(TLB_INVL_ASID, asid, 0, 0); |
154 | tlb_shootdown_start(TLB_INVL_ASID, asid, 0, 0); |
147 | tlb_invalidate_asid(asid); |
155 | tlb_invalidate_asid(asid); |
148 | tlb_shootdown_finalize(); |
156 | tlb_shootdown_finalize(); |
149 | } |
157 | } |