Changeset 5552d60 in mainline


Ignore:
Timestamp:
2006-05-28T20:01:55Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a6cb8cb
Parents:
d6e5cbc
Message:

Fight TLB inconsistency by proper placing of tlb_shootdown_start() and tlb_shootdown_finalize() in as.c.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/src/mm/as.c

    rd6e5cbc r5552d60  
    271271                 * No need to check for overlaps.
    272272                 */
     273
     274                /*
     275                 * Start TLB shootdown sequence.
     276                 */
     277                tlb_shootdown_start(TLB_INVL_PAGES, AS->asid, area->base + pages*PAGE_SIZE, area->pages - pages);
    273278
    274279                /*
     
    331336                        }
    332337                }
    333                 /*
    334                  * Invalidate TLB's.
    335                  */
    336                 tlb_shootdown_start(TLB_INVL_PAGES, AS->asid, area->base + pages*PAGE_SIZE, area->pages - pages);
     338
     339                /*
     340                 * Finish TLB shootdown sequence.
     341                 */
    337342                tlb_invalidate_pages(AS->asid, area->base + pages*PAGE_SIZE, area->pages - pages);
    338343                tlb_shootdown_finalize();
     
    384389
    385390        base = area->base;
     391
     392        /*
     393         * Start TLB shootdown sequence.
     394         */
     395        tlb_shootdown_start(TLB_INVL_PAGES, AS->asid, area->base, area->pages);
    386396
    387397        /*
     
    418428                }
    419429        }
    420         btree_destroy(&area->used_space);
    421 
    422         /*
    423          * Invalidate TLB's.
    424          */
    425         tlb_shootdown_start(TLB_INVL_PAGES, AS->asid, area->base, area->pages);
     430
     431        /*
     432         * Finish TLB shootdown sequence.
     433         */
    426434        tlb_invalidate_pages(AS->asid, area->base, area->pages);
    427435        tlb_shootdown_finalize();
     436       
     437        btree_destroy(&area->used_space);
    428438
    429439        area->attributes |= AS_AREA_ATTR_PARTIAL;
Note: See TracChangeset for help on using the changeset viewer.