Pull parisc updates from Helge Deller: "The majority of the patches are reverts of previous commits regarding the parisc-specific low level spinlocking code and barrier handling, with which we tried to fix CPU stalls on our build servers. In the end John David Anglin found the culprit: We missed a define for atomic64_set_release(). This seems to have fixed our issues, so now it's good to remove the unnecessary code again. Other than that it's trivial stuff: Spelling fixes, constifications and such" * 'parisc-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: make the log level string for register dumps const parisc: Do not use an ordered store in pa_tlb_lock() Revert "parisc: Revert "Release spinlocks using ordered store"" Revert "parisc: Use ldcw instruction for SMP spinlock release barrier" Revert "parisc: Drop LDCW barrier in CAS code when running UP" Revert "parisc: Improve interrupt handling in arch_spin_lock_flags()" parisc: Replace HTTP links with HTTPS ones parisc: elf.h: delete a duplicated word parisc: Report bad pages as HardwareCorrupted parisc: Convert to BIT_MASK() and BIT_WORD()
		
			
				
	
	
		
			397 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			397 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# SPDX-License-Identifier: GPL-2.0
 | 
						|
config PARISC
 | 
						|
	def_bool y
 | 
						|
	select ARCH_32BIT_OFF_T if !64BIT
 | 
						|
	select ARCH_MIGHT_HAVE_PC_PARPORT
 | 
						|
	select HAVE_IDE
 | 
						|
	select HAVE_OPROFILE
 | 
						|
	select HAVE_FUNCTION_TRACER
 | 
						|
	select HAVE_FUNCTION_GRAPH_TRACER
 | 
						|
	select HAVE_SYSCALL_TRACEPOINTS
 | 
						|
	select ARCH_WANT_FRAME_POINTERS
 | 
						|
	select ARCH_HAS_ELF_RANDOMIZE
 | 
						|
	select ARCH_HAS_STRICT_KERNEL_RWX
 | 
						|
	select ARCH_HAS_UBSAN_SANITIZE_ALL
 | 
						|
	select ARCH_NO_SG_CHAIN
 | 
						|
	select ARCH_SUPPORTS_MEMORY_FAILURE
 | 
						|
	select DMA_OPS
 | 
						|
	select RTC_CLASS
 | 
						|
	select RTC_DRV_GENERIC
 | 
						|
	select INIT_ALL_POSSIBLE
 | 
						|
	select BUG
 | 
						|
	select BUILDTIME_TABLE_SORT
 | 
						|
	select HAVE_PCI
 | 
						|
	select HAVE_PERF_EVENTS
 | 
						|
	select HAVE_KERNEL_BZIP2
 | 
						|
	select HAVE_KERNEL_GZIP
 | 
						|
	select HAVE_KERNEL_LZ4
 | 
						|
	select HAVE_KERNEL_LZMA
 | 
						|
	select HAVE_KERNEL_LZO
 | 
						|
	select HAVE_KERNEL_XZ
 | 
						|
	select GENERIC_ATOMIC64 if !64BIT
 | 
						|
	select GENERIC_IRQ_PROBE
 | 
						|
	select GENERIC_PCI_IOMAP
 | 
						|
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 | 
						|
	select GENERIC_SMP_IDLE_THREAD
 | 
						|
	select GENERIC_CPU_DEVICES
 | 
						|
	select GENERIC_STRNCPY_FROM_USER
 | 
						|
	select SYSCTL_ARCH_UNALIGN_ALLOW
 | 
						|
	select SYSCTL_EXCEPTION_TRACE
 | 
						|
	select HAVE_MOD_ARCH_SPECIFIC
 | 
						|
	select VIRT_TO_BUS
 | 
						|
	select MODULES_USE_ELF_RELA
 | 
						|
	select CLONE_BACKWARDS
 | 
						|
	select TTY # Needed for pdc_cons.c
 | 
						|
	select HAVE_DEBUG_STACKOVERFLOW
 | 
						|
	select HAVE_ARCH_AUDITSYSCALL
 | 
						|
	select HAVE_ARCH_HASH
 | 
						|
	select HAVE_ARCH_JUMP_LABEL
 | 
						|
	select HAVE_ARCH_JUMP_LABEL_RELATIVE
 | 
						|
	select HAVE_ARCH_SECCOMP_FILTER
 | 
						|
	select HAVE_ARCH_TRACEHOOK
 | 
						|
	select HAVE_REGS_AND_STACK_ACCESS_API
 | 
						|
	select GENERIC_SCHED_CLOCK
 | 
						|
	select HAVE_UNSTABLE_SCHED_CLOCK if SMP
 | 
						|
	select GENERIC_CLOCKEVENTS
 | 
						|
	select CPU_NO_EFFICIENT_FFS
 | 
						|
	select NEED_DMA_MAP_STATE
 | 
						|
	select NEED_SG_DMA_LENGTH
 | 
						|
	select HAVE_ARCH_KGDB
 | 
						|
	select HAVE_KPROBES
 | 
						|
	select HAVE_KRETPROBES
 | 
						|
	select HAVE_DYNAMIC_FTRACE if $(cc-option,-fpatchable-function-entry=1,1)
 | 
						|
	select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
 | 
						|
	select HAVE_KPROBES_ON_FTRACE
 | 
						|
	select HAVE_DYNAMIC_FTRACE_WITH_REGS
 | 
						|
 | 
						|
	help
 | 
						|
	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
 | 
						|
	  in many of their workstations & servers (HP9000 700 and 800 series,
 | 
						|
	  and later HP3000 series).  The PA-RISC Linux project home page is
 | 
						|
	  at <https://parisc.wiki.kernel.org>.
 | 
						|
 | 
						|
