Rev 1306 | Rev 1329 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1306 | Rev 1309 | ||
---|---|---|---|
Line 347... | Line 347... | ||
347 | */ |
347 | */ |
348 | tlb_shootdown_start(TLB_INVL_PAGES, AS->asid, area->base, area->pages); |
348 | tlb_shootdown_start(TLB_INVL_PAGES, AS->asid, area->base, area->pages); |
349 | tlb_invalidate_pages(AS->asid, area->base, area->pages); |
349 | tlb_invalidate_pages(AS->asid, area->base, area->pages); |
350 | tlb_shootdown_finalize(); |
350 | tlb_shootdown_finalize(); |
351 | 351 | ||
- | 352 | area->attributes |= AS_AREA_ATTR_PARTIAL; |
|
352 | spinlock_unlock(&area->lock); |
353 | spinlock_unlock(&area->lock); |
353 | 354 | ||
354 | /* |
355 | /* |
355 | * Remove the empty area from address space. |
356 | * Remove the empty area from address space. |
356 | */ |
357 | */ |
357 | btree_remove(&AS->as_area_btree, base, NULL); |
358 | btree_remove(&AS->as_area_btree, base, NULL); |
358 | 359 | ||
- | 360 | free(area); |
|
- | 361 | ||
359 | spinlock_unlock(&AS->lock); |
362 | spinlock_unlock(&AS->lock); |
360 | interrupts_restore(ipl); |
363 | interrupts_restore(ipl); |
361 | return 0; |
364 | return 0; |
362 | } |
365 | } |
363 | 366 |