Commit 9a8b3d5f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MIPS updates from Thomas Bogendoerfer:

 - added support for QCN550x (ath79)

 - enabled KCSAN

 - removed TX39XX support

 - various cleanups and fixes

* tag 'mips_5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (31 commits)
  MIPS: Fix build error for loongson64 and sgi-ip27
  MIPS: ingenic: correct unit node address
  MIPS: Fix wrong comments in asm/prom.h
  MIPS: Remove redundant definitions of device_tree_init()
  MIPS: Remove redundant check in device_tree_init()
  MIPS: pgalloc: fix memory leak caused by pgd_free()
  MIPS: RB532: fix return value of __setup handler
  MIPS: Only use current_stack_pointer on GCC
  MIPS: boot/compressed: Use array reference for image bounds
  mips: cdmm: Fix refcount leak in mips_cdmm_phys_base
  mips: remove reference to "newer Loongson-3"
  mips: Always permit to build u-boot images
  MIPS: Sanitise Cavium switch cases in TLB handler synthesizers
  DEC: Limit PMAX memory probing to R3k systems
  mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
  MIPS: fix fortify panic when copying asm exception handlers
  mips: ralink: fix a refcount leak in ill_acc_of_setup()
  mips: Implement "current_stack_pointer"
  MIPS: Remove TX39XX support
  MIPS: Modernize READ_IMPLIES_EXEC
  ...
parents 34af78c4 f8f9f21c
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ platform-$(CONFIG_SIBYTE_SB1250) += sibyte/
platform-$(CONFIG_SIBYTE_BCM1x55)	+= sibyte/
platform-$(CONFIG_SIBYTE_BCM1x80)	+= sibyte/
platform-$(CONFIG_SNI_RM)		+= sni/
platform-$(CONFIG_MACH_TX39XX)		+= txx9/
platform-$(CONFIG_MACH_TX49XX)		+= txx9/
platform-$(CONFIG_MACH_VR41XX)		+= vr41xx/

+57 −25
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ config MIPS
	default y
	select ARCH_32BIT_OFF_T if !64BIT
	select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
	select ARCH_HAS_CURRENT_STACK_POINTER if !CC_IS_CLANG || CLANG_VERSION >= 140000
	select ARCH_HAS_DEBUG_VIRTUAL if !64BIT
	select ARCH_HAS_FORTIFY_SOURCE
	select ARCH_HAS_KCOV
@@ -101,6 +102,7 @@ config MIPS
	select TRACE_IRQFLAGS_SUPPORT
	select VIRT_TO_BUS
	select ARCH_HAS_ELFCORE_COMPAT
	select HAVE_ARCH_KCSAN if 64BIT

config MIPS_FIXUP_BIGPHYS_ADDR
	bool
@@ -511,6 +513,7 @@ config MACH_LOONGSON64
	select USE_OF
	select BUILTIN_DTB
	select PCI_HOST_GENERIC
	select HAVE_ARCH_NODEDATA_EXTENSION if NUMA
	help
	  This enables the support of Loongson-2/3 family of machines.

@@ -707,6 +710,7 @@ config SGI_IP27
	select WAR_R10000_LLSC
	select MIPS_L1_CACHE_SHIFT_7
	select NUMA
	select HAVE_ARCH_NODEDATA_EXTENSION
	help
	  This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
	  workstations.  To compile a Linux kernel that runs on these, say Y
@@ -926,9 +930,6 @@ config SNI_RM
	  Technology and now in turn merged with Fujitsu.  Say Y here to
	  support this machine type.

config MACH_TX39XX
	bool "Toshiba TX39 series based machines"

config MACH_TX49XX
	bool "Toshiba TX49 series based machines"
	select WAR_TX49XX_ICACHE_INDEX_INV
@@ -1343,19 +1344,14 @@ config LOONGSON3_ENHANCEMENT
	  new Loongson-3 machines only, please say 'Y' here.

