Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27549068 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull arm64 fixes from Catalin Marinas:

 - Bring initialisation of user space undefined instruction handling
   early (core_initcall) since late_initcall() happens after modprobe in
   initramfs is invoked. Similar fix for fpsimd initialisation

 - Increase the kernel stack when KASAN is enabled

 - Bring the PCI ACS enabling earlier via the
   iort_init_platform_devices()

 - Fix misleading data abort address printing (decimal vs hex)

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: Ensure fpsimd support is ready before userspace is active
  arm64: Ensure the instruction emulation is ready for userspace
  arm64: Use larger stacks when KASAN is selected
  ACPI/IORT: Fix PCI ACS enablement
  arm64: fix misleading data abort decoding
parents 8d473320 ae2e972d
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -95,16 +95,19 @@
#define KERNEL_END        _end

/*
 * The size of the KASAN shadow region. This should be 1/8th of the
 * size of the entire kernel virtual address space.
 * KASAN requires 1/8th of the kernel virtual address space for the shadow
 * region. KASAN can bloat the stack significantly, so double the (minimum)
 * stack size when KASAN is in use.
 */
#ifdef CONFIG_KASAN
#define KASAN_SHADOW_SIZE	(UL(1) << (VA_BITS - 3))
#define KASAN_THREAD_SHIFT	1
#else
#define KASAN_SHADOW_SIZE	(0)
#define KASAN_THREAD_SHIFT	0
#endif

#define MIN_THREAD_SHIFT	14
#define MIN_THREAD_SHIFT	(14 + KASAN_THREAD_SHIFT)

/*
 * VMAP'd stacks are allocated at page granularity, so we must ensure that such
+1 −1
Original line number Diff line number Diff line
@@ -649,4 +649,4 @@ static int __init armv8_deprecated_init(void)
	return 0;
}

late_initcall(armv8_deprecated_init);
core_initcall(armv8_deprecated_init);
+1 −1
Original line number Diff line number Diff line
@@ -1307,4 +1307,4 @@ static int __init enable_mrs_emulation(void)
	return 0;
}

late_initcall(enable_mrs_emulation);
core_initcall(enable_mrs_emulation);
+1 −1
Original line number Diff line number Diff line
@@ -444,4 +444,4 @@ static int __init fpsimd_init(void)

	return 0;
}
late_initcall(fpsimd_init);
core_initcall(fpsimd_init);
+1 −1
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@ static void data_abort_decode(unsigned int esr)
			 (esr & ESR_ELx_SF) >> ESR_ELx_SF_SHIFT,
			 (esr & ESR_ELx_AR) >> ESR_ELx_AR_SHIFT);
	} else {
		pr_alert("  ISV = 0, ISS = 0x%08lu\n", esr & ESR_ELx_ISS_MASK);
		pr_alert("  ISV = 0, ISS = 0x%08lx\n", esr & ESR_ELx_ISS_MASK);
	}

	pr_alert("  CM = %lu, WnR = %lu\n",
Loading