[PULL][Bionic] Address Spectre V2 on Power9 DD2.3

Manoj Iyer manoj.iyer at canonical.com
Fri Apr 12 19:39:02 UTC 2019


BugLink: https://bugs.launchpad.net/bugs/1822870

Please consider the following patches to address Spectre V2 Meltdown 
vulnerability in Power9 DD2.3. The patches were identified as IBM as being 
critical for addressing this issue on Bionic 4.15 kernel. Majority of the 
patches were clean cherry-picks and a few patches requiring minor 
backports.

A test kernel was made available in PPA: ppa:ubuntu-power-triage/lp1822870 
(built for Power and AMD64 archs) and test results based on this kernel on 
Power9 DD2.3 is available in the bug report. We do not have Power9 DD2.3 
hardware in-house, so all testing was done by IBM.

The patches are isolated to the ppc64el architecture, and IBM has not 
reported any regressions, and they have verified that the test kernel 
works as expected.

I have cced Michael Ranweiler at IBM on this pull request so that we can get 
help to address any concerns you might have after SRU review.

The following changes since commit 
c50532b9d7b623ff98aeaf0b848e58adae54ca75:

   UBUNTU: Ubuntu-4.15.0-48.51 (2019-04-02 18:31:55 +0200)

are available in the Git repository at:

   git+ssh://git.launchpad.net/~manjo/+git/bionic-lp1822870 spectre-1822870

for you to fetch changes up to a527672055a2477c4d93bb0cce7a2bdc9e8558b8:

   powerpc: Avoid code patching freed init sections (2019-04-12 13:36:07 
-0500)

----------------------------------------------------------------
Christophe Leroy (2):
       powerpc/lib/code-patching: refactor patch_instruction()
       powerpc/lib/feature-fixups: use raw_patch_instruction()

Diana Craciun (5):
       powerpc/64: Disable the speculation barrier from the command line
       powerpc/64: Make stf barrier PPC_BOOK3S_64 specific.
       powerpc/64: Make meltdown reporting Book3S 64 specific
       powerpc/fsl: Fix spectre_v2 mitigations reporting
       powerpc/fsl: Add nospectre_v2 command line argument

Michael Ellerman (11):
       powerpc: Use barrier_nospec in copy_from_user()
       powerpc/64: Use barrier_nospec in syscall entry
       powerpc64s: Show ori31 availability in spectre_v1 sysfs file not v2
       powerpc/64: Add CONFIG_PPC_BARRIER_NOSPEC
       powerpc/64: Call setup_barrier_nospec() from setup_arch()
       powerpc/asm: Add a patch_site macro & helpers for patching 
instructions
       powerpc/64s: Add new security feature flags for count cache flush
       powerpc/64s: Add support for software count cache flush
       powerpc/pseries: Query hypervisor for count cache flush settings
       powerpc/powernv: Query firmware for count cache flush settings
       powerpc/security: Fix spectre_v2 reporting

Michael Neuling (1):
       powerpc: Avoid code patching freed init sections

Michal Suchanek (4):
       powerpc/64s: Add support for ori barrier_nospec patching
       powerpc/64s: Patch barrier_nospec in modules
       powerpc/64s: Enable barrier_nospec based on firmware settings
       powerpc/64s: Enhance the information in cpu_show_spectre_v1()

Suraj Jitindar Singh (1):
       KVM: PPC: Book3S: Add count cache flush parameters to 
kvmppc_get_cpu_char()

  arch/powerpc/Kconfig                         |   7 +-
  arch/powerpc/include/asm/asm-prototypes.h    |  15 ++
  arch/powerpc/include/asm/barrier.h           |   8 +-
  arch/powerpc/include/asm/code-patching-asm.h |  18 +++
  arch/powerpc/include/asm/code-patching.h     |   3 +
  arch/powerpc/include/asm/feature-fixups.h    |   9 ++
  arch/powerpc/include/asm/hvcall.h            |   2 +
  arch/powerpc/include/asm/security_features.h |   7 +
  arch/powerpc/include/asm/setup.h             |  21 +++
  arch/powerpc/include/asm/uaccess.h           |  11 +-
  arch/powerpc/include/uapi/asm/kvm.h          |   2 +
  arch/powerpc/kernel/Makefile                 |   3 +-
  arch/powerpc/kernel/entry_64.S               |  64 ++++++++
  arch/powerpc/kernel/module.c                 |  10 +-
  arch/powerpc/kernel/security.c               | 215 
+++++++++++++++++++++++++--
  arch/powerpc/kernel/setup-common.c           |   2 +
  arch/powerpc/kernel/vmlinux.lds.S            |  11 +-
  arch/powerpc/kvm/powerpc.c                   |  18 ++-
  arch/powerpc/lib/code-patching.c             |  55 +++++--
  arch/powerpc/lib/feature-fixups.c            |  47 +++++-
  arch/powerpc/mm/mem.c                        |   2 +
  arch/powerpc/platforms/powernv/setup.c       |   7 +
  arch/powerpc/platforms/pseries/setup.c       |   7 +
  23 files changed, 502 insertions(+), 42 deletions(-)
  create mode 100644 arch/powerpc/include/asm/code-patching-asm.h

--
============================
Manoj Iyer
Ubuntu/Canonical
============================



More information about the kernel-team mailing list