diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-08-29 12:15:33 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-08-29 12:15:33 +0000 |
commit | 723e6644acd046f87467a6216282cbf0795d7e09 (patch) | |
tree | 14f8b243f94b62f13c297bdf9fdb4d934697e06b /xen | |
parent | d916b7f1fa0b74c9f1b358793949423c3a6ef844 (diff) | |
download | xen-723e6644acd046f87467a6216282cbf0795d7e09.tar.gz xen-723e6644acd046f87467a6216282cbf0795d7e09.tar.bz2 xen-723e6644acd046f87467a6216282cbf0795d7e09.zip |
bitkeeper revision 1.398 (3f4f43e5cA3wYdxQVO2zbUFb51Fpew)
mm.c:
Fixes to descriptor-checking stuff.
Diffstat (limited to 'xen')
-rw-r--r-- | xen/arch/i386/mm.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/xen/arch/i386/mm.c b/xen/arch/i386/mm.c index 2ccb1bda1f..ec7f570d83 100644 --- a/xen/arch/i386/mm.c +++ b/xen/arch/i386/mm.c @@ -170,7 +170,7 @@ int check_descriptor(unsigned long a, unsigned long b) if ( (b & _SEGMENT_G) ) limit <<= 12; if ( ((base + limit) <= base) || - ((base + limit) >= PAGE_OFFSET) ) + ((base + limit) > PAGE_OFFSET) ) goto bad; good: @@ -183,7 +183,7 @@ int check_descriptor(unsigned long a, unsigned long b) long do_set_gdt(unsigned long *frame_list, unsigned int entries) { /* NB. There are 512 8-byte entries per GDT page. */ - unsigned int i, nr_pages = (entries + 511) / 512; + unsigned int i, j, nr_pages = (entries + 511) / 512; unsigned long frames[16], pfn, *gdt_page, flags; long ret = -EINVAL; struct pfn_info *page; @@ -213,8 +213,8 @@ long do_set_gdt(unsigned long *frame_list, unsigned int entries) /* Check all potential GDT entries in the page. */ gdt_page = map_domain_mem(frames[0] << PAGE_SHIFT); - for ( i = 0; i < 512; i++ ) - if ( !check_descriptor(gdt_page[i*2], gdt_page[i*2+1]) ) + for ( j = 0; j < 512; j++ ) + if ( !check_descriptor(gdt_page[j*2], gdt_page[j*2+1]) ) goto out; unmap_domain_mem(gdt_page); } |