|
@@ -1518,14 +1518,6 @@ static void remove_port(struct kref *kref)
|
|
|
|
|
|
port = container_of(kref, struct port, kref);
|
|
|
|
|
|
- sysfs_remove_group(&port->dev->kobj, &port_attribute_group);
|
|
|
- device_destroy(pdrvdata.class, port->dev->devt);
|
|
|
- cdev_del(port->cdev);
|
|
|
-
|
|
|
- kfree(port->name);
|
|
|
-
|
|
|
- debugfs_remove(port->debugfs_file);
|
|
|
-
|
|
|
kfree(port);
|
|
|
}
|
|
|
|
|
@@ -1583,6 +1575,14 @@ static void unplug_port(struct port *port)
|
|
|
*/
|
|
|
port->portdev = NULL;
|
|
|
|
|
|
+ sysfs_remove_group(&port->dev->kobj, &port_attribute_group);
|
|
|
+ device_destroy(pdrvdata.class, port->dev->devt);
|
|
|
+ cdev_del(port->cdev);
|
|
|
+
|
|
|
+ kfree(port->name);
|
|
|
+
|
|
|
+ debugfs_remove(port->debugfs_file);
|
|
|
+
|
|
|
/*
|
|
|
* Locks around here are not necessary - a port can't be
|
|
|
* opened after we removed the port struct from ports_list
|