config CPU_BIG_ENDIAN
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config MMU
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config STACK_GROWSUP
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config ARCH_DEFCONFIG
 | 
						|
	string
 | 
						|
	default "arch/parisc/configs/generic-32bit_defconfig" if !64BIT
 | 
						|
	default "arch/parisc/configs/generic-64bit_defconfig" if 64BIT
 | 
						|
 | 
						|
config GENERIC_LOCKBREAK
 | 
						|
	bool
 | 
						|
	default y
 | 
						|
	depends on SMP && PREEMPTION
 | 
						|
 | 
						|
config ARCH_HAS_ILOG2_U32
 | 
						|
	bool
 | 
						|
	default n
 | 
						|
 | 
						|
config ARCH_HAS_ILOG2_U64
 | 
						|
	bool
 | 
						|
	default n
 | 
						|
 | 
						|
config GENERIC_BUG
 | 
						|
	bool
 | 
						|
	default y
 | 
						|
	depends on BUG
 | 
						|
 | 
						|
config GENERIC_HWEIGHT
 | 
						|
	bool
 | 
						|
	default y
 | 
						|
 | 
						|
config GENERIC_CALIBRATE_DELAY
 | 
						|
	bool
 | 
						|
	default y
 | 
						|
 | 
						|
config TIME_LOW_RES
 | 
						|
	bool
 | 
						|
	depends on SMP
 | 
						|
	default y
 | 
						|
 | 
						|
# unless you want to implement ACPI on PA-RISC ... ;-)
 | 
						|
config PM
 | 
						|
	bool
 | 
						|
 | 
						|
config STACKTRACE_SUPPORT
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config ISA_DMA_API
 | 
						|
	bool
 | 
						|
 | 
						|
config ARCH_MAY_HAVE_PC_FDC
 | 
						|
	bool
 | 
						|
	depends on BROKEN
 | 
						|
	default y
 | 
						|
 | 
						|
config PGTABLE_LEVELS
 | 
						|
	int
 | 
						|
	default 3 if 64BIT && PARISC_PAGE_SIZE_4KB
 | 
						|
	default 2
 | 
						|
 | 
						|
config SYS_SUPPORTS_HUGETLBFS
 | 
						|
	def_bool y if PA20
 | 
						|
 | 
						|
 | 
						|
