• Martin Schwidefsky's avatar
    [S390] fix tlb flushing vs. concurrent /proc accesses · 050eef36
    Martin Schwidefsky authored
    The tlb flushing code uses the mm_users field of the mm_struct to
    decide if each page table entry needs to be flushed individually with
    IPTE or if a global flush for the mm_struct is sufficient after all page
    table updates have been done. The comment for mm_users says "How many
    users with user space?" but the /proc code increases mm_users after it
    found the process structure by pid without creating a new user process.
    Which makes mm_users useless for the decision between the two tlb
    flusing methods. The current code can be confused to not flush tlb
    entries by a concurrent access to /proc files if e.g. a fork is in
    progres. The solution for this problem is to make the tlb flushing
    logic independent from the mm_users field.
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    050eef36
init.c 5.17 KB