• Vineet Gupta's avatar
    ARC: [ASID] get_new_mmu_context() to conditionally allocate new ASID · 3daa48d1
    Vineet Gupta authored
    ASID allocation changes/1
    
    This patch does 2 things:
    
    (1) get_new_mmu_context() NOW moves mm->ASID to a new value ONLY if it
        was from a prev allocation cycle/generation OR if mm had no ASID
        allocated (vs. before would unconditionally moving to a new ASID)
    
        Callers desiring unconditional update of ASID, e.g.local_flush_tlb_mm()
        (for parent's address space invalidation at fork) need to first force
        the parent to an unallocated ASID.
    
    (2) get_new_mmu_context() always sets the MMU PID reg with unchanged/new
        ASID value.
    
    The gains are:
    - consolidation of all asid alloc logic into get_new_mmu_context()
    - avoiding code duplication in switch_mm() for PID reg setting
    - Enables future change to fold activate_mm() into switch_mm()
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    3daa48d1
mmu_context.h 6.37 KB