if (mchunk > mbytes) { 
if (mchunk > mbytes) 
static int kimage_load_normal_segment(struct kimage *image,	struct kexec_segment *segment){	unsigned long maddr;	unsigned long ubytes, mbytes;	int result;	unsigned char *buf;	result = 0;	buf = segment->buf;	ubytes = segment->bufsz;	mbytes = segment->memsz;	maddr = segment->mem;	result = kimage_set_destination(image, maddr);	if (result < 0) {		goto out;	}	while(mbytes) {		struct page *page;		char *ptr;		size_t uchunk, mchunk;		page = kimage_alloc_page(image, GFP_HIGHUSER, maddr);		if (page == 0) {			result  = -ENOMEM;			goto out;		}		result = kimage_add_page(image, page_to_pfn(page) << PAGE_SHIFT);		if (result < 0) {			goto out;		}		ptr = kmap(page);		/* Start with a clear page */		memset(ptr, 0, PAGE_SIZE);		ptr += maddr & ~PAGE_MASK;		mchunk = PAGE_SIZE - (maddr & ~PAGE_MASK);		if (mchunk > mbytes) {			mchunk = mbytes;		}		uchunk = mchunk;		if (uchunk > ubytes) {			uchunk = ubytes;		}		result = copy_from_user(ptr, buf, uchunk);		kunmap(page);		if (result) {			result = (result < 0) ? result : -EIO;			goto out;		}		ubytes -= uchunk;		maddr  += mchunk;		buf    += mchunk;		mbytes -= mchunk;	} out:	return result;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/72414d3f1d22fc3e311b162fca95c430048d38ce/kexec.c/clean/kernel/kexec.c