Rev 742 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 742 | Rev 749 | ||
---|---|---|---|
Line 47... | Line 47... | ||
47 | */ |
47 | */ |
48 | 48 | ||
49 | #include <arch/mm/asid.h> |
49 | #include <arch/mm/asid.h> |
50 | #include <mm/asid.h> |
50 | #include <mm/asid.h> |
51 | #include <mm/as.h> |
51 | #include <mm/as.h> |
- | 52 | #include <genarch/mm/page_ht.h> |
|
52 | #include <mm/tlb.h> |
53 | #include <mm/tlb.h> |
53 | #include <list.h> |
54 | #include <list.h> |
54 | #include <typedefs.h> |
55 | #include <typedefs.h> |
55 | #include <debug.h> |
56 | #include <debug.h> |
56 | 57 | ||
Line 102... | Line 103... | ||
102 | 103 | ||
103 | spinlock_lock(&as->lock); |
104 | spinlock_lock(&as->lock); |
104 | as->asid = next_asid++; |
105 | as->asid = next_asid++; |
105 | spinlock_unlock(&as->lock); |
106 | spinlock_unlock(&as->lock); |
106 | } |
107 | } |
- | 108 | ||
- | 109 | /* |
|
- | 110 | * The page hash table uses VHPT long format PTE's. |
|
- | 111 | * Unfortunatelly, this format has no space to |
|
- | 112 | * store as_t pointer, so it is necessary to |
|
- | 113 | * invalidate the whole structure after all ASIDs |
|
- | 114 | * have been reassigned. The information swept out |
|
- | 115 | * from the page hash table can be later reconstructed |
|
- | 116 | * from as_t structures on demand. |
|
- | 117 | */ |
|
- | 118 | ht_invalidate_all(); |
|
107 | 119 | ||
108 | /* |
120 | /* |
109 | * Finish TLB shootdown. |
121 | * Finish TLB shootdown. |
110 | */ |
122 | */ |
111 | tlb_shootdown_finalize(); |
123 | tlb_shootdown_finalize(); |