menu "Processor type and features"
 | 
						|
 | 
						|
choice
 | 
						|
	prompt "Processor type"
 | 
						|
	default PA7000
 | 
						|
 | 
						|
config PA7000
 | 
						|
	bool "PA7000/PA7100"
 | 
						|
	help
 | 
						|
	  This is the processor type of your CPU.  This information is
 | 
						|
	  used for optimizing purposes.  In order to compile a kernel
 | 
						|
	  that can run on all 32-bit PA CPUs (albeit not optimally fast),
 | 
						|
	  you can specify "PA7000" here.
 | 
						|
 | 
						|
	  Specifying "PA8000" here will allow you to select a 64-bit kernel
 | 
						|
	  which is required on some machines.
 | 
						|
 | 
						|
config PA7100LC
 | 
						|
	bool "PA7100LC"
 | 
						|
	help
 | 
						|
	  Select this option for the PCX-L processor, as used in the
 | 
						|
	  712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
 | 
						|
	  D200, D210, D300, D310 and E-class
 | 
						|
 | 
						|
config PA7200
 | 
						|
	bool "PA7200"
 | 
						|
	help
 | 
						|
	  Select this option for the PCX-T' processor, as used in the
 | 
						|
	  C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
 | 
						|
	  K100, K200, K210, K220, K400, K410 and K420
 | 
						|
 | 
						|
config PA7300LC
 | 
						|
	bool "PA7300LC"
 | 
						|
	help
 | 
						|
	  Select this option for the PCX-L2 processor, as used in the
 | 
						|
	  744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
 | 
						|
	  D220, D230, D320 and D330.
 | 
						|
 | 
						|
config PA8X00
 | 
						|
	bool "PA8000 and up"
 | 
						|
	help
 | 
						|
	  Select this option for PCX-U to PCX-W2 processors.
 | 
						|
 | 
						|
endchoice
 | 
						|
 | 
						|
# Define implied options from the CPU selection here
 | 
						|
 | 
						|
config PA20
 | 
						|
	def_bool y
 | 
						|
	depends on PA8X00
 | 
						|
 | 
						|
config PA11
 | 
						|
	def_bool y
 | 
						|
	depends on PA7000 || PA7100LC || PA7200 || PA7300LC
 | 
						|
	select ARCH_HAS_SYNC_DMA_FOR_CPU
 | 
						|
	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
 | 
						|
	select DMA_NONCOHERENT_CACHE_SYNC
 | 
						|
 | 
						|
config PREFETCH
 | 
						|
	def_bool y
 | 
						|
	depends on PA8X00 || PA7200
 | 
						|
 | 
						|
config MLONGCALLS
 | 
						|
	bool "Enable the -mlong-calls compiler option for big kernels"
 | 
						|
	default y if !MODULES || UBSAN || FTRACE
 | 
						|
	default n
 | 
						|
	depends on PA8X00
 | 
						|
	help
 | 
						|
	  If you configure the kernel to include many drivers built-in instead
 | 
						|
	  as modules, the kernel executable may become too big, so that the
 | 
						|
	  linker will not be able to resolve some long branches and fails to link
 | 
						|
	  your vmlinux kernel. In that case enabling this option will help you
 | 
						|
	  to overcome this limit by using the -mlong-calls compiler option.
 | 
						|
 | 
						|
	  Usually you want to say N here, unless you e.g. want to build
 | 
						|
	  a kernel which includes all necessary drivers built-in and which can
 | 
						|
	  be used for TFTP booting without the need to have an initrd ramdisk.
 | 
						|
 | 
						|
	  Enabling this option will probably slow down your kernel.
 | 
						|
 | 
						|
config 64BIT
 | 
						|
	bool "64-bit kernel"
 | 
						|
	depends on PA8X00
 | 
						|
	help
 | 
						|
	  Enable this if you want to support 64bit kernel on PA-RISC platform.
 | 
						|
 | 
						|
	  At the moment, only people willing to use more than 2GB of RAM,
 | 
						|
	  or having a 64bit-only capable PA-RISC machine should say Y here.
 | 
						|
 | 
						|
	  Since there is no 64bit userland on PA-RISC, there is no point to
 | 
						|
	  enable this option otherwise. The 64bit kernel is significantly bigger
 | 
						|
	  and slower than the 32bit one.
 | 
						|
 | 
						|
choice
 | 
						|
	prompt "Kernel page size"
 | 
						|
	default PARISC_PAGE_SIZE_4KB
 | 
						|
 | 
						|
config PARISC_PAGE_SIZE_4KB
 | 
						|
	bool "4KB"
 | 
						|
	help
 | 
						|
	  This lets you select the page size of the kernel.  For best
 | 
						|
	  performance, a page size of 16KB is recommended.  For best
 | 
						|
	  compatibility with 32bit applications, a page size of 4KB should be
 | 
						|
	  selected (the vast majority of 32bit binaries work perfectly fine
 | 
						|
	  with a larger page size).
 | 
						|
 | 
						|
	  4KB                For best 32bit compatibility
 | 
						|
	  16KB               For best performance
 | 
						|
	  64KB               For best performance, might give more overhead.
 | 
						|
 | 
						|
	  If you don't know what to do, choose 4KB.
 | 
						|
 | 
						|
config PARISC_PAGE_SIZE_16KB
 | 
						|
	bool "16KB"
 | 
						|
	depends on PA8X00 && BROKEN
 | 
						|
 | 
						|
config PARISC_PAGE_SIZE_64KB
 | 
						|
	bool "64KB"
 | 
						|
	depends on PA8X00 && BROKEN
 | 
						|
 | 
						|
endchoice
 | 
						|
 | 
						|
config PARISC_SELF_EXTRACT
 | 
						|
	bool "Build kernel as self-extracting executable"
 | 
						|
	default y
 | 
						|
	help
 | 
						|
	  Say Y if you want to build the parisc kernel as a kind of
 | 
						|
	  self-extracting executable.
 | 
						|
 | 
						|
	  If you say N here, the kernel will be compressed with gzip
 | 
						|
	  which can be loaded by the palo bootloader directly too.
 | 
						|
 | 
						|
	  If you don't know what to do here, say Y.
 | 
						|
 | 
						|
config SMP
 | 
						|
	bool "Symmetric multi-processing support"
 | 
						|
	help
 | 
						|
	  This enables support for systems with more than one CPU. If you have
 | 
						|
	  a system with only one CPU, say N. If you have a system with more
 | 
						|
	  than one CPU, say Y.
 | 
						|
 | 
						|
	  If you say N here, the kernel will run on uni- and multiprocessor
 | 
						|
	  machines, but will use only one CPU of a multiprocessor machine.
 | 
						|
	  On a uniprocessor machine, the kernel will run faster if you say N.
 | 
						|
 | 
						|
	  See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
 | 
						|
	  available at <https://www.tldp.org/docs.html#howto>.
 | 
						|
 | 
						|
	  If you don't know what to do here, say N.
 | 
						|
 | 
						|
config PARISC_CPU_TOPOLOGY
 | 
						|
	bool "Support cpu topology definition"
 | 
						|
	depends on SMP
 | 
						|
	default y
 | 
						|
	help
 | 
						|
	  Support PARISC cpu topology definition.
 | 
						|
 | 
						|
config SCHED_MC
 | 
						|
	bool "Multi-core scheduler support"
 | 
						|
	depends on PARISC_CPU_TOPOLOGY && PA8X00
 | 
						|
	help
 | 
						|
	  Multi-core scheduler support improves the CPU scheduler's decision
 | 
						|
	  making when dealing with multi-core CPU chips at a cost of slightly
 | 
						|
	  increased overhead in some places. If unsure say N here.
 | 
						|
 | 
						|
