|
@@ -956,38 +956,6 @@ efi_memory_present_wrapper(unsigned long start, unsigned long end, void *arg)
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /*
|
|
|
|
|
- * This function checks if the entire range <start,end> is mapped with type.
|
|
|
|
|
- *
|
|
|
|
|
- * Note: this function only works correct if the e820 table is sorted and
|
|
|
|
|
- * not-overlapping, which is the case
|
|
|
|
|
- */
|
|
|
|
|
-int __init
|
|
|
|
|
-e820_all_mapped(unsigned long s, unsigned long e, unsigned type)
|
|
|
|
|
-{
|
|
|
|
|
- u64 start = s;
|
|
|
|
|
- u64 end = e;
|
|
|
|
|
- int i;
|
|
|
|
|
- for (i = 0; i < e820.nr_map; i++) {
|
|
|
|
|
- struct e820entry *ei = &e820.map[i];
|
|
|
|
|
- if (type && ei->type != type)
|
|
|
|
|
- continue;
|
|
|
|
|
- /* is the region (part) in overlap with the current region ?*/
|
|
|
|
|
- if (ei->addr >= end || ei->addr + ei->size <= start)
|
|
|
|
|
- continue;
|
|
|
|
|
- /* if the region is at the beginning of <start,end> we move
|
|
|
|
|
- * start to the end of the region since it's ok until there
|
|
|
|
|
- */
|
|
|
|
|
- if (ei->addr <= start)
|
|
|
|
|
- start = ei->addr + ei->size;
|
|
|
|
|
- /* if start is now at or beyond end, we're done, full
|
|
|
|
|
- * coverage */
|
|
|
|
|
- if (start >= end)
|
|
|
|
|
- return 1; /* we're done */
|
|
|
|
|
- }
|
|
|
|
|
- return 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
/*
|
|
/*
|
|
|
* Find the highest page frame number we have available
|
|
* Find the highest page frame number we have available
|
|
|
*/
|
|
*/
|