Commit dc18f080 authored by Sjur Brændeland's avatar Sjur Brændeland Committed by Rusty Russell

virtio_console: Use virtio device index to generate port name

Use virtio device index for creating unique device port names.
Current index allocation in virtio is based on a monotonically
increasing variable "index". A better handling of this is to
use device index which is allocated by ida.
Signed-off-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 35cdc9eb
...@@ -61,9 +61,6 @@ struct ports_driver_data { ...@@ -61,9 +61,6 @@ struct ports_driver_data {
/* List of all the devices we're handling */ /* List of all the devices we're handling */
struct list_head portdevs; struct list_head portdevs;
/* Number of devices this driver is handling */
unsigned int index;
/* /*
* This is used to keep track of the number of hvc consoles * This is used to keep track of the number of hvc consoles
* spawned by this driver. This number is given as the first * spawned by this driver. This number is given as the first
...@@ -169,9 +166,6 @@ struct ports_device { ...@@ -169,9 +166,6 @@ struct ports_device {
/* Array of per-port IO virtqueues */ /* Array of per-port IO virtqueues */
struct virtqueue **in_vqs, **out_vqs; struct virtqueue **in_vqs, **out_vqs;
/* Used for numbering devices for sysfs and debugfs */
unsigned int drv_index;
/* Major number for this device. Ports will be created as minors. */ /* Major number for this device. Ports will be created as minors. */
int chr_major; int chr_major;
}; };
...@@ -1415,7 +1409,7 @@ static int add_port(struct ports_device *portdev, u32 id) ...@@ -1415,7 +1409,7 @@ static int add_port(struct ports_device *portdev, u32 id)
} }
port->dev = device_create(pdrvdata.class, &port->portdev->vdev->dev, port->dev = device_create(pdrvdata.class, &port->portdev->vdev->dev,
devt, port, "vport%up%u", devt, port, "vport%up%u",
port->portdev->drv_index, id); port->portdev->vdev->index, id);
if (IS_ERR(port->dev)) { if (IS_ERR(port->dev)) {
err = PTR_ERR(port->dev); err = PTR_ERR(port->dev);
dev_err(&port->portdev->vdev->dev, dev_err(&port->portdev->vdev->dev,
...@@ -1470,7 +1464,7 @@ static int add_port(struct ports_device *portdev, u32 id) ...@@ -1470,7 +1464,7 @@ static int add_port(struct ports_device *portdev, u32 id)
* inspect a port's state at any time * inspect a port's state at any time
*/ */
sprintf(debugfs_name, "vport%up%u", sprintf(debugfs_name, "vport%up%u",
port->portdev->drv_index, id); port->portdev->vdev->index, id);
port->debugfs_file = debugfs_create_file(debugfs_name, 0444, port->debugfs_file = debugfs_create_file(debugfs_name, 0444,
pdrvdata.debugfs_dir, pdrvdata.debugfs_dir,
port, port,
...@@ -1961,16 +1955,12 @@ static int virtcons_probe(struct virtio_device *vdev) ...@@ -1961,16 +1955,12 @@ static int virtcons_probe(struct virtio_device *vdev)
portdev->vdev = vdev; portdev->vdev = vdev;
vdev->priv = portdev; vdev->priv = portdev;
spin_lock_irq(&pdrvdata_lock);
portdev->drv_index = pdrvdata.index++;
spin_unlock_irq(&pdrvdata_lock);
portdev->chr_major = register_chrdev(0, "virtio-portsdev", portdev->chr_major = register_chrdev(0, "virtio-portsdev",
&portdev_fops); &portdev_fops);
if (portdev->chr_major < 0) { if (portdev->chr_major < 0) {
dev_err(&vdev->dev, dev_err(&vdev->dev,
"Error %d registering chrdev for device %u\n", "Error %d registering chrdev for device %u\n",
portdev->chr_major, portdev->drv_index); portdev->chr_major, vdev->index);
err = portdev->chr_major; err = portdev->chr_major;
goto free; goto free;
} }
......
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