Commit 8cc8ea22 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'parisc-for-6.18-rc1' of...

Merge tag 'parisc-for-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc updates from Helge Deller:
 "Minor enhancements and fixes, specifically:

   - report emulation and alignment faults via perf

   - add initial kernel-side support for perf_events

   - small initialization fixes in the parisc firmware layer

   - adjust TC* constants and avoid referencing termio structs to avoid
     userspace build errors"

* tag 'parisc-for-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Fix iodc and device path return values on old machines
  parisc: Firmware: Fix returned path for PDC_MODULE_FIND on older machines
  parisc: Add initial kernel-side perf_event support
  parisc: Report software alignment faults via perf
  parisc: Report emulation faults via perf
  parisc: don't reference obsolete termio struct for TC* constants
  parisc: Remove spurious if statement from raw_copy_from_user()
parents fdfa38e9 f4edb5c5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@ config PARISC
	select HAVE_KERNEL_UNCOMPRESSED
	select HAVE_PCI
	select HAVE_PERF_EVENTS
	select HAVE_PERF_REGS
	select HAVE_PERF_USER_STACK_DUMP
	select PERF_USE_VMALLOC
	select HAVE_KERNEL_BZIP2
	select HAVE_KERNEL_GZIP
	select HAVE_KERNEL_LZ4
+7 −1
Original line number Diff line number Diff line
#ifndef __ASM_PARISC_PERF_EVENT_H
#define __ASM_PARISC_PERF_EVENT_H

/* Empty, just to avoid compiling error */
#include <asm/psw.h>

#define perf_arch_fetch_caller_regs(regs, __ip) { \
	(regs)->gr[0] = KERNEL_PSW; \
	(regs)->iaoq[0] = (__ip); \
	asm volatile("copy %%sp, %0\n":"=r"((regs)->gr[30])); \
}

#endif /* __ASM_PARISC_PERF_EVENT_H */
+4 −4
Original line number Diff line number Diff line
@@ -10,10 +10,10 @@
#define TCSETS		_IOW('T', 17, struct termios) /* TCSETATTR */
#define TCSETSW		_IOW('T', 18, struct termios) /* TCSETATTRD */
#define TCSETSF		_IOW('T', 19, struct termios) /* TCSETATTRF */
#define TCGETA		_IOR('T', 1, struct termio)
#define TCSETA		_IOW('T', 2, struct termio)
#define TCSETAW		_IOW('T', 3, struct termio)
#define TCSETAF		_IOW('T', 4, struct termio)
#define TCGETA          0x40125401
#define TCSETA          0x80125402
#define TCSETAW         0x80125403
#define TCSETAF         0x80125404
#define TCSBRK		_IO('T', 5)
#define TCXONC		_IO('T', 6)
#define TCFLSH		_IO('T', 7)
+63 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_ASM_PARISC_PERF_REGS_H
#define _UAPI_ASM_PARISC_PERF_REGS_H

/* see struct user_regs_struct */
enum perf_event_parisc_regs {
	PERF_REG_PARISC_R0,	/* PSW is in gr[0] */
	PERF_REG_PARISC_R1,
	PERF_REG_PARISC_R2,
	PERF_REG_PARISC_R3,
	PERF_REG_PARISC_R4,
	PERF_REG_PARISC_R5,
	PERF_REG_PARISC_R6,
	PERF_REG_PARISC_R7,
	PERF_REG_PARISC_R8,
	PERF_REG_PARISC_R9,
	PERF_REG_PARISC_R10,
	PERF_REG_PARISC_R11,
	PERF_REG_PARISC_R12,
	PERF_REG_PARISC_R13,
	PERF_REG_PARISC_R14,
	PERF_REG_PARISC_R15,
	PERF_REG_PARISC_R16,
	PERF_REG_PARISC_R17,
	PERF_REG_PARISC_R18,
	PERF_REG_PARISC_R19,
	PERF_REG_PARISC_R20,
	PERF_REG_PARISC_R21,
	PERF_REG_PARISC_R22,
	PERF_REG_PARISC_R23,
	PERF_REG_PARISC_R24,
	PERF_REG_PARISC_R25,
	PERF_REG_PARISC_R26,
	PERF_REG_PARISC_R27,
	PERF_REG_PARISC_R28,
	PERF_REG_PARISC_R29,
	PERF_REG_PARISC_R30,
	PERF_REG_PARISC_R31,

	PERF_REG_PARISC_SR0,
	PERF_REG_PARISC_SR1,
	PERF_REG_PARISC_SR2,
	PERF_REG_PARISC_SR3,
	PERF_REG_PARISC_SR4,
	PERF_REG_PARISC_SR5,
	PERF_REG_PARISC_SR6,
	PERF_REG_PARISC_SR7,

	PERF_REG_PARISC_IAOQ0,
	PERF_REG_PARISC_IAOQ1,
	PERF_REG_PARISC_IASQ0,
	PERF_REG_PARISC_IASQ1,

	PERF_REG_PARISC_SAR,	/* CR11 */
	PERF_REG_PARISC_IIR,	/* CR19 */
	PERF_REG_PARISC_ISR,	/* CR20 */
	PERF_REG_PARISC_IOR,	/* CR21 */
	PERF_REG_PARISC_IPSW,	/* CR22 */

	PERF_REG_PARISC_MAX
};

#endif /* _UAPI_ASM_PARISC_PERF_REGS_H */
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ obj-$(CONFIG_GENERIC_ARCH_TOPOLOGY) += topology.o
obj-$(CONFIG_FUNCTION_TRACER)		+= ftrace.o
obj-$(CONFIG_FUNCTION_GRAPH_TRACER)	+= ftrace.o
obj-$(CONFIG_JUMP_LABEL)		+= jump_label.o
obj-$(CONFIG_PERF_EVENTS)		+= perf_event.o perf_regs.o
obj-$(CONFIG_KGDB)			+= kgdb.o
obj-$(CONFIG_KPROBES)			+= kprobes.o
obj-$(CONFIG_KEXEC_CORE)		+= kexec.o relocate_kernel.o
Loading