• Mark Brown's avatar
    arm64/mte: Remove asymmetric mode from the prctl() interface · cf220ad6
    Mark Brown authored
    
    
    As pointed out by Evgenii Stepanov one potential issue with the new ABI for
    enabling asymmetric is that if there are multiple places where MTE is
    configured in a process, some of which were compiled with the old prctl.h
    and some of which were compiled with the new prctl.h, there may be problems
    keeping track of which MTE modes are requested. For example some code may
    disable only sync and async modes leaving asymmetric mode enabled when it
    intended to fully disable MTE.
    
    In order to avoid such mishaps remove asymmetric mode from the prctl(),
    instead implicitly allowing it if both sync and async modes are requested.
    This should not disrupt userspace since a process requesting both may
    already see a mix of sync and async modes due to differing defaults between
    CPUs or changes in default while the process is running but it does mean
    that userspace is unable to explicitly request asymmetric mode without
    changing the system default for CPUs.
    Reported-by: default avatarEvgenii Stepanov <eugenis@google.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Reviewed-by: default avatarEvgenii Stepanov <eugenis@google.com>
    Cc: Peter Collingbourne <pcc@google.com>
    Cc: Joey Gouly <joey.gouly@arm.com>
    Cc: Branislav Rankov <branislav.rankov@arm.com>
    Link: https://lore.kernel.org/r/20220309131200.112637-1-broonie@kernel.org
    
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    cf220ad6
mte.c 13.5 KB