m68k: remove support for DISCONTIGMEM
DISCONTIGMEM was replaced by FLATMEM with freeing of the unused memory map in v5.11. Remove the support for DISCONTIGMEM entirely. Link: https://lkml.kernel.org/r/20210608091316.3622-5-rppt@kernel.org Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Matt Turner <mattst88@gmail.com> Cc: Richard Henderson <rth@twiddle.net> Cc: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
8b793b4420
Коммит
5ab06e1099
|
@ -408,10 +408,6 @@ config SINGLE_MEMORY_CHUNK
|
|||
order" to save memory that could be wasted for unused memory map.
|
||||
Say N if not sure.
|
||||
|
||||
config ARCH_DISCONTIGMEM_ENABLE
|
||||
depends on BROKEN
|
||||
def_bool MMU && !SINGLE_MEMORY_CHUNK
|
||||
|
||||
config FORCE_MAX_ZONEORDER
|
||||
int "Maximum zone order" if ADVANCED
|
||||
depends on !SINGLE_MEMORY_CHUNK
|
||||
|
@ -451,11 +447,6 @@ config M68K_L2_CACHE
|
|||
depends on MAC
|
||||
default y
|
||||
|
||||
config NODES_SHIFT
|
||||
int
|
||||
default "3"
|
||||
depends on DISCONTIGMEM
|
||||
|
||||
config CPU_HAS_NO_BITFIELDS
|
||||
bool
|
||||
|
||||
|
@ -553,4 +544,3 @@ config CACHE_COPYBACK
|
|||
The ColdFire CPU cache is set into Copy-back mode.
|
||||
endchoice
|
||||
endif
|
||||
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ASM_M68K_MMZONE_H_
|
||||
#define _ASM_M68K_MMZONE_H_
|
||||
|
||||
extern pg_data_t pg_data_map[];
|
||||
|
||||
#define NODE_DATA(nid) (&pg_data_map[nid])
|
||||
#define NODE_MEM_MAP(nid) (NODE_DATA(nid)->node_mem_map)
|
||||
|
||||
#endif /* _ASM_M68K_MMZONE_H_ */
|
|
@ -62,7 +62,7 @@ extern unsigned long _ramend;
|
|||
#include <asm/page_no.h>
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_MMU) || defined(CONFIG_DISCONTIGMEM)
|
||||
#ifndef CONFIG_MMU
|
||||
#define __phys_to_pfn(paddr) ((unsigned long)((paddr) >> PAGE_SHIFT))
|
||||
#define __pfn_to_phys(pfn) PFN_PHYS(pfn)
|
||||
#endif
|
||||
|
|
|
@ -126,26 +126,6 @@ static inline void *__va(unsigned long x)
|
|||
|
||||
extern int m68k_virt_to_node_shift;
|
||||
|
||||
#ifndef CONFIG_DISCONTIGMEM
|
||||
#define __virt_to_node(addr) (&pg_data_map[0])
|
||||
#else
|
||||
extern struct pglist_data *pg_data_table[];
|
||||
|
||||
static inline __attribute_const__ int __virt_to_node_shift(void)
|
||||
{
|
||||
int shift;
|
||||
|
||||
asm (
|
||||
"1: moveq #0,%0\n"
|
||||
m68k_fixup(%c1, 1b)
|
||||
: "=d" (shift)
|
||||
: "i" (m68k_fixup_vnode_shift));
|
||||
return shift;
|
||||
}
|
||||
|
||||
#define __virt_to_node(addr) (pg_data_table[(unsigned long)(addr) >> __virt_to_node_shift()])
|
||||
#endif
|
||||
|
||||
#define virt_to_page(addr) ({ \
|
||||
pfn_to_page(virt_to_pfn(addr)); \
|
||||
})
|
||||
|
@ -153,23 +133,8 @@ static inline __attribute_const__ int __virt_to_node_shift(void)
|
|||
pfn_to_virt(page_to_pfn(page)); \
|
||||
})
|
||||
|
||||
#ifdef CONFIG_DISCONTIGMEM
|
||||
#define pfn_to_page(pfn) ({ \
|
||||
unsigned long __pfn = (pfn); \
|
||||
struct pglist_data *pgdat; \
|
||||
pgdat = __virt_to_node((unsigned long)pfn_to_virt(__pfn)); \
|
||||
pgdat->node_mem_map + (__pfn - pgdat->node_start_pfn); \
|
||||
})
|
||||
#define page_to_pfn(_page) ({ \
|
||||
const struct page *__p = (_page); \
|
||||
struct pglist_data *pgdat; \
|
||||
pgdat = &pg_data_map[page_to_nid(__p)]; \
|
||||
((__p) - pgdat->node_mem_map) + pgdat->node_start_pfn; \
|
||||
})
|
||||
#else
|
||||
#define ARCH_PFN_OFFSET (m68k_memory[0].addr >> PAGE_SHIFT)
|
||||
#include <asm-generic/memory_model.h>
|
||||
#endif
|
||||
|
||||
#define virt_addr_valid(kaddr) ((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory)
|
||||
#define pfn_valid(pfn) virt_addr_valid(pfn_to_virt(pfn))
|
||||
|
|
|
@ -44,28 +44,8 @@ EXPORT_SYMBOL(empty_zero_page);
|
|||
|
||||
int m68k_virt_to_node_shift;
|
||||
|
||||
#ifdef CONFIG_DISCONTIGMEM
|
||||
pg_data_t pg_data_map[MAX_NUMNODES];
|
||||
EXPORT_SYMBOL(pg_data_map);
|
||||
|
||||
pg_data_t *pg_data_table[65];
|
||||
EXPORT_SYMBOL(pg_data_table);
|
||||
#endif
|
||||
|
||||
void __init m68k_setup_node(int node)
|
||||
{
|
||||
#ifdef CONFIG_DISCONTIGMEM
|
||||
struct m68k_mem_info *info = m68k_memory + node;
|
||||
int i, end;
|
||||
|
||||
i = (unsigned long)phys_to_virt(info->addr) >> __virt_to_node_shift();
|
||||
end = (unsigned long)phys_to_virt(info->addr + info->size - 1) >> __virt_to_node_shift();
|
||||
for (; i <= end; i++) {
|
||||
if (pg_data_table[i])
|
||||
pr_warn("overlap at %u for chunk %u\n", i, node);
|
||||
pg_data_table[i] = pg_data_map + node;
|
||||
}
|
||||
#endif
|
||||
node_set_online(node);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче