Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 mm changes from Ingo Molnar: "Misc smaller changes all over the map" * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/iommu/dmar: Remove warning for HPET scope type x86/mm/gart: Drop unnecessary check x86/mm/hotplug: Put kernel_physical_mapping_remove() declaration in CONFIG_MEMORY_HOTREMOVE x86/mm/fixmap: Remove unused FIX_CYCLONE_TIMER x86/mm/numa: Simplify some bit mangling x86/mm: Re-enable DEBUG_TLBFLUSH for X86_32 x86/mm/cpa: Cleanup split_large_page() and its callee x86: Drop always empty .text..page_aligned section
This commit is contained in:
@@ -130,9 +130,8 @@ int __init amd_numa_init(void)
|
||||
}
|
||||
|
||||
limit >>= 16;
|
||||
limit <<= 24;
|
||||
limit |= (1<<24)-1;
|
||||
limit++;
|
||||
limit <<= 24;
|
||||
|
||||
if (limit > end)
|
||||
limit = end;
|
||||
|
@@ -1016,6 +1016,7 @@ void __ref vmemmap_free(unsigned long start, unsigned long end)
|
||||
remove_pagetable(start, end, false);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTREMOVE
|
||||
static void __meminit
|
||||
kernel_physical_mapping_remove(unsigned long start, unsigned long end)
|
||||
{
|
||||
@@ -1025,7 +1026,6 @@ kernel_physical_mapping_remove(unsigned long start, unsigned long end)
|
||||
remove_pagetable(start, end, true);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTREMOVE
|
||||
int __ref arch_remove_memory(u64 start, u64 size)
|
||||
{
|
||||
unsigned long start_pfn = start >> PAGE_SHIFT;
|
||||
|
@@ -542,13 +542,14 @@ out_unlock:
|
||||
return do_split;
|
||||
}
|
||||
|
||||
int __split_large_page(pte_t *kpte, unsigned long address, pte_t *pbase)
|
||||
static int
|
||||
__split_large_page(pte_t *kpte, unsigned long address, struct page *base)
|
||||
{
|
||||
pte_t *pbase = (pte_t *)page_address(base);
|
||||
unsigned long pfn, pfninc = 1;
|
||||
unsigned int i, level;
|
||||
pte_t *tmp;
|
||||
pgprot_t ref_prot;
|
||||
struct page *base = virt_to_page(pbase);
|
||||
|
||||
spin_lock(&pgd_lock);
|
||||
/*
|
||||
@@ -633,7 +634,6 @@ int __split_large_page(pte_t *kpte, unsigned long address, pte_t *pbase)
|
||||
|
||||
static int split_large_page(pte_t *kpte, unsigned long address)
|
||||
{
|
||||
pte_t *pbase;
|
||||
struct page *base;
|
||||
|
||||
if (!debug_pagealloc)
|
||||
@@ -644,8 +644,7 @@ static int split_large_page(pte_t *kpte, unsigned long address)
|
||||
if (!base)
|
||||
return -ENOMEM;
|
||||
|
||||
pbase = (pte_t *)page_address(base);
|
||||
if (__split_large_page(kpte, address, pbase))
|
||||
if (__split_large_page(kpte, address, base))
|
||||
__free_page(base);
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user