config CPU_LOONGSON3_WORKAROUNDS
	bool "Old Loongson-3 LLSC Workarounds"
	bool "Loongson-3 LLSC Workarounds"
	default y if SMP
	depends on CPU_LOONGSON64
	help
	  Loongson-3 processors have the llsc issues which require workarounds.
	  Without workarounds the system may hang unexpectedly.

	  Newer Loongson-3 will fix these issues and no workarounds are needed.
	  The workarounds have no significant side effect on them but may
	  decrease the performance of the system so this option should be
	  disabled unless the kernel is intended to be run on old systems.

	  If unsure, please say Y.
	  Say Y, unless you know what you are doing.

config CPU_LOONGSON3_CPUCFG_EMULATION
	bool "Emulate the CPUCFG instruction on older Loongson cores"
@@ -1583,12 +1579,6 @@ config CPU_R3000
	  might be a safe bet.  If the resulting kernel does not work,
	  try to recompile with R3000.

config CPU_TX39XX
	bool "R39XX"
	depends on SYS_HAS_CPU_TX39XX
	select CPU_SUPPORTS_32BIT_KERNEL
	select CPU_R3K_TLB

config CPU_VR41XX
	bool "R41xx"
	depends on SYS_HAS_CPU_VR41XX
@@ -1915,9 +1905,6 @@ config SYS_HAS_CPU_P5600
config SYS_HAS_CPU_R3000
	bool

config SYS_HAS_CPU_TX39XX
	bool

config SYS_HAS_CPU_VR41XX
	bool

@@ -2148,7 +2135,7 @@ config PAGE_SIZE_8KB

config PAGE_SIZE_16KB
	bool "16kB"
	depends on !CPU_R3000 && !CPU_TX39XX
	depends on !CPU_R3000
	help
	  Using 16kB page size will result in higher performance kernel at
	  the price of higher memory consumption.  This option is available on
@@ -2167,7 +2154,7 @@ config PAGE_SIZE_32KB

config PAGE_SIZE_64KB
	bool "64kB"
	depends on !CPU_R3000 && !CPU_TX39XX
	depends on !CPU_R3000
	help
	  Using 64kB page size will result in higher performance kernel at
	  the price of higher memory consumption.  This option is available on
@@ -2235,7 +2222,7 @@ config CPU_HAS_PREFETCH

config CPU_GENERIC_DUMP_TLB
	bool
	default y if !(CPU_R3000 || CPU_TX39XX)
	default y if !CPU_R3000

config MIPS_FP_SUPPORT
	bool "Floating Point support" if EXPERT
@@ -2255,7 +2242,7 @@ config MIPS_FP_SUPPORT
config CPU_R2300_FPU
	bool
	depends on MIPS_FP_SUPPORT
	default y if CPU_R3000 || CPU_TX39XX
	default y if CPU_R3000

config CPU_R3K_TLB
	bool
@@ -2520,13 +2507,51 @@ config CPU_HAS_SYNC
#
# CPU non-features
#

# Work around the "daddi" and "daddiu" CPU errata:
#
# - The `daddi' instruction fails to trap on overflow.
#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
#   erratum #23
#
# - The `daddiu' instruction can produce an incorrect result.
#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
#   erratum #41
#   "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum
#   #15
#   "MIPS R4400PC/SC Errata, Processor Revision 1.0", erratum #7
#   "MIPS R4400MC Errata, Processor Revision 1.0", erratum #5
config CPU_DADDI_WORKAROUNDS
	bool

# Work around certain R4000 CPU errata (as implemented by GCC):
#
# - A double-word or a variable shift may give an incorrect result
#   if executed immediately after starting an integer division:
#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
#   erratum #28
#   "MIPS R4000MC Errata, Processor Revision 2.2 and 3.0", erratum
#   #19
#
# - A double-word or a variable shift may give an incorrect result
#   if executed while an integer multiplication is in progress:
#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
#   errata #16 & #28
#
# - An integer division may give an incorrect result if started in
#   a delay slot of a taken branch or a jump:
#   "MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0",
#   erratum #52
config CPU_R4000_WORKAROUNDS
	bool
	select CPU_R4400_WORKAROUNDS

