From: Akinobu Mita Signed-off-by: Akinobu Mita Cc: John W. Linville Cc: Dan Williams Cc: Michal Schmidt Signed-off-by: Andrew Morton --- drivers/net/wireless/airo.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff -puN drivers/net/wireless/airo.c~airo-use-simple_read_from_buffer drivers/net/wireless/airo.c --- a/drivers/net/wireless/airo.c~airo-use-simple_read_from_buffer +++ a/drivers/net/wireless/airo.c @@ -4561,22 +4561,13 @@ static ssize_t proc_read( struct file *f size_t len, loff_t *offset ) { - loff_t pos = *offset; - struct proc_data *priv = (struct proc_data*)file->private_data; + struct proc_data *priv = file->private_data; if (!priv->rbuffer) return -EINVAL; - if (pos < 0) - return -EINVAL; - if (pos >= priv->readlen) - return 0; - if (len > priv->readlen - pos) - len = priv->readlen - pos; - if (copy_to_user(buffer, priv->rbuffer + pos, len)) - return -EFAULT; - *offset = pos + len; - return len; + return simple_read_from_buffer(buffer, len, offset, priv->rbuffer, + priv->readlen); } /* _