kernel_optimize_test/arch/powerpc/include/asm
Naveen N. Rao 213c550deb powerpc/bpf: Fix use of user_pt_regs in uapi
commit b21bd5a4b130f8370861478d2880985daace5913 upstream.

Trying to build a .c file that includes <linux/bpf_perf_event.h>:
  $ cat test_bpf_headers.c
  #include <linux/bpf_perf_event.h>

throws the below error:
  /usr/include/linux/bpf_perf_event.h:14:28: error: field ‘regs’ has incomplete type
     14 |         bpf_user_pt_regs_t regs;
	|                            ^~~~

This is because we typedef bpf_user_pt_regs_t to 'struct user_pt_regs'
in arch/powerpc/include/uaps/asm/bpf_perf_event.h, but 'struct
user_pt_regs' is not exposed to userspace.

Powerpc has both pt_regs and user_pt_regs structures. However, unlike
arm64 and s390, we expose user_pt_regs to userspace as just 'pt_regs'.
As such, we should typedef bpf_user_pt_regs_t to 'struct pt_regs' for
userspace.

Within the kernel though, we want to typedef bpf_user_pt_regs_t to
'struct user_pt_regs'.

Remove arch/powerpc/include/uapi/asm/bpf_perf_event.h so that the
uapi/asm-generic version of the header is exposed to userspace.
Introduce arch/powerpc/include/asm/bpf_perf_event.h so that we can
typedef bpf_user_pt_regs_t to 'struct user_pt_regs' for use within the
kernel.

Note that this was not showing up with the bpf selftest build since
tools/include/uapi/asm/bpf_perf_event.h didn't include the powerpc
variant.

