Commit 299fb61c authored by Amit Shah's avatar Amit Shah Committed by Rusty Russell

virtio: console: Disable lseek(2) for port file operations

The ports are char devices; do not have seeking capabilities.  Calling
nonseekable_open() from the fops_open() call and setting the llseek fops
pointer to no_llseek ensures an lseek() call from userspace returns
-ESPIPE.
Signed-off-by: default avatarAmit Shah <amit.shah@redhat.com>
CC: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent a461e11e
...@@ -809,6 +809,8 @@ static int port_fops_open(struct inode *inode, struct file *filp) ...@@ -809,6 +809,8 @@ static int port_fops_open(struct inode *inode, struct file *filp)
reclaim_consumed_buffers(port); reclaim_consumed_buffers(port);
spin_unlock_irq(&port->outvq_lock); spin_unlock_irq(&port->outvq_lock);
nonseekable_open(inode, filp);
/* Notify host of port being opened */ /* Notify host of port being opened */
send_control_msg(filp->private_data, VIRTIO_CONSOLE_PORT_OPEN, 1); send_control_msg(filp->private_data, VIRTIO_CONSOLE_PORT_OPEN, 1);
...@@ -840,6 +842,7 @@ static const struct file_operations port_fops = { ...@@ -840,6 +842,7 @@ static const struct file_operations port_fops = {
.poll = port_fops_poll, .poll = port_fops_poll,
.release = port_fops_release, .release = port_fops_release,
.fasync = port_fops_fasync, .fasync = port_fops_fasync,
.llseek = no_llseek,
}; };
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment