virtio: console: open: Use a common path for error handling

Just re-arrange code for future patches.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Amit Shah 2010-09-02 18:11:48 +05:30 committed by Rusty Russell
parent 7a2853178d
commit 8ad37e83c8
1 changed files with 9 additions and 3 deletions

View File

@ -711,6 +711,7 @@ static int port_fops_open(struct inode *inode, struct file *filp)
{ {
struct cdev *cdev = inode->i_cdev; struct cdev *cdev = inode->i_cdev;
struct port *port; struct port *port;
int ret;
port = container_of(cdev, struct port, cdev); port = container_of(cdev, struct port, cdev);
filp->private_data = port; filp->private_data = port;
@ -719,14 +720,17 @@ static int port_fops_open(struct inode *inode, struct file *filp)
* Don't allow opening of console port devices -- that's done * Don't allow opening of console port devices -- that's done
* via /dev/hvc * via /dev/hvc
*/ */
if (is_console_port(port)) if (is_console_port(port)) {
return -ENXIO; ret = -ENXIO;
goto out;
}
/* Allow only one process to open a particular port at a time */ /* Allow only one process to open a particular port at a time */
spin_lock_irq(&port->inbuf_lock); spin_lock_irq(&port->inbuf_lock);
if (port->guest_connected) { if (port->guest_connected) {
spin_unlock_irq(&port->inbuf_lock); spin_unlock_irq(&port->inbuf_lock);
return -EMFILE; ret = -EMFILE;
goto out;
} }
port->guest_connected = true; port->guest_connected = true;
@ -745,6 +749,8 @@ static int port_fops_open(struct inode *inode, struct file *filp)
send_control_msg(filp->private_data, VIRTIO_CONSOLE_PORT_OPEN, 1); send_control_msg(filp->private_data, VIRTIO_CONSOLE_PORT_OPEN, 1);
return 0; return 0;
out:
return ret;
} }
/* /*