• Sebastian Andrzej Siewior's avatar
    efi/x86: drop task_lock() from efi_switch_mm() · 4eda1117
    Sebastian Andrzej Siewior authored
    efi_switch_mm() is a wrapper around switch_mm() which saves current's
    ->active_mm, sets the requests mm as ->active_mm and invokes
    switch_mm().
    I don't think that task_lock() is required during that procedure. It
    protects ->mm which isn't changed here.
    
    It needs to be mentioned that during the whole procedure (switch to
    EFI's mm and back) the preemption needs to be disabled. A context switch
    at this point would reset the cr3 value based on current->mm. Also, this
    function may not be invoked at the same time on a different CPU because
    it would overwrite the efi_scratch.prev_mm information.
    
    Remove task_lock() and also update the comment to reflect it.
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    4eda1117
efi_64.c 25.8 KB