ei->addr > end) 
ei->addr >= end) 
void __init e820_bootmem_free(pg_data_t *pgdat, unsigned long start,unsigned long end){	int i;	for (i = 0; i < e820.nr_map; i++) {		struct e820entry *ei = &e820.map[i]; 		unsigned long last, addr;		if (ei->type != E820_RAM || 		    ei->addr+ei->size <= start || 		    ei->addr > end)			continue;		addr = round_up(ei->addr, PAGE_SIZE);		if (addr < start) 			addr = start;		last = round_down(ei->addr + ei->size, PAGE_SIZE); 		if (last >= end)			last = end; 		if (last > addr && last-addr >= PAGE_SIZE)			free_bootmem_node(pgdat, addr, last-addr);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7c7a3897f678cfafebc8ec0a5e61a814f2f24e42/e820.c/buggy/arch/x86_64/kernel/e820.c