for(i = 0; i < image->nr_segments; i++) { 
for (i = 0; i < image->nr_segments; i++) { 
int machine_kexec_prepare(struct kimage *image){	int i;	unsigned long begin, end;	/* limits of segment */	unsigned long low, high;	/* limits of blocked memory range */	struct device_node *node;	unsigned long *basep;	unsigned int *sizep;	if (!ppc_md.hpte_clear_all)		return -ENOENT;	/*	 * Since we use the kernel fault handlers and paging code to	 * handle the virtual mode, we must make sure no destination	 * overlaps kernel static data or bss.	 */	for(i = 0; i < image->nr_segments; i++)		if (image->segment[i].mem < __pa(_end))			return -ETXTBSY;	/*	 * For non-LPAR, we absolutely can not overwrite the mmu hash	 * table, since we are still using the bolted entries in it to	 * do the copy.  Check that here.	 *	 * It is safe if the end is below the start of the blocked	 * region (end <= low), or if the beginning is after the	 * end of the blocked region (begin >= high).  Use the	 * boolean identity !(a || b)  === (!a && !b).	 */	if (htab_address) {		low = __pa(htab_address);		high = low + (htab_hash_mask + 1) * HASH_GROUP_SIZE;		for(i = 0; i < image->nr_segments; i++) {			begin = image->segment[i].mem;			end = begin + image->segment[i].memsz;			if ((begin < high) && (end > low))				return -ETXTBSY;		}	}	/* We also should not overwrite the tce tables */	for (node = of_find_node_by_type(NULL, "pci"); node != NULL;			node = of_find_node_by_type(node, "pci")) {		basep = (unsigned long *)get_property(node, "linux,tce-base",							NULL);		sizep = (unsigned int *)get_property(node, "linux,tce-size",							NULL);		if (basep == NULL || sizep == NULL)			continue;		low = *basep;		high = low + (*sizep);		for(i = 0; i < image->nr_segments; i++) {			begin = image->segment[i].mem;			end = begin + image->segment[i].memsz;			if ((begin < high) && (end > low))				return -ETXTBSY;		}	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/72414d3f1d22fc3e311b162fca95c430048d38ce/machine_kexec.c/buggy/arch/ppc64/kernel/machine_kexec.c