linux/arch/powerpc/kernel
Michael Ellerman c9cf5af932 powerpc/security: Fix Speculation_Store_Bypass reporting on Power10
commit 5bcedc5931 upstream.

Nageswara reported that /proc/self/status was showing "vulnerable" for
the Speculation_Store_Bypass feature on Power10, eg:

  $ grep Speculation_Store_Bypass: /proc/self/status
  Speculation_Store_Bypass:       vulnerable

But at the same time the sysfs files, and lscpu, were showing "Not
affected".

This turns out to simply be a bug in the reporting of the
Speculation_Store_Bypass, aka. PR_SPEC_STORE_BYPASS, case.

When SEC_FTR_STF_BARRIER was added, so that firmware could communicate
the vulnerability was not present, the code in ssb_prctl_get() was not
updated to check the new flag.

So add the check for SEC_FTR_STF_BARRIER being disabled. Rather than
adding the new check to the existing if block and expanding the comment
to cover both cases, rewrite the three cases to be separate so they can
be commented separately for clarity.

Fixes: 84ed26fd00 ("powerpc/security: Add a security feature for STF barrier")
Cc: stable@vger.kernel.org # v5.14+
Reported-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Reviewed-by: Russell Currey <ruscur@russell.cc>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230517074945.53188-1-mpe@ellerman.id.au
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2023-07-23 13:53:55 +02:00
..
ptrace powerpc: Don't try to copy PPR for task with NULL pt_regs 2023-03-28 22:11:41 +11:00
syscalls powerpc/32: fix syscall wrappers with 64-bit arguments 2022-11-01 10:24:09 +11:00
trace powerpc/64: vmlinux support building with PCREL addresing 2023-04-20 12:59:21 +10:00
vdso powerpc/vdso: Include CLANG_FLAGS explicitly in ldflags-y 2023-07-19 16:36:59 +02:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
85xx_entry_mapping.S powerpc: Remove CONFIG_FSL_BOOKE 2022-09-26 22:47:37 +10:00
align.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
asm-offsets.c powerpc/64: vmlinux support building with PCREL addresing 2023-04-20 12:59:21 +10:00
audit.c Revert "powerpc/audit: Convert powerpc to AUDIT_ARCH_COMPAT_GENERIC" 2021-10-27 22:30:32 +11:00
btext.c powerpc: Use of_property_read_bool() for boolean properties 2023-03-30 23:36:35 +11:00
cacheinfo.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
cacheinfo.h powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild 2019-06-15 16:52:06 +10:00
compat_audit.c Revert "powerpc/audit: Convert powerpc to AUDIT_ARCH_COMPAT_GENERIC" 2021-10-27 22:30:32 +11:00
cpu_setup_6xx.S powerpc/32: Fix objtool unannotated intra-function call warnings 2022-11-18 19:00:06 +11:00
cpu_setup_44x.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cpu_setup_e500.S powerpc/32: Fix objtool unannotated intra-function call warnings 2022-11-18 19:00:06 +11:00
cpu_setup_pa6t.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
cpu_setup_power.c powerpc/cputable: Move __cpu_setup() prototypes out of cputable.h 2022-09-26 22:26:49 +10:00
cpu_setup_ppc970.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cpu_specs.h powerpc/cputable: Split cpu_specs[] for mpc85xx and e500mc 2022-09-26 23:00:05 +10:00
cpu_specs_8xx.h powerpc/cputable: Split cpu_specs[] out of cputable.h 2022-09-26 22:47:13 +10:00
cpu_specs_40x.h powerpc/cputable: Split cpu_specs[] out of cputable.h 2022-09-26 22:47:13 +10:00
cpu_specs_44x.h powerpc/cputable: Split cpu_specs[] out of cputable.h 2022-09-26 22:47:13 +10:00
cpu_specs_47x.h powerpc/cputable: Split cpu_specs[] out of cputable.h 2022-09-26 22:47:13 +10:00
cpu_specs_85xx.h powerpc/cputable: Split cpu_specs[] for mpc85xx and e500mc 2022-09-26 23:00:05 +10:00
cpu_specs_book3s_32.h powerpc/cputable: Split cpu_specs[] out of cputable.h 2022-09-26 22:47:13 +10:00
cpu_specs_book3s_64.h powerpc/cputable: Split cpu_specs[] out of cputable.h 2022-09-26 22:47:13 +10:00
cpu_specs_e500mc.h powerpc/cputable: Split cpu_specs[] for mpc85xx and e500mc 2022-09-26 23:00:05 +10:00
cputable.c powerpc/cputable: Split cpu_specs[] out of cputable.h 2022-09-26 22:47:13 +10:00
crash_dump.c powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
dawr.c powerpc: Include asm/firmware.h in all users of firmware_has_feature() 2022-06-29 16:45:05 +10:00
dbell.c powerpc/64: Fix perf profiling asynchronous interrupt handlers 2023-01-30 20:07:42 +11:00
dma-iommu.c powerpc/iommu: Incorrect DDW Table is referenced for SR-IOV device 2023-05-17 00:54:55 +10:00
dma-mask.c dma-mapping, powerpc: simplify the arch dma_set_mask override 2019-02-18 22:41:03 +11:00
dma-swiotlb.c swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction 2022-04-18 07:21:12 +02:00
dt_cpu_ftrs.c powerpc: move from strlcpy with unused retval to strscpy 2022-08-26 11:02:20 +10:00
early_32.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
eeh.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
eeh_cache.c powerpc/kernel: Add __init attribute to eligible functions 2021-12-23 22:33:10 +11:00
eeh_driver.c powerpc/eeh: Set channel state after notifying the drivers 2023-02-15 22:41:11 +11:00
eeh_event.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
eeh_pe.c powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
eeh_sysfs.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
entry_32.S powerpc: differentiate kthread from user kernel thread start 2023-04-11 23:13:33 +10:00
entry_64.S powerpc: Curb objtool unannotated intra-function call warnings 2022-11-15 20:11:47 +11:00
epapr_hcalls.S powerpc/epapr: Don't use wrteei on non booke 2023-02-17 22:07:04 +11:00
epapr_paravirt.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
exceptions-64e.S powerpc/64e: Clear gprs on interrupt routine entry on Book3E 2022-12-02 20:46:08 +11:00
exceptions-64s.S powerpc: add CFUNC assembly label annotation 2023-04-20 12:54:24 +10:00
fadump.c powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
firmware.c powerpc: fix unbalanced node refcount in check_kvm_guest() 2021-10-09 00:15:59 +11:00
fpu.S powerpc/64s/interrupt: handle MSR EE and RI in interrupt entry wrapper 2021-12-16 21:31:45 +11:00
head_8xx.S Merge branch 'topic/objtool' into next 2022-12-08 23:57:47 +11:00
head_32.h powerpc: add a definition for the marker offset within the interrupt frame 2022-12-02 17:54:08 +11:00
head_40x.S Merge branch 'topic/objtool' into next 2022-12-08 23:57:47 +11:00
head_44x.S powerpc: allow minimum sized kernel stack frames 2022-12-02 17:54:09 +11:00
head_64.S powerpc/64: vmlinux support building with PCREL addresing 2023-04-20 12:59:21 +10:00
head_85xx.S powerpc/85xx: Fix unannotated intra-function call warning 2023-01-30 15:59:59 +11:00
head_book3s_32.S Merge branch 'topic/objtool' into next 2022-12-08 23:57:47 +11:00
head_booke.h powerpc/32: Include thread_info.h in head_booke.h 2023-04-11 23:13:33 +10:00
hw_breakpoint.c powerpc/8xx: Fix warning in hw_breakpoint_handler() 2022-11-24 23:31:49 +11:00
hw_breakpoint_constraints.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
idle.c powerpc: Simplify sysctl registration for powersave_nap_ctl_table 2023-03-16 15:18:12 +11:00
idle_6xx.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
idle_64e.S powerpc: add ISA v3.0 / v3.1 wait opcode macro 2022-09-28 19:22:10 +10:00
idle_85xx.S powerpc: Cleanup idle for e500 2022-09-26 23:00:14 +10:00
idle_book3s.S powerpc/idle: Don't corrupt back chain when going idle 2021-10-20 21:37:58 +11:00
ima_arch.c powerpc/ima: Fix secure boot rules in ima arch policy 2020-05-07 17:25:54 +10:00
interrupt.c powerpc/interrupt: Don't read MSR from interrupt_exit_kernel_prepare() 2023-07-19 16:36:13 +02:00
interrupt_64.S powerpc: Fix merge conflict between pcrel and copy_thread changes 2023-04-26 16:20:16 +10:00
io-workarounds.c powerpc: Fix reverse map real-mode address lookup with huge vmalloc 2021-05-28 22:54:27 +10:00
io.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
iomap.c powerpc: inline iomap accessors 2020-12-04 01:01:09 +11:00
iommu.c powerpc/iommu: DMA address offset is incorrectly calculated with 2MB TCEs 2023-05-17 00:53:06 +10:00
irq.c powerpc/64: vmlinux support building with PCREL addresing 2023-04-20 12:59:21 +10:00
irq_64.c powerpc/64: Don't call trace_hardirqs_on() in prep_irq_for_idle() 2023-04-20 13:21:49 +10:00
isa-bridge.c powerpc/isa-bridge: Fix ISA mapping when "ranges" is not present 2023-05-08 22:57:10 +10:00
jump_label.c powerpc: Don't use 'struct ppc_inst' to reference instruction location 2021-06-17 00:09:00 +10:00
kdebugfs.c powerpc: rename powerpc_debugfs_root to arch_debugfs_dir 2021-08-13 22:04:26 +10:00
kgdb.c powerpc: add definition for pt_regs offset within an interrupt frame 2022-12-02 17:54:08 +11:00
kprobes-ftrace.c ftrace: disable preemption when recursion locked 2021-10-27 11:21:49 -04:00
kprobes.c powerpc updates for 6.2 2022-12-19 07:13:33 -06:00
kvm.c powerpc: Remove CONFIG_PPC_BOOK3E_MMU 2022-09-26 23:00:14 +10:00
kvm_emul.S powerpc/kvm: Add ifdefs around template code 2019-09-14 00:04:40 +10:00
l2cr_6xx.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
legacy_serial.c powerpc: Use of_property_read_bool() for boolean properties 2023-03-30 23:36:35 +11:00
Makefile powerpc/kcsan: Add exclusions from instrumentation 2023-02-10 22:19:56 +11:00
mce.c powerpc/mce: log the error for all unrecoverable errors 2023-02-10 22:17:34 +11:00
mce_power.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
misc.S powerpc: Avoid link stack corruption in misc asm functions 2021-08-25 13:35:47 +10:00
misc_32.S powerpc: allow minimum sized kernel stack frames 2022-12-02 17:54:09 +11:00
misc_64.S powerpc: add CFUNC assembly label annotation 2023-04-20 12:54:24 +10:00
module.c powerpc: Replace PPC64_ELF_ABI_v{1/2} by CONFIG_PPC64_ELF_ABI_V{1/2} 2022-05-19 23:11:29 +10:00
module_32.c module: replace module_layout with module_memory 2023-03-09 12:55:15 -08:00
module_64.c powerpc/64: modules support building with PCREL addresing 2023-04-20 13:21:42 +10:00
msi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
note.S powerpc: Add PowerPC Capabilities ELF note 2019-08-30 09:40:15 +10:00
nvram_64.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
of_platform.c powerpc/eeh: Remove eeh_dev_phb_init_dynamic() 2020-07-26 23:34:19 +10:00
optprobes.c powerpc/kprobes: Have optimized_callback() use preempt_enable() 2022-11-24 23:31:49 +11:00
optprobes_head.S powerpc: add definition for pt_regs offset within an interrupt frame 2022-12-02 17:54:08 +11:00
paca.c powerpc/64: vmlinux support building with PCREL addresing 2023-04-20 12:59:21 +10:00
pci-common.c PCI: Introduce pci_dev_for_each_resource() 2023-04-04 10:43:52 -05:00
pci-hotplug.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
pci_32.c powerpc/pci: Add option for using pci_to_OF_bus_map 2023-02-07 20:15:23 +11:00
pci_64.c powerpc/pci_64: Init pcibios subsys a bit later 2023-03-14 23:36:27 +11:00
pci_dn.c powerpc/pci_dn: Add missing of_node_put() 2022-09-05 17:30:25 +10:00
pci_of_scan.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
pmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ppc_save_regs.S powerpc: update ppc_save_regs to save current r1 in pt_regs 2023-07-19 16:36:16 +02:00
proc_powerpc.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
process.c powerpc: copy_thread don't set PPR in user interrupt frame regs 2023-04-11 23:13:33 +10:00
prom.c powerpc/pseries: Pass PLPKS password on kexec 2023-02-12 22:12:39 +11:00
prom_init.c powerpc/prom_init: drop PROM_BUG() 2022-09-26 20:58:18 +10:00
prom_init_check.sh kasan, powerpc: don't rename memintrinsics if compiler adds prefixes 2023-03-23 17:18:33 -07:00
prom_parse.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
reloc_32.S powerpc: Avoid link stack corruption in misc asm functions 2021-08-25 13:35:47 +10:00
reloc_64.S powerpc/64: avoid using r13 in relocate 2022-09-28 19:22:13 +10:00
rtas-proc.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
rtas-rtc.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
rtas.c powerpc/rtas: lockdep annotations 2023-03-30 23:36:35 +11:00
rtas_entry.S powerpc/rtas: Fix RTAS MSR[HV] handling for Cell 2022-08-26 08:41:54 +10:00
rtas_flash.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
rtas_pci.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
rtasd.c powerpc/rtas: arch-wide function token lookup conversions 2023-02-13 22:35:03 +11:00
secure_boot.c powerpc/pseries: Detect secure and trusted boot state of the system. 2020-07-16 14:49:53 +10:00
security.c powerpc/security: Fix Speculation_Store_Bypass reporting on Power10 2023-07-23 13:53:55 +02:00
secvar-ops.c powerpc/secvar: Warn and error if multiple secvar ops are set 2023-02-12 22:12:36 +11:00
secvar-sysfs.c powerpc/secvar: Don't print error on ENOENT when reading variables 2023-02-12 22:12:37 +11:00
setup-common.c powerpc/machdep: Define 'compatible' property in ppc_md and use it 2023-03-15 00:52:10 +11:00
setup.h powerpc: Remove CONFIG_PPC_BOOK3E 2022-09-26 23:00:13 +10:00
setup_32.c powerpc: Change CONFIG_E500 to CONFIG_PPC_E500 2022-09-26 23:00:13 +10:00
setup_64.c cpu: Mark panic_smp_self_stop() __noreturn 2023-04-14 17:31:25 +02:00
signal.c powerpc/signal: Report minimum signal frame size to userspace via AT_MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
signal.h powerpc: Don't add __powerpc_ prefix to syscall entry points 2022-10-07 00:59:54 +11:00
signal_32.c powerpc/signal32: Force inlining of __unsafe_save_user_regs() and save_tm_user_regs_unsafe() 2023-07-19 16:36:13 +02:00
signal_64.c powerpc/signal: Update comment for clarity 2022-07-28 16:22:14 +10:00
smp-tbsync.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smp.c start_kernel: Add __no_stack_protector function attribute 2023-07-19 16:35:05 +02:00
stacktrace.c powerpc: allow minimum sized kernel stack frames 2022-12-02 17:54:09 +11:00
static_call.c powerpc/32: Add support for out-of-line static calls 2021-10-22 15:22:05 +11:00
suspend.c PM: hibernate: powerpc: Expose pfn_is_nosave() prototype 2019-06-14 10:48:56 +02:00
swsusp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
swsusp_32.S powerpc/32: Fix objtool unannotated intra-function call warnings 2022-11-18 19:00:06 +11:00
swsusp_64.c powerpc/machdep: Remove stale functions from ppc_md structure 2021-10-22 15:22:05 +11:00
swsusp_85xx.S powerpc: Remove CONFIG_FSL_BOOKE 2022-09-26 22:47:37 +10:00
swsusp_asm64.S powerpc/64: asm use consistent global variable declaration and access 2022-09-28 19:22:12 +10:00
sys_ppc32.c powerpc/32: fix syscall wrappers with 64-bit arguments 2022-11-01 10:24:09 +11:00
syscall.c powerpc: Provide syscall wrapper 2022-09-28 19:22:09 +10:00
syscalls.c powerpc: Adopt SYSCALL_DEFINE for arch-specific syscall handlers 2022-09-28 19:22:08 +10:00
sysfs.c powerpc/sysfs: move to use bus_get_dev_root() 2023-03-17 15:29:34 +01:00
systbl.c powerpc: Don't add __powerpc_ prefix to syscall entry points 2022-10-07 00:59:54 +11:00
tau_6xx.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
time.c powerpc: Make generic_calibrate_decr() the default 2023-03-16 08:56:48 +11:00
tm.S powerpc: add definition for pt_regs offset within an interrupt frame 2022-12-02 17:54:08 +11:00
traps.c powerpc/64s: early boot machine check handler 2022-09-28 19:22:13 +10:00
ucall.S powerpc/kernel: Add ucall_norets() ultravisor call handler 2019-08-30 09:40:15 +10:00
udbg.c powerpc: Add support for early debugging via Serial 16550 console 2022-09-28 19:22:09 +10:00
udbg_16550.c powerpc: Add support for early debugging via Serial 16550 console 2022-09-28 19:22:09 +10:00
uprobes.c powerpc: Reject probes on instructions that can't be single stepped 2022-05-06 00:00:20 +10:00
vdso.c mm: remove zap_page_range and create zap_vma_pages 2023-01-18 17:12:55 -08:00
vdso32_wrapper.S powerpc/vdso: Merge vdso64 and vdso32 into a single directory 2022-02-12 22:47:43 +11:00
vdso64_wrapper.S powerpc/vdso: Merge vdso64 and vdso32 into a single directory 2022-02-12 22:47:43 +11:00
vecemu.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
vector.S powerpc/64: vmlinux support building with PCREL addresing 2023-04-20 12:59:21 +10:00
vmlinux.lds.S powerpc/64: vmlinux support building with PCREL addresing 2023-04-20 12:59:21 +10:00
watchdog.c watchdog/hardlockup: rename some "NMI watchdog" constants/function 2023-07-19 16:35:32 +02:00