• James Morse's avatar
    firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp · 54f529a6
    James Morse authored
    SDEI has private events that need registering and enabling on each CPU.
    CPUs can come and go while we are trying to do this. SDEI tries to avoid
    these problems by setting the reregister flag before the register call,
    so any CPUs that come online register the event too. Sticking plaster
    like this doesn't work, as if the register call fails, a CPU that
    subsequently comes online will register the event before reregister
    is cleared.
    
    Take cpus_read_lock() around the register and enable calls. We don't
    want surprise CPUs to do the wrong thing if they race with these calls
    failing.
    Signed-off-by: default avatarJames Morse <james.morse@arm.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    54f529a6
arm_sdei.c 24.9 KB