# Work around certain R4400 CPU errata (as implemented by GCC):
#
# - A double-word or a variable shift may give an incorrect result
#   if executed immediately after starting an integer division:
#   "MIPS R4400MC Errata, Processor Revision 1.0", erratum #10
#   "MIPS R4400MC Errata, Processor Revision 2.0 & 3.0", erratum #4
config CPU_R4400_WORKAROUNDS
	bool

@@ -2536,13 +2561,13 @@ config CPU_R4X00_BUGS64

config MIPS_ASID_SHIFT
	int
	default 6 if CPU_R3000 || CPU_TX39XX
	default 6 if CPU_R3000
	default 0

config MIPS_ASID_BITS
	int
	default 0 if MIPS_ASID_BITS_VARIABLE
	default 6 if CPU_R3000 || CPU_TX39XX
	default 6 if CPU_R3000
	default 8

config MIPS_ASID_BITS_VARIABLE
@@ -2685,6 +2710,9 @@ config NUMA
config SYS_SUPPORTS_NUMA
	bool

config HAVE_ARCH_NODEDATA_EXTENSION
	bool

config RELOCATABLE
	bool "Relocatable kernel"
	depends on SYS_SUPPORTS_RELOCATABLE
@@ -3202,6 +3230,10 @@ config MIPS32_N32

	  If unsure, say N.

config CC_HAS_MNO_BRANCH_LIKELY
	def_bool y
	depends on $(cc-option,-mno-branch-likely)

menu "Power management options"

config ARCH_HIBERNATION_POSSIBLE
+0 −5
Original line number Diff line number Diff line
@@ -158,7 +158,6 @@ cflags-y += $(call as-option,-Wa$(comma)-mno-fix-loongson3-llsc,)
# CPU-dependent compiler/assembler options for optimization.
#
cflags-$(CONFIG_CPU_R3000)	+= -march=r3000
cflags-$(CONFIG_CPU_TX39XX)	+= -march=r3900
cflags-$(CONFIG_CPU_R4300)	+= -march=r4300 -Wa,--trap
cflags-$(CONFIG_CPU_VR41XX)	+= -march=r4100 -Wa,--trap
cflags-$(CONFIG_CPU_R4X00)	+= -march=r4600 -Wa,--trap
@@ -340,14 +339,12 @@ drivers-$(CONFIG_PM) += arch/mips/power/
boot-y			:= vmlinux.bin
boot-y			+= vmlinux.ecoff
boot-y			+= vmlinux.srec
ifeq ($(shell expr $(load-y) \< 0xffffffff80000000 2> /dev/null), 0)
boot-y			+= uImage
boot-y			+= uImage.bin
boot-y			+= uImage.bz2
boot-y			+= uImage.gz
boot-y			+= uImage.lzma
boot-y			+= uImage.lzo
endif
boot-y			+= vmlinux.itb
boot-y			+= vmlinux.gz.itb
boot-y			+= vmlinux.bz2.itb
@@ -359,9 +356,7 @@ bootz-y := vmlinuz
bootz-y			+= vmlinuz.bin
bootz-y			+= vmlinuz.ecoff
bootz-y			+= vmlinuz.srec
ifeq ($(shell expr $(zload-y) \< 0xffffffff80000000 2> /dev/null), 0)
bootz-y			+= uzImage.bin
endif
bootz-y			+= vmlinuz.itb

#
+1 −1
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ static int ar2315_misc_irq_map(struct irq_domain *d, unsigned irq,
	return 0;
}

static struct irq_domain_ops ar2315_misc_irq_domain_ops = {
static const struct irq_domain_ops ar2315_misc_irq_domain_ops = {
	.map = ar2315_misc_irq_map,
};

+1 −1
Original line number Diff line number Diff line
@@ -116,7 +116,7 @@ static int ar5312_misc_irq_map(struct irq_domain *d, unsigned irq,
	return 0;
}

static struct irq_domain_ops ar5312_misc_irq_domain_ops = {
static const struct irq_domain_ops ar5312_misc_irq_domain_ops = {
	.map = ar5312_misc_irq_map,
};

Loading