You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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
This commit is contained in:
@@ -101,12 +101,20 @@ ENTRY(cpu_resume)
|
|||||||
bl el2_setup // if in EL2 drop to EL1 cleanly
|
bl el2_setup // if in EL2 drop to EL1 cleanly
|
||||||
/* enable the MMU early - so we can access sleep_save_stash by va */
|
/* enable the MMU early - so we can access sleep_save_stash by va */
|
||||||
adr_l lr, __enable_mmu /* __cpu_setup will return here */
|
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 x25, idmap_pg_dir
|
||||||
adrp x26, swapper_pg_dir
|
adrp x26, swapper_pg_dir
|
||||||
b __cpu_setup
|
b __cpu_setup
|
||||||
ENDPROC(cpu_resume)
|
ENDPROC(cpu_resume)
|
||||||
|
|
||||||
|
.pushsection ".idmap.text", "ax"
|
||||||
|
_resume_switched:
|
||||||
|
ldr x8, =_cpu_resume
|
||||||
|
br x8
|
||||||
|
ENDPROC(_resume_switched)
|
||||||
|
.ltorg
|
||||||
|
.popsection
|
||||||
|
|
||||||
ENTRY(_cpu_resume)
|
ENTRY(_cpu_resume)
|
||||||
mrs x1, mpidr_el1
|
mrs x1, mpidr_el1
|
||||||
adrp x8, mpidr_hash
|
adrp x8, mpidr_hash
|
||||||
|
|||||||
@@ -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)
|
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 long addr;
|
||||||
unsigned i;
|
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)
|
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 long addr;
|
||||||
unsigned i;
|
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)
|
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 long addr;
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
|
|
||||||
|
#include <asm/acpi.h>
|
||||||
|
|
||||||
struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
|
struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
|
||||||
EXPORT_SYMBOL(node_data);
|
EXPORT_SYMBOL(node_data);
|
||||||
nodemask_t numa_nodes_parsed __initdata;
|
nodemask_t numa_nodes_parsed __initdata;
|
||||||
|
|||||||
Reference in New Issue
Block a user