|
@@ -714,15 +714,15 @@ int __init mtrr_cleanup(unsigned address_bits)
|
|
|
if (mtrr_tom2)
|
|
|
x_remove_size = (mtrr_tom2 >> PAGE_SHIFT) - x_remove_base;
|
|
|
|
|
|
- nr_range = x86_get_mtrr_mem_range(range, 0, x_remove_base, x_remove_size);
|
|
|
/*
|
|
|
* [0, 1M) should always be covered by var mtrr with WB
|
|
|
* and fixed mtrrs should take effect before var mtrr for it:
|
|
|
*/
|
|
|
- nr_range = add_range_with_merge(range, RANGE_NUM, nr_range, 0,
|
|
|
+ nr_range = add_range_with_merge(range, RANGE_NUM, 0, 0,
|
|
|
1ULL<<(20 - PAGE_SHIFT));
|
|
|
- /* Sort the ranges: */
|
|
|
- sort_range(range, nr_range);
|
|
|
+ /* add from var mtrr at last */
|
|
|
+ nr_range = x86_get_mtrr_mem_range(range, nr_range,
|
|
|
+ x_remove_base, x_remove_size);
|
|
|
|
|
|
range_sums = sum_ranges(range, nr_range);
|
|
|
printk(KERN_INFO "total RAM covered: %ldM\n",
|