• Russell King's avatar
    ARM: oabi-compat: copy semops using __copy_from_user() · 8c8484a1
    Russell King authored
    __get_user_error() is used as a fast accessor to make copying structure
    members as efficient as possible.  However, with software PAN and the
    recent Spectre variant 1, the efficiency is reduced as these are no
    longer fast accessors.
    
    In the case of software PAN, it has to switch the domain register around
    each access, and with Spectre variant 1, it would have to repeat the
    access_ok() check for each access.
    
    Rather than using __get_user_error() to copy each semops element member,
    copy each semops element in full using __copy_from_user().
    Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    8c8484a1
sys_oabi-compat.c 11.9 KB