Commit f6464295 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

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

Pull parisc updates from Helge Deller:
 "The gettimeofday() and clock_gettime() syscalls are now available as
  vDSO functions, and Dave added a patch which allows to use NVMe cards
  in the PCI slots as fast and easy alternative to SCSI discs.

  Summary:

   - add gettimeofday() and clock_gettime() vDSO functions

   - enable PCI_MSI_ARCH_FALLBACKS to allow PCI to PCIe bridge adaptor
     with PCIe NVME card to function in parisc machines

   - allow users to reduce kernel unaligned runtime warnings

   - minor code cleanups"

* tag 'parisc-for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Add support for CONFIG_SYSCTL_ARCH_UNALIGN_NO_WARN
  parisc: Use max() to calculate parisc_tlb_flush_threshold
  parisc: Fix warning at drivers/pci/msi/msi.h:121
  parisc: Add 64-bit gettimeofday() and clock_gettime() vDSO functions
  parisc: Add 32-bit gettimeofday() and clock_gettime() vDSO functions
  parisc: Clean up unistd.h file
parents f9bcc61a cbade823
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -454,7 +454,7 @@ ignore-unaligned-usertrap

On architectures where unaligned accesses cause traps, and where this
feature is supported (``CONFIG_SYSCTL_ARCH_UNALIGN_NO_WARN``;
currently, ``arc`` and ``loongarch``), controls whether all
currently, ``arc``, ``parisc`` and ``loongarch``), controls whether all
unaligned traps are logged.

= =============================================================
+2 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ config PARISC
	select GENERIC_CPU_DEVICES if !SMP
	select GENERIC_LIB_DEVMEM_IS_ALLOWED
	select SYSCTL_ARCH_UNALIGN_ALLOW
	select SYSCTL_ARCH_UNALIGN_NO_WARN
	select SYSCTL_EXCEPTION_TRACE
	select HAVE_MOD_ARCH_SPECIFIC
	select MODULES_USE_ELF_RELA
@@ -86,6 +87,7 @@ config PARISC
	select HAVE_SOFTIRQ_ON_OWN_STACK if IRQSTACKS
	select TRACE_IRQFLAGS_SUPPORT
	select HAVE_FUNCTION_DESCRIPTORS if 64BIT
	select PCI_MSI_ARCH_FALLBACKS if PCI_MSI

	help
	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
+15 −39
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
 * sysdeps/unix/sysv/linux/hppa/sysdep.h
 */

#ifdef PIC
#ifndef DONT_USE_PIC
/* WARNING: CANNOT BE USED IN A NOP! */
# define K_STW_ASM_PIC	"       copy %%r19, %%r4\n"
# define K_LDW_ASM_PIC	"       copy %%r4, %%r19\n"
@@ -58,7 +58,7 @@
			"	ldi %1, %%r20\n"			\
			K_LDW_ASM_PIC					\
			: "=r" (__res)					\
			: "i" (SYS_ify(name)) K_ASM_ARGS_##nr   	\
			: "i" (name) K_ASM_ARGS_##nr			\
			: "memory", K_CALL_CLOB_REGS K_CLOB_ARGS_##nr	\
		);							\
		__sys_res = (long)__res;				\
@@ -104,42 +104,18 @@
#define K_CLOB_ARGS_1 K_CLOB_ARGS_2, "%r25"
#define K_CLOB_ARGS_0 K_CLOB_ARGS_1, "%r26"

#define _syscall0(type,name)						\
type name(void)								\
{									\
    return K_INLINE_SYSCALL(name, 0);	                                \
}

#define _syscall1(type,name,type1,arg1)					\
type name(type1 arg1)							\
{									\
    return K_INLINE_SYSCALL(name, 1, arg1);	                        \
}

#define _syscall2(type,name,type1,arg1,type2,arg2)			\
type name(type1 arg1, type2 arg2)					\
{									\
    return K_INLINE_SYSCALL(name, 2, arg1, arg2);	                \
}

#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)		\
type name(type1 arg1, type2 arg2, type3 arg3)				\
{									\
    return K_INLINE_SYSCALL(name, 3, arg1, arg2, arg3);	                \
}

#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4)		\
{									\
    return K_INLINE_SYSCALL(name, 4, arg1, arg2, arg3, arg4);	        \
}

/* select takes 5 arguments */
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)	\
{									\
    return K_INLINE_SYSCALL(name, 5, arg1, arg2, arg3, arg4, arg5);	\
}
#define syscall0(name)						\
	K_INLINE_SYSCALL(name, 0)
#define syscall1(name, arg1)					\
	K_INLINE_SYSCALL(name, 1, arg1)
#define syscall2(name, arg1, arg2)				\
	K_INLINE_SYSCALL(name, 2, arg1, arg2)
#define syscall3(name, arg1, arg2, arg3)			\
	K_INLINE_SYSCALL(name, 3, arg1, arg2, arg3)
#define syscall4(name, arg1, arg2, arg3, arg4)			\
	K_INLINE_SYSCALL(name, 4, arg1, arg2, arg3, arg4)
#define syscall5(name, arg1, arg2, arg3, arg4, arg5)		\
	K_INLINE_SYSCALL(name, 5, arg1, arg2, arg3, arg4, arg5)

#define __ARCH_WANT_NEW_STAT
#define __ARCH_WANT_STAT64
+1 −1
Original line number Diff line number Diff line
@@ -19,6 +19,6 @@ extern struct vdso_data *vdso_data;
/* Default link addresses for the vDSOs */
#define VDSO_LBASE	0

#define VDSO_VERSION_STRING	LINUX_5.18
#define VDSO_VERSION_STRING	LINUX_6.11

#endif /* __PARISC_VDSO_H__ */
+1 −5
Original line number Diff line number Diff line
@@ -611,11 +611,7 @@ void __init parisc_setup_cache_timing(void)
		threshold/1024);

set_tlb_threshold:
	if (threshold > FLUSH_TLB_THRESHOLD)
		parisc_tlb_flush_threshold = threshold;
	else
		parisc_tlb_flush_threshold = FLUSH_TLB_THRESHOLD;

	parisc_tlb_flush_threshold = max(threshold, FLUSH_TLB_THRESHOLD);
	printk(KERN_INFO "TLB flush threshold set to %lu KiB\n",
		parisc_tlb_flush_threshold/1024);
}
Loading