Commit ab57a611 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MIPS fixes from Ralf Baechle:
 "Here's the first round of MIPS fixes after the merge window:

   - Detect Octeon III's PCI correctly.
   - Fix return value of the MT7620 probing function.
   - Wire up the copy_file_range syscall.
   - Fix 64k page support on 32 bit kernels.
   - Fix the early Coherency Manager probe.
   - Allow only hardware-supported page sizes to be selected for R6000.
   - Fix corner cases for the RDHWR nstruction emulation on old hardware.
   - Fix FPU handling corner cases.
   - Remove stale entry for BCM33xx from the MAINTAINERS file.
   - 32 and 64 bit ELF headers are different, handle them correctly"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
  mips: Differentiate between 32 and 64 bit ELF header
  MIPS: Octeon: Update OCTEON_FEATURE_PCIE for Octeon III
  MIPS: pci-mt7620: Fix return value check in mt7620_pci_probe()
  MIPS: Fix early CM probing
  MIPS: Wire up copy_file_range syscall.
  MIPS: Fix 64k page support for 32 bit kernels.
  MIPS: R6000: Don't allow 64k pages for R6000.
  MIPS: traps.c: Correct microMIPS RDHWR emulation
  MIPS: traps.c: Don't emulate RDHWR in the CpU #0 exception handler
  MAINTAINERS: Remove stale entry for BCM33xx chips
  MIPS: Fix FPU disable with preemption
  MIPS: Properly disable FPU in start_thread()
  MIPS: Fix buffer overflow in syscall_get_arguments()
parents be3f4e0f f4d3d504
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -2362,14 +2362,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi.git
S:	Maintained
N:	bcm2835

BROADCOM BCM33XX MIPS ARCHITECTURE
M:	Kevin Cernekee <cernekee@gmail.com>
L:	linux-mips@linux-mips.org
S:	Maintained
F:	arch/mips/bcm3384/*
F:	arch/mips/include/asm/mach-bcm3384/*
F:	arch/mips/kernel/*bmips*

BROADCOM BCM47XX MIPS ARCHITECTURE
M:	Hauke Mehrtens <hauke@hauke-m.de>
M:	Rafał Miłecki <zajec5@gmail.com>
+1 −1
Original line number Diff line number Diff line
@@ -2085,7 +2085,7 @@ config PAGE_SIZE_32KB

config PAGE_SIZE_64KB
	bool "64kB"
	depends on !CPU_R3000 && !CPU_TX39XX
	depends on !CPU_R3000 && !CPU_TX39XX && !CPU_R6000
	help
	  Using 64kB page size will result in higher performance kernel at
	  the price of higher memory consumption.  This option is available on
+7 −2
Original line number Diff line number Diff line
@@ -227,7 +227,7 @@ struct mips_elf_abiflags_v0 {
	int __res = 1;							\
	struct elfhdr *__h = (hdr);					\
									\
	if (__h->e_machine != EM_MIPS)					\
	if (!mips_elf_check_machine(__h))				\
		__res = 0;						\
	if (__h->e_ident[EI_CLASS] != ELFCLASS32)			\
		__res = 0;						\
@@ -258,7 +258,7 @@ struct mips_elf_abiflags_v0 {
	int __res = 1;							\
	struct elfhdr *__h = (hdr);					\
									\
	if (__h->e_machine != EM_MIPS)					\
	if (!mips_elf_check_machine(__h))				\
		__res = 0;						\
	if (__h->e_ident[EI_CLASS] != ELFCLASS64)			\
		__res = 0;						\
@@ -285,6 +285,11 @@ struct mips_elf_abiflags_v0 {

#endif /* !defined(ELF_ARCH) */

#define mips_elf_check_machine(x) ((x)->e_machine == EM_MIPS)

#define vmcore_elf32_check_arch mips_elf_check_machine
#define vmcore_elf64_check_arch mips_elf_check_machine

struct mips_abi;

extern struct mips_abi mips_abi;
+4 −0
Original line number Diff line number Diff line
@@ -179,6 +179,10 @@ static inline void lose_fpu_inatomic(int save, struct task_struct *tsk)
		if (save)
			_save_fp(tsk);
		__disable_fpu();
	} else {
		/* FPU should not have been left enabled with no owner */
		WARN(read_c0_status() & ST0_CU1,
		     "Orphaned FPU left enabled");
	}
	KSTK_STATUS(tsk) &= ~ST0_CU1;
	clear_tsk_thread_flag(tsk, TIF_USEDFPU);
+2 −1
Original line number Diff line number Diff line
@@ -128,7 +128,8 @@ static inline int octeon_has_feature(enum octeon_feature feature)
	case OCTEON_FEATURE_PCIE:
		return OCTEON_IS_MODEL(OCTEON_CN56XX)
			|| OCTEON_IS_MODEL(OCTEON_CN52XX)
			|| OCTEON_IS_MODEL(OCTEON_CN6XXX);
			|| OCTEON_IS_MODEL(OCTEON_CN6XXX)
			|| OCTEON_IS_MODEL(OCTEON_CN7XXX);

	case OCTEON_FEATURE_SRIO:
		return OCTEON_IS_MODEL(OCTEON_CN63XX)
Loading