Fixes: a6460b03f9 ("powerpc/bpf: Fix broken uapi for BPF_PROG_TYPE_PERF_EVENT")
Cc: stable@vger.kernel.org # v4.20+
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
[mpe: Use typical naming for header include guard]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220627191119.142867-1-naveen.n.rao@linux.vnet.ibm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-07 17:52:15 +02:00
..
book3s powerpc/fixmap: Fix VM debug warning on unmap 2022-02-16 12:54:19 +01:00
nohash powerpc/fixmap: Fix VM debug warning on unmap 2022-02-16 12:54:19 +01:00
8xx_immap.h
accounting.h
agp.h
archrandom.h
asm-compat.h
asm-const.h powerpc/uaccess: Don't use "m<>" constraint with GCC 4.9 2020-10-22 14:26:09 +11:00
asm-offsets.h
asm-prototypes.h powerpc/security: Fix link stack flush instruction 2020-10-08 12:50:52 +11:00
async_tx.h
atomic.h
backlight.h
barrier.h powerpc/barrier: Avoid collision with clang's __lwsync macro 2021-07-19 09:44:56 +02:00
bitops.h powerpc/bitops: Fix possible undefined behaviour with fls() and fls64() 2020-12-30 11:54:16 +01:00
bootx.h
bpf_perf_event.h powerpc/bpf: Fix use of user_pt_regs in uapi 2022-07-07 17:52:15 +02:00
btext.h
bug.h
bugs.h
cache.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
cacheflush.h powerpc: Rewrite 4xx flush_cache_instruction() in C 2020-09-02 11:00:21 +10:00
cell-pmu.h
cell-regs.h
checksum.h ppc: propagate the calling conventions change down to csum_partial_copy_generic() 2020-08-20 15:45:22 -04:00
cmpxchg.h
code-patching-asm.h
code-patching.h powerpc/lib: Add helper to check if offset is within conditional branch range 2021-11-18 14:04:29 +01:00
compat.h compat: lift compat_s64 and compat_u64 to <asm-generic/compat.h> 2020-09-17 13:00:46 -04:00
context_tracking.h
copro.h
cpm.h
cpm1.h powerpc/8xx: Fix early debug when SMC1 is relocated 2020-12-30 11:54:16 +01:00
cpm2.h
cpu_has_feature.h powerpc: Force inlining of cpu_has_feature() to avoid build failure 2021-03-25 09:04:14 +01:00
cpu_setup_power.h powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C 2022-01-27 10:54:05 +01:00
cpufeature.h
cpuidle.h
cputable.h powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE 2020-12-30 11:54:16 +01:00
cputhreads.h KVM: PPC: Book3S HV: Fix TLB management on SMT8 POWER9 and POWER10 processors 2021-07-14 16:55:55 +02:00
cputime.h
crashdump-ppc64.h
current.h
dbdma.h
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h powerpc/4xx: Fix build errors from mfdcr() 2021-03-30 14:31:47 +02:00
dcr-regs.h
dcr.h
debug.h
debugfs.h
delay.h powerpc/time: Avoid using get_tbl() and get_tbu() internally 2020-10-08 21:17:15 +11:00
device.h IOMMU Updates for Linux v5.9 2020-08-11 14:13:24 -07:00
disassemble.h
dma-direct.h dma-direct: rename and cleanup __phys_to_dma 2020-09-11 09:14:43 +02:00
dma.h
drmem.h powerpc/drmem: Make lmb_size 64 bit 2020-10-08 12:50:52 +11:00
dt_cpu_ftrs.h
dtl.h
edac.h
eeh_event.h
eeh.h powerpc/eeh: Delete eeh_pe->config_addr 2020-10-07 22:34:47 +11:00
ehv_pic.h
elf.h
elfnote.h
emergency-restart.h
emulated_ops.h
epapr_hcalls.h
exception-64e.h
exception-64s.h powerpc/64s: fix scv entry fallback flush vs interrupt 2021-01-27 11:55:12 +01:00
exec.h
extable.h
fadump-internal.h
fadump.h
fb.h
feature-fixups.h powerpc/64s: fix scv entry fallback flush vs interrupt 2021-01-27 11:55:12 +01:00
firmware.h powerpc: Refactor is_kvm_guest() declaration to new header 2021-11-18 14:04:17 +01:00
fixmap.h powerpc/fixmap: Fix VM debug warning on unmap 2022-02-16 12:54:19 +01:00
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_hcalls.h
fsl_lbc.h
fsl_pamu_stash.h
fsl_pm.h
ftrace.h powerpc/ftrace: Remove ftrace init tramp once kernel init is complete 2022-07-02 16:39:25 +02:00
futex.h
grackle.h
hardirq.h
head-64.h
heathrow.h
highmem.h
hmi.h
hugetlb.h
hvcall.h powerpc/pseries: Get entry and uaccess flush required bits from H_GET_CPU_CHARACTERISTICS 2022-01-20 09:17:52 +01:00
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h powerpc/watchpoint: Fix exception handling for CONFIG_HAVE_HW_BREAKPOINT=N 2020-09-15 22:13:20 +10:00
hw_irq.h powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC 2022-01-27 10:54:05 +01:00
hydra.h
i8259.h
ibmebus.h
icswx.h powerpc/nx: Don't pack struct coprocessor_request_block 2020-08-25 01:31:33 +10:00
ide.h
idle.h
ima.h
imc-pmu.h
immap_cpm2.h
inst.h
io_event_irq.h
io-defs.h
io-workarounds.h
io.h powerpc: Fix build errors with newer binutils 2022-04-08 14:40:37 +02:00
iommu.h dma-mapping: split <linux/dma-mapping.h> 2020-10-06 07:07:03 +02:00
ipic.h
irq_work.h
irq.h powerpc/irq: Drop forward declaration of struct irqaction 2020-09-02 11:00:19 +10:00
irqflags.h
isa-bridge.h
jump_label.h
kasan.h powerpc/kasan: Fix KASAN_SHADOW_START on BOOK3S_32 2020-08-18 13:39:52 +10:00
Kbuild local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
kdebug.h
kdump.h
kexec_ranges.h
kexec.h powerpc/kexec_file: fix FDT size estimation for kdump kernel 2021-03-04 11:38:39 +01:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h
kup.h powerpc: Only include kup-radix.h for 64-bit Book3S 2020-11-19 23:47:20 +11:00
kvm_asm.h
kvm_book3s_32.h
kvm_book3s_64.h
kvm_book3s_asm.h
kvm_book3s_uvmem.h
kvm_book3s.h
kvm_booke_hv_asm.h
kvm_booke.h
kvm_fpu.h
kvm_guest.h powerpc: Fix is_kvm_guest() / kvm_para_available() 2021-11-18 14:04:17 +01:00
kvm_host.h KVM: PPC: Book3S HV: XICS: Replace the 'destroy' method by a 'release' method 2020-09-03 14:12:48 +10:00
kvm_para.h powerpc: Reintroduce is_kvm_guest() as a fast-path check 2021-11-18 14:04:17 +01:00
kvm_ppc.h
libata-portmap.h
linkage.h
livepatch.h
local.h
lppaca.h
lv1call.h
machdep.h powerpc/pci: Add ppc_md.discover_phbs() 2021-03-17 17:06:23 +01:00
macio.h
mc146818rtc.h
mce.h powerpc/kernel: Cleanup machine check function declarations 2020-08-17 14:13:18 +10:00
mediabay.h
mem_encrypt.h
membarrier.h
mm-arch-hooks.h
mman.h powerpc/64s: Disallow PROT_SAO in LPARs by default 2020-08-24 14:12:54 +10:00
mmiowb.h
mmu_context.h powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM 2020-09-16 12:24:37 +10:00
mmu.h
mmzone.h mm: fix phys_to_target_node() and memory_add_physaddr_to_nid() exports 2020-11-22 10:48:22 -08:00
module.h
module.lds.h kbuild: preprocess module linker script 2020-09-25 00:36:41 +09:00
mpc5xxx.h
mpc6xx.h
mpc52xx_psc.h
mpc52xx.h
mpc85xx.h
mpc5121.h
mpc8260.h
mpic_msgr.h
mpic_timer.h
mpic.h
msi_bitmap.h
nmi.h
nvram.h
ohare.h
opal-api.h
opal.h
oprofile_impl.h
paca.h
page_32.h
page_64.h
page.h powerpc/64: Only WARN if __pa()/__va() called with bad addresses 2022-06-09 10:21:17 +02:00
paravirt.h powerpc/pseries: Fix hcall tracing recursion in pv queued spinlocks 2021-05-26 12:06:49 +02:00
parport.h
pasemi_dma.h
pci-bridge.h Revert "powerpc/pci: unmap legacy INTx interrupts when a PHB is removed" 2020-10-15 13:42:49 +11:00
pci.h dma-mapping: split <linux/dma-mapping.h> 2020-10-06 07:07:03 +02:00
percpu.h
perf_event_fsl_emb.h
perf_event_server.h powerpc/perf: Add support for outputting extended regs in perf intr_regs 2020-08-17 13:11:22 +10:00
perf_event.h powerpc/perf: Add support for outputting extended regs in perf intr_regs 2020-08-17 13:11:22 +10:00
pgalloc.h
pgtable-be-types.h
pgtable-types.h
pgtable.h
pkeys.h
plpar_wrappers.h
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs are live 2021-09-18 13:40:15 +02:00
pmi.h
pnv-ocxl.h ocxl: Remove custom service to allocate interrupts 2020-08-25 01:31:31 +10:00
pnv-pci.h
powernv.h
ppc_asm.h powerpc: Remove support for PowerPC 601 2020-10-08 21:17:13 +11:00
ppc-opcode.h powerpc/mm: Switch obsolete dssall to .long 2022-06-14 18:32:46 +02:00
ppc-pci.h
ppc4xx.h
probes.h
processor.h Merge branch 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-10-22 09:59:21 -07:00
prom.h
ps3.h powerpc/ps3: Add dma_mask to ps3_dma_region 2021-07-20 16:05:42 +02:00
ps3av.h
ps3gpu.h
ps3stor.h
pte-walk.h
ptrace.h powerpc/64s/syscall: Fix ptrace syscall info with scv syscalls 2021-05-26 12:06:53 +02:00
qspinlock_paravirt.h
qspinlock.h
reg_8xx.h
reg_a2.h
reg_booke.h powerpc/time: Remove ifdef in get_dec() and set_dec() 2020-10-08 21:17:14 +11:00
reg_fsl_emb.h
reg.h powerpc/perf: MMCR0 control for PMU registers under PMCC=00 2022-01-27 10:54:05 +01:00
rheap.h
rio.h
rtas-types.h
rtas.h
runlatch.h
seccomp.h
sections.h
secure_boot.h
security_features.h powerpc/security: Add a helper to query stf_barrier type 2021-11-18 14:04:30 +01:00
secvar.h
serial.h
setjmp.h
setup.h powerpc/64s: flush L1D after user accesses 2020-11-19 23:47:18 +11:00
sfp-machine.h
shmparam.h
signal.h
simple_spinlock_types.h
simple_spinlock.h
slice.h
smp.h powerpc/smp: Reintroduce cpu_core_mask 2021-05-14 09:50:39 +02:00
smu.h
sparsemem.h mm: fix phys_to_target_node() and memory_add_physaddr_to_nid() exports 2020-11-22 10:48:22 -08:00
spinlock_types.h
spinlock.h
spu_csa.h
spu_info.h
spu_priv1.h
spu.h
sstep.h
stackprotector.h
stacktrace.h
string.h x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}() 2020-10-06 11:18:04 +02:00
svm.h powerpc/pseries/svm: Allocate SWIOTLB buffer anywhere in memory 2020-09-14 23:07:14 +10:00
swab.h
swiotlb.h
switch_to.h powerpc: Fix missing declaration of [en/dis]able_kernel_vsx() 2021-03-17 17:06:35 +01:00
synch.h powerpc/64s: Add cp_abort after tlbiel to invalidate copy-buffer address 2020-10-06 23:22:23 +11:00
syscall.h powerpc/64s/syscall: Fix ptrace syscall info with scv syscalls 2021-05-26 12:06:53 +02:00
syscalls.h
task_size_32.h
task_size_64.h
tce.h
termios.h
thread_info.h powerpc/kasan: Force thread size increase with KASAN 2022-06-14 18:32:39 +02:00
time.h powerpc/time: Make get_tb() common to PPC32 and PPC64 2020-10-08 21:17:16 +11:00
timex.h powerpc: define get_cycles macro for arch-override 2022-05-30 09:33:41 +02:00
tlb.h powerpc/64s/radix: Fix mm_cpumask trimming race vs kthread_use_mm 2020-09-16 12:24:37 +10:00
tlbflush.h
tm.h
topology.h powerpc/numa: Fix build when CONFIG_NUMA=n 2020-11-06 14:16:19 +11:00
trace_clock.h
trace.h
tsi108_irq.h
tsi108_pci.h
tsi108.h
types.h
uaccess.h powerpc: Fix build errors with newer binutils 2022-04-08 14:40:37 +02:00
udbg.h
uic.h
ultravisor-api.h
ultravisor.h
unaligned.h
uninorth.h
unistd.h
uprobes.h
user.h
vas.h powerpc/powernv/vas: Assign real address to rx_fifo in vas_rx_win_attr 2022-06-09 10:20:58 +02:00
vdso_datapage.h
vdso.h
vermagic.h
vga.h
vio.h
vmalloc.h
word-at-a-time.h
xics.h
xive-regs.h
xive.h
xmon.h
xor_altivec.h
xor.h