config IRQSTACKS
 | 
						|
	bool "Use separate kernel stacks when processing interrupts"
 | 
						|
	default y
 | 
						|
	help
 | 
						|
	  If you say Y here the kernel will use separate kernel stacks
 | 
						|
	  for handling hard and soft interrupts.  This can help avoid
 | 
						|
	  overflowing the process kernel stacks.
 | 
						|
 | 
						|
config HOTPLUG_CPU
 | 
						|
	bool
 | 
						|
	default y if SMP
 | 
						|
 | 
						|
config ARCH_SELECT_MEMORY_MODEL
 | 
						|
	def_bool y
 | 
						|
	depends on 64BIT
 | 
						|
 | 
						|
config ARCH_SPARSEMEM_ENABLE
 | 
						|
	def_bool y
 | 
						|
	depends on 64BIT
 | 
						|
 | 
						|
config ARCH_FLATMEM_ENABLE
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config ARCH_SPARSEMEM_DEFAULT
 | 
						|
	def_bool y
 | 
						|
	depends on ARCH_SPARSEMEM_ENABLE
 | 
						|
 | 
						|
source "kernel/Kconfig.hz"
 | 
						|
 | 
						|
config COMPAT
 | 
						|
	def_bool y
 | 
						|
	depends on 64BIT
 | 
						|
	select COMPAT_BINFMT_ELF if BINFMT_ELF
 | 
						|
 | 
						|
config SYSVIPC_COMPAT
 | 
						|
	def_bool y
 | 
						|
	depends on COMPAT && SYSVIPC
 | 
						|
 | 
						|
config AUDIT_ARCH
 | 
						|
	def_bool y
 | 
						|
 | 
						|
config NR_CPUS
 | 
						|
	int "Maximum number of CPUs (2-32)"
 | 
						|
	range 2 32
 | 
						|
	depends on SMP
 | 
						|
	default "4"
 | 
						|
 | 
						|
config KEXEC
 | 
						|
	bool "Kexec system call"
 | 
						|
	select KEXEC_CORE
 | 
						|
	help
 | 
						|
	  kexec is a system call that implements the ability to shutdown your
 | 
						|
	  current kernel, and to start another kernel.  It is like a reboot
 | 
						|
	  but it is independent of the system firmware.   And like a reboot
 | 
						|
	  you can start any kernel with it, not just Linux.
 | 
						|
 | 
						|
	  It is an ongoing process to be certain the hardware in a machine
 | 
						|
	  shutdown, so do not be surprised if this code does not
 | 
						|
	  initially work for you.
 | 
						|
 | 
						|
config KEXEC_FILE
 | 
						|
	bool "kexec file based system call"
 | 
						|
	select KEXEC_CORE
 | 
						|
	select KEXEC_ELF
 | 
						|
	help
 | 
						|
	  This enables the kexec_file_load() System call. This is
 | 
						|
	  file based and takes file descriptors as system call argument
 | 
						|
	  for kernel and initramfs as opposed to list of segments as
 | 
						|
	  accepted by previous system call.
 | 
						|
 | 
						|
endmenu
 | 
						|
 | 
						|
 | 
						|
source "drivers/parisc/Kconfig"
 | 
						|
 | 
						|
config SECCOMP
 | 
						|
	def_bool y
 | 
						|
	prompt "Enable seccomp to safely compute untrusted bytecode"
 | 
						|
	help
 | 
						|
	  This kernel feature is useful for number crunching applications
 | 
						|
	  that may need to compute untrusted bytecode during their
 | 
						|
	  execution. By using pipes or other transports made available to
 | 
						|
	  the process as file descriptors supporting the read/write
 | 
						|
	  syscalls, it's possible to isolate those applications in
 | 
						|
	  their own address space using seccomp. Once seccomp is
 | 
						|
	  enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
 | 
						|
	  and the task is only allowed to execute a few safe syscalls
 | 
						|
	  defined by each seccomp mode.
 | 
						|
 | 
						|
	  If unsure, say Y. Only embedded should say N here.
 |