From b5b8c54880f22722050fd51234319503bbddeb97 Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Tue, 24 Jun 2008 14:58:38 -0700 Subject: [PATCH] --- yaml --- r: 99917 b: refs/heads/master c: 232b957ae93973a5f8619ef61b916744b747478c h: refs/heads/master i: 99915: 610bca3ec30642bcce5c6ec2cd80400166fd185d v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/e820.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 69b9f721ff08..610b7897c42c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d86623a0d55a14e7295e8ca1bd258e0c7f8dcb31 +refs/heads/master: 232b957ae93973a5f8619ef61b916744b747478c diff --git a/trunk/arch/x86/kernel/e820.c b/trunk/arch/x86/kernel/e820.c index 15b4393ff9bf..1b76b25b4d9a 100644 --- a/trunk/arch/x86/kernel/e820.c +++ b/trunk/arch/x86/kernel/e820.c @@ -405,6 +405,9 @@ u64 __init e820_update_range(u64 start, u64 size, unsigned old_type, BUG_ON(old_type == new_type); + if (size > (ULLONG_MAX - start)) + size = ULLONG_MAX - start; + for (i = 0; i < e820.nr_map; i++) { struct e820entry *ei = &e820.map[i]; u64 final_start, final_end; @@ -441,6 +444,9 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, int i; u64 real_removed_size = 0; + if (size > (ULLONG_MAX - start)) + size = ULLONG_MAX - start; + for (i = 0; i < e820.nr_map; i++) { struct e820entry *ei = &e820.map[i]; u64 final_start, final_end;