Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 211652
b: refs/heads/master
c: 04950cd
h: refs/heads/master
v: v3
  • Loading branch information
Amit Shah authored and Rusty Russell committed Oct 21, 2010
1 parent 7897cb1 commit a75faa6
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6bdf2afd02ae12bf8ac93e6d14c4b4dfef7c4c59
refs/heads/master: 04950cdf071b6e5aa4794c93ad3e3ce8a1c4aa8c
37 changes: 36 additions & 1 deletion trunk/drivers/char/virtio_console.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,41 @@ static struct port *find_port_by_vtermno(u32 vtermno)
return port;
}

static struct port *find_port_by_devt_in_portdev(struct ports_device *portdev,
dev_t dev)
{
struct port *port;
unsigned long flags;

spin_lock_irqsave(&portdev->ports_lock, flags);
list_for_each_entry(port, &portdev->ports, list)
if (port->cdev.dev == dev)
goto out;
port = NULL;
out:
spin_unlock_irqrestore(&portdev->ports_lock, flags);

return port;
}

static struct port *find_port_by_devt(dev_t dev)
{
struct ports_device *portdev;
struct port *port;
unsigned long flags;

spin_lock_irqsave(&pdrvdata_lock, flags);
list_for_each_entry(portdev, &pdrvdata.portdevs, list) {
port = find_port_by_devt_in_portdev(portdev, dev);
if (port)
goto out;
}
port = NULL;
out:
spin_unlock_irqrestore(&pdrvdata_lock, flags);
return port;
}

static struct port *find_port_by_id(struct ports_device *portdev, u32 id)
{
struct port *port;
Expand Down Expand Up @@ -719,7 +754,7 @@ static int port_fops_open(struct inode *inode, struct file *filp)
struct port *port;
int ret;

port = container_of(cdev, struct port, cdev);
port = find_port_by_devt(cdev->dev);
filp->private_data = port;

/*
Expand Down

0 comments on commit a75faa6

Please sign in to comment.