Skip to content
  • Will Deacon's avatar
    ARM: 7403/1: tls: remove covert channel via TPIDRURW · 6a1c5312
    Will Deacon authored
    
    
    TPIDRURW is a user read/write register forming part of the group of
    thread registers in more recent versions of the ARM architecture (~v6+).
    
    Currently, the kernel does not touch this register, which allows tasks
    to communicate covertly by reading and writing to the register without
    context-switching affecting its contents.
    
    This patch clears TPIDRURW when TPIDRURO is updated via the set_tls
    macro, which is called directly from __switch_to. Since the current
    behaviour makes the register useless to userspace as far as thread
    pointers are concerned, simply clearing the register (rather than saving
    and restoring it) will not cause any problems to userspace.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    6a1c5312