Skip to content
  1. Sep 04, 2020
  2. Aug 24, 2020
  3. Jul 15, 2020
  4. Jul 07, 2020
  5. Jul 03, 2020
  6. Jul 02, 2020
  7. Jun 24, 2020
  8. May 29, 2020
  9. May 27, 2020
  10. May 21, 2020
  11. May 20, 2020
  12. May 08, 2020
    • Mark Brown's avatar
      arm64: Set GP bit in kernel page tables to enable BTI for the kernel · c8027285
      Mark Brown authored
      
      
      Now that the kernel is built with BTI annotations enable the feature by
      setting the GP bit in the stage 1 translation tables.  This is done
      based on the features supported by the boot CPU so that we do not need
      to rewrite the translation tables.
      
      In order to avoid potential issues on big.LITTLE systems when there are
      a mix of BTI and non-BTI capable CPUs in the system when we have enabled
      kernel mode BTI we change BTI to be a _STRICT_BOOT_CPU_FEATURE when we
      have kernel BTI.  This will prevent any CPUs that don't support BTI
      being started if the boot CPU supports BTI rather than simply not using
      BTI as we do when supporting BTI only in userspace.  The main concern is
      the possibility of BTYPE being preserved by a CPU that does not
      implement BTI when a thread is migrated to it resulting in an incorrect
      state which could generate an exception when the thread migrates back to
      a CPU that does support BTI.  If we encounter practical systems which
      mix BTI and non-BTI CPUs we will need to revisit this implementation.
      
      Since we currently do not generate landing pads in the BPF JIT we only
      map the base kernel text in this way.
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Link: https://lore.kernel.org/r/20200506195138.22086-5-broonie@kernel.org
      
      
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      c8027285
  13. May 05, 2020
  14. Apr 28, 2020
  15. Mar 18, 2020