kfree((void *) mem); 
kfree(mem); 
jpg_fbuffer_free (struct file *file){	struct zoran_fh *fh = file->private_data;	struct zoran *zr = fh->zr;	int i, j, off;	unsigned char *mem;	dprintk(4, KERN_DEBUG "%s: jpg_fbuffer_free()\n", ZR_DEVNAME(zr));	for (i = 0; i < fh->jpg_buffers.num_buffers; i++) {		if (!fh->jpg_buffers.buffer[i].frag_tab)			continue;		//if (alloc_contig) {		if (fh->jpg_buffers.need_contiguous) {			if (fh->jpg_buffers.buffer[i].frag_tab[0]) {				mem = (unsigned char *) bus_to_virt(le32_to_cpu(					fh->jpg_buffers.buffer[i].frag_tab[0]));				for (off = 0;				     off < fh->jpg_buffers.buffer_size;				     off += PAGE_SIZE)					ClearPageReserved(MAP_NR							  (mem + off));				kfree((void *) mem);				fh->jpg_buffers.buffer[i].frag_tab[0] = 0;				fh->jpg_buffers.buffer[i].frag_tab[1] = 0;			}		} else {			for (j = 0;			     j < fh->jpg_buffers.buffer_size / PAGE_SIZE;			     j++) {				if (!fh->jpg_buffers.buffer[i].				    frag_tab[2 * j])					break;				ClearPageReserved(MAP_NR						  (bus_to_virt						   (le32_to_cpu						    (fh->jpg_buffers.						     buffer[i].frag_tab[2 *								       j]))));				free_page((unsigned long)					  bus_to_virt					          (le32_to_cpu						   (fh->jpg_buffers.						      buffer[i].						      frag_tab[2 * j])));				fh->jpg_buffers.buffer[i].frag_tab[2 * j] =				    0;				fh->jpg_buffers.buffer[i].frag_tab[2 * j +								   1] = 0;			}		}		free_page((unsigned long) fh->jpg_buffers.buffer[i].			  frag_tab);		fh->jpg_buffers.buffer[i].frag_tab = NULL;	}	fh->jpg_buffers.allocated = 0;	fh->jpg_buffers.ready_to_be_freed = 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f9101210e7aa72daf92722d451a2f7e3af5f781f/zoran_driver.c/clean/drivers/media/video/zoran_driver.c