Skip to content

Commit f28535c

Browse files
committed
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
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
2 parents 114e3ba + a93a4d6 commit f28535c

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

arch/arm64/kernel/sleep.S

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,20 @@ ENTRY(cpu_resume)
101101
bl el2_setup // if in EL2 drop to EL1 cleanly
102102
/* enable the MMU early - so we can access sleep_save_stash by va */
103103
adr_l lr, __enable_mmu /* __cpu_setup will return here */
104-
ldr x27, =_cpu_resume /* __enable_mmu will branch here */
104+
adr_l x27, _resume_switched /* __enable_mmu will branch here */
105105
adrp x25, idmap_pg_dir
106106
adrp x26, swapper_pg_dir
107107
b __cpu_setup
108108
ENDPROC(cpu_resume)
109109

110+
.pushsection ".idmap.text", "ax"
111+
_resume_switched:
112+
ldr x8, =_cpu_resume
113+
br x8
114+
ENDPROC(_resume_switched)
115+
.ltorg
116+
.popsection
117+
110118
ENTRY(_cpu_resume)
111119
mrs x1, mpidr_el1
112120
adrp x8, mpidr_hash

arch/arm64/mm/dump.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ static void note_page(struct pg_state *st, unsigned long addr, unsigned level,
242242

243243
static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start)
244244
{
245-
pte_t *pte = pte_offset_kernel(pmd, 0);
245+
pte_t *pte = pte_offset_kernel(pmd, 0UL);
246246
unsigned long addr;
247247
unsigned i;
248248

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

255255
static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start)
256256
{
257-
pmd_t *pmd = pmd_offset(pud, 0);
257+
pmd_t *pmd = pmd_offset(pud, 0UL);
258258
unsigned long addr;
259259
unsigned i;
260260

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

272272
static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start)
273273
{
274-
pud_t *pud = pud_offset(pgd, 0);
274+
pud_t *pud = pud_offset(pgd, 0UL);
275275
unsigned long addr;
276276
unsigned i;
277277

arch/arm64/mm/numa.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
#include <linux/module.h>
2424
#include <linux/of.h>
2525

26+
#include <asm/acpi.h>
27+
2628
struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
2729
EXPORT_SYMBOL(node_data);
2830
nodemask_t numa_nodes_parsed __initdata;

0 commit comments

Comments
 (0)