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

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

 - Avoid a literal load with the MMU off on the CPU resume path
   (potential inconsistency between cache and RAM)

 - Build error with CONFIG_ACPI=n fixed

 - Compiler warning in the arch/arm64/mm/dump.c code fixed

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: Fix shift warning in arch/arm64/mm/dump.c
  arm64: kernel: avoid literal load of virtual address with MMU off
  arm64: Fix NUMA build error when !CONFIG_ACPI
parents 114e3bae a93a4d62
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -101,12 +101,20 @@ ENTRY(cpu_resume)
	bl	el2_setup		// if in EL2 drop to EL1 cleanly
	/* enable the MMU early - so we can access sleep_save_stash by va */
	adr_l	lr, __enable_mmu	/* __cpu_setup will return here */
	ldr	x27, =_cpu_resume	/* __enable_mmu will branch here */
	adr_l	x27, _resume_switched	/* __enable_mmu will branch here */
	adrp	x25, idmap_pg_dir
	adrp	x26, swapper_pg_dir
	b	__cpu_setup
ENDPROC(cpu_resume)

	.pushsection	".idmap.text", "ax"
_resume_switched:
	ldr	x8, =_cpu_resume
	br	x8
ENDPROC(_resume_switched)
	.ltorg
	.popsection

ENTRY(_cpu_resume)
	mrs	x1, mpidr_el1
	adrp	x8, mpidr_hash
+3 −3
Original line number Diff line number Diff line
@@ -242,7 +242,7 @@ static void note_page(struct pg_state *st, unsigned long addr, unsigned level,

static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start)
{
	pte_t *pte = pte_offset_kernel(pmd, 0);
	pte_t *pte = pte_offset_kernel(pmd, 0UL);
	unsigned long addr;
	unsigned i;

@@ -254,7 +254,7 @@ static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start)

static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start)
{
	pmd_t *pmd = pmd_offset(pud, 0);
	pmd_t *pmd = pmd_offset(pud, 0UL);
	unsigned long addr;
	unsigned i;

@@ -271,7 +271,7 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start)

static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start)
{
	pud_t *pud = pud_offset(pgd, 0);
	pud_t *pud = pud_offset(pgd, 0UL);
	unsigned long addr;
	unsigned i;

+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@
#include <linux/module.h>
#include <linux/of.h>

#include <asm/acpi.h>

struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
EXPORT_SYMBOL(node_data);
nodemask_t numa_nodes_parsed __initdata;