|
@@ -476,32 +476,6 @@ void vmem_altmap_free(struct vmem_altmap *altmap, unsigned long nr_pfns)
|
|
altmap->alloc -= nr_pfns;
|
|
altmap->alloc -= nr_pfns;
|
|
}
|
|
}
|
|
|
|
|
|
-struct vmem_altmap *to_vmem_altmap(unsigned long memmap_start)
|
|
|
|
-{
|
|
|
|
- /*
|
|
|
|
- * 'memmap_start' is the virtual address for the first "struct
|
|
|
|
- * page" in this range of the vmemmap array. In the case of
|
|
|
|
- * CONFIG_SPARSEMEM_VMEMMAP a page_to_pfn conversion is simple
|
|
|
|
- * pointer arithmetic, so we can perform this to_vmem_altmap()
|
|
|
|
- * conversion without concern for the initialization state of
|
|
|
|
- * the struct page fields.
|
|
|
|
- */
|
|
|
|
- struct page *page = (struct page *) memmap_start;
|
|
|
|
- struct dev_pagemap *pgmap;
|
|
|
|
-
|
|
|
|
- /*
|
|
|
|
- * Unconditionally retrieve a dev_pagemap associated with the
|
|
|
|
- * given physical address, this is only for use in the
|
|
|
|
- * arch_{add|remove}_memory() for setting up and tearing down
|
|
|
|
- * the memmap.
|
|
|
|
- */
|
|
|
|
- rcu_read_lock();
|
|
|
|
- pgmap = find_dev_pagemap(__pfn_to_phys(page_to_pfn(page)));
|
|
|
|
- rcu_read_unlock();
|
|
|
|
-
|
|
|
|
- return pgmap ? pgmap->altmap : NULL;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* get_dev_pagemap() - take a new live reference on the dev_pagemap for @pfn
|
|
* get_dev_pagemap() - take a new live reference on the dev_pagemap for @pfn
|
|
* @pfn: page frame number to lookup page_map
|
|
* @pfn: page frame number to lookup page_map
|