Subversion Repositories HelenOS-historic

Rev

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;