ssize_t mbcs_sram_read(struct file * fp, char *buf, size_t len, loff_t * off) 
ssize_t mbcs_sram_read(struct file * fp, char __user *buf, size_t len, loff_t * off) 
ssize_t mbcs_sram_read(struct file * fp, char *buf, size_t len, loff_t * off){	struct cx_dev *cx_dev = fp->private_data;	struct mbcs_soft *soft = cx_dev->soft;	uint64_t hostAddr;	int rv = 0;	hostAddr = __get_dma_pages(GFP_KERNEL, get_order(len));	if (hostAddr == 0)		return -ENOMEM;	rv = do_mbcs_sram_dmawrite(soft, hostAddr, len, off);	if (rv < 0)		goto exit;	if (copy_to_user(buf, (void *)hostAddr, len))		rv = -EFAULT;      exit:	free_pages(hostAddr, get_order(len));	return rv;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9b52523aff51e3b245e6ec8887e3fcf190da4711/mbcs.c/buggy/drivers/char/mbcs.c