} else { 
else 
static int kimage_crash_alloc(struct kimage **rimage, unsigned long entry,	unsigned long nr_segments, struct kexec_segment *segments){	int result;	struct kimage *image;	unsigned long i;	image = NULL;	/* Verify we have a valid entry point */	if ((entry < crashk_res.start) || (entry > crashk_res.end)) {		result = -EADDRNOTAVAIL;		goto out;	}	/* Allocate and initialize a controlling structure */	result = do_kimage_alloc(&image, entry, nr_segments, segments);	if (result) {		goto out;	}	/* Enable the special crash kernel control page	 * allocation policy.	 */	image->control_page = crashk_res.start;	image->type = KEXEC_TYPE_CRASH;	/*	 * Verify we have good destination addresses.  Normally	 * the caller is responsible for making certain we don't	 * attempt to load the new image into invalid or reserved	 * areas of RAM.  But crash kernels are preloaded into a	 * reserved area of ram.  We must ensure the addresses	 * are in the reserved area otherwise preloading the	 * kernel could corrupt things.	 */	result = -EADDRNOTAVAIL;	for (i = 0; i < nr_segments; i++) {		unsigned long mstart, mend;		mstart = image->segment[i].mem;		mend = mstart + image->segment[i].memsz - 1;		/* Ensure we are within the crash kernel limits */		if ((mstart < crashk_res.start) || (mend > crashk_res.end))			goto out;	}	/*	 * Find a location for the control code buffer, and add	 * the vector of segments so that it's pages will also be	 * counted as destination pages.	 */	result = -ENOMEM;	image->control_code_page = kimage_alloc_control_pages(image,		get_order(KEXEC_CONTROL_CODE_SIZE));	if (!image->control_code_page) {		printk(KERN_ERR "Could not allocate control_code_buffer\n");		goto out;	}	result = 0; out:	if (result == 0) {		*rimage = image;	} else {		kfree(image);	}	return result;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/72414d3f1d22fc3e311b162fca95c430048d38ce/kexec.c/clean/kernel/kexec.c