extern void e820__range_add (u64 start, u64 size, enum e820_type type);
extern u64 e820__range_update(u64 start, u64 size, enum e820_type old_type, enum e820_type new_type);
-extern u64 e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type);
+extern void e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type);
extern u64 e820__range_update_table(struct e820_table *t, u64 start, u64 size, enum e820_type old_type, enum e820_type new_type);
extern int e820__update_table(struct e820_table *table);
}
/* Remove a range of memory from the E820 table: */
-__init u64 e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type)
+__init void e820__range_remove(u64 start, u64 size, enum e820_type old_type, bool check_type)
{
u32 idx;
u64 end;
- u64 real_removed_size = 0;
if (size > (ULLONG_MAX - start))
size = ULLONG_MAX - start;
/* Completely covered? */
if (entry->addr >= start && entry_end <= end) {
- real_removed_size += entry->size;
memset(entry, 0, sizeof(*entry));
continue;
}
if (entry->addr < start && entry_end > end) {
e820__range_add(end, entry_end - end, entry->type);
entry->size = start - entry->addr;
- real_removed_size += size;
continue;
}
if (final_start >= final_end)
continue;
- real_removed_size += final_end - final_start;
-
/*
* Left range could be head or tail, so need to update
* the size first:
entry->addr = final_end;
}
- return real_removed_size;
}
__init void e820__update_table_print(void)