fixed sparse warning of incorrect type in argument 1 and incorrect type in argument 2 it was directly dereferencing a __iomem pointer , which will work in x86 but will fail in other architectures. Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx> --- hi, can you please reveiew the patch and check if the approach is correct. If it is correct then I can send another patch to correct the other similar warnings present in this file. drivers/staging/goldfish/goldfish_audio.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/staging/goldfish/goldfish_audio.c b/drivers/staging/goldfish/goldfish_audio.c index c89d0b8..f9a13e7 100644 --- a/drivers/staging/goldfish/goldfish_audio.c +++ b/drivers/staging/goldfish/goldfish_audio.c @@ -118,6 +118,7 @@ static ssize_t goldfish_audio_read(struct file *fp, char __user *buf, struct goldfish_audio *data = fp->private_data; int length; int result = 0; + void *buffer; if (!data->read_supported) return -ENODEV; @@ -133,9 +134,15 @@ static ssize_t goldfish_audio_read(struct file *fp, char __user *buf, AUDIO_READ_BUFFER_AVAILABLE); /* copy data to user space */ - if (copy_to_user(buf, data->read_buffer, length)) + buffer = kzalloc(length, GFP_KERNEL); + if (buffer == NULL) + return -ENOMEM; + memcpy_fromio(buffer, data->read_buffer, length); + if (copy_to_user((void __user *)buf, buffer, length)) { + kfree(buffer); return -EFAULT; - + } + kfree(buffer); result += length; buf += length; count -= length; -- 1.8.1.2 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel