diff --git a/[refs] b/[refs] index 9e8060d7dd29..9a25bddaca79 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3a58a2a6c879b2e47daafd6e641661c50ac9da5a +refs/heads/master: 976dd4dc99c3eaf45e3802ed46e3cc06a1ad8689 diff --git a/trunk/arch/x86/kernel/e820.c b/trunk/arch/x86/kernel/e820.c index 512f779fc6af..15b4393ff9bf 100644 --- a/trunk/arch/x86/kernel/e820.c +++ b/trunk/arch/x86/kernel/e820.c @@ -425,6 +425,11 @@ u64 __init e820_update_range(u64 start, u64 size, unsigned old_type, e820_add_region(final_start, final_end - final_start, new_type); real_updated_size += final_end - final_start; + + ei->size -= final_end - final_start; + if (ei->addr < final_start) + continue; + ei->addr = final_end; } return real_updated_size; }