Implement ->proc_read_buf() so procfs copies what is read from /proc/bus/zorro/<slot> to userspace after it unpinned the entry.
Signed-off-by: Christian Brauner (Amutable) <[email protected]> --- drivers/zorro/proc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/zorro/proc.c b/drivers/zorro/proc.c index f916bf60b312..4e4ba04752ea 100644 --- a/drivers/zorro/proc.c +++ b/drivers/zorro/proc.c @@ -28,7 +28,7 @@ proc_bus_zorro_lseek(struct file *file, loff_t off, int whence) } static ssize_t -proc_bus_zorro_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) +proc_bus_zorro_read(struct file *file, char *buf, size_t nbytes, loff_t *ppos) { struct zorro_dev *z = pde_data(file_inode(file)); struct ConfigDev cd; @@ -49,8 +49,7 @@ proc_bus_zorro_read(struct file *file, char __user *buf, size_t nbytes, loff_t * cd.cd_BoardAddr = cpu_to_be32(zorro_resource_start(z)); cd.cd_BoardSize = cpu_to_be32(zorro_resource_len(z)); - if (copy_to_user(buf, (void *)&cd + pos, nbytes)) - return -EFAULT; + memcpy(buf, (void *)&cd + pos, nbytes); *ppos += nbytes; return nbytes; @@ -58,7 +57,7 @@ proc_bus_zorro_read(struct file *file, char __user *buf, size_t nbytes, loff_t * static const struct proc_ops bus_zorro_proc_ops = { .proc_lseek = proc_bus_zorro_lseek, - .proc_read = proc_bus_zorro_read, + .proc_read_buf = proc_bus_zorro_read, }; static void * zorro_seq_start(struct seq_file *m, loff_t *pos) -- 2.53.0
