diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-05-12 07:18:13 (GMT) |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-05-12 07:18:13 (GMT) |
commit | eb60b3e5e8dfdd590e586a6fc22daf2f63a7b7e6 (patch) | |
tree | 1b06e2c1beca8f970685eb13096c7a12480526c6 /arch/arc/include/asm/mmzone.h | |
parent | 58fe9c4621b7219e724c0b7af053112f974a08c3 (diff) | |
parent | 53d3bc773eaa7ab1cf63585e76af7ee869d5e709 (diff) | |
download | linux-eb60b3e5e8dfdd590e586a6fc22daf2f63a7b7e6.tar.xz |
Merge branch 'sched/urgent' into sched/core to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/arc/include/asm/mmzone.h')
-rw-r--r-- | arch/arc/include/asm/mmzone.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/arc/include/asm/mmzone.h b/arch/arc/include/asm/mmzone.h new file mode 100644 index 0000000..8e97136 --- /dev/null +++ b/arch/arc/include/asm/mmzone.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef _ASM_ARC_MMZONE_H +#define _ASM_ARC_MMZONE_H + +#ifdef CONFIG_DISCONTIGMEM + +extern struct pglist_data node_data[]; +#define NODE_DATA(nid) (&node_data[nid]) + +static inline int pfn_to_nid(unsigned long pfn) +{ + int is_end_low = 1; + + if (IS_ENABLED(CONFIG_ARC_HAS_PAE40)) + is_end_low = pfn <= virt_to_pfn(0xFFFFFFFFUL); + + /* + * node 0: lowmem: 0x8000_0000 to 0xFFFF_FFFF + * node 1: HIGHMEM w/o PAE40: 0x0 to 0x7FFF_FFFF + * HIGHMEM with PAE40: 0x1_0000_0000 to ... + */ + if (pfn >= ARCH_PFN_OFFSET && is_end_low) + return 0; + + return 1; +} + +static inline int pfn_valid(unsigned long pfn) +{ + int nid = pfn_to_nid(pfn); + + return (pfn <= node_end_pfn(nid)); +} +#endif /* CONFIG_DISCONTIGMEM */ + +#endif |