[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] e820: fix clip_to_limit()


  • To: "keir.fraser" <keir.fraser@xxxxxxxxxxxxx>
  • From: Xiao Guangrong <ericxiao.gr@xxxxxxxxx>
  • Date: Tue, 10 Nov 2009 04:04:57 +0800
  • Cc: Xiao Guangrong <xiaoguangrong@xxxxxxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 09 Nov 2009 12:05:30 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :content-type:content-transfer-encoding; b=rzoKW/MSm54butbEKaclthMPzb7BfSQN8+DS7edo82pMh3hpaKGxd0EfGhwHSlB1au Ogk816aOi4wzzt+UPkCeXXZa+5cch4VGYkGk6CP43TFtTxSXYQcm6YIPRoLplGvk3pBi 2IlwNp8jCteMGGbmzO8OFn+XdP/rYm48mBN3w=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

In clip_to_limit(), after memmove(&e820.map[i], &e820.map[i+1], ...), the 
original
e820.map[i+1] become current e820.map[i] but the next loop count is i+1, so the 
original
e820.map[i+1] will be skipped

Actually, e820 is sorted form low to high by sanitize_e820_map(), so we can 
simply break
the loop if we meet the item which overrun "limit"

Signed-off-by: Xiao Guangrong <ericxiao.gr@xxxxxxxxx>

diff -r 93bc06dd1161 -r 5e06f2790d93 xen/arch/x86/e820.c
--- a/xen/arch/x86/e820.c       Tue Nov 10 02:41:59 2009 +0800
+++ b/xen/arch/x86/e820.c       Tue Nov 10 03:51:08 2009 +0800
@@ -389,6 +389,7 @@
                     (e820.nr_map - i - 1) * sizeof(struct e820entry));
             e820.nr_map--;
         }
+       break;
     }

     if ( old_limit )

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.