uio: Don't clear driver data
Currently uio sets it's driver data to NULL just as it is unregistering attributes. sysfs maks the guaranatee that it will not call attributes after device_destroy is called so this is unncessary and leads to lots of unnecessary code in uio.c Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Hans J. Koch <hjk@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
3d4f9d76b0
commit
70a9156bad
|
@ -229,10 +229,7 @@ static ssize_t show_name(struct device *dev,
|
|||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct uio_device *idev = dev_get_drvdata(dev);
|
||||
if (idev)
|
||||
return sprintf(buf, "%s\n", idev->info->name);
|
||||
else
|
||||
return -ENODEV;
|
||||
return sprintf(buf, "%s\n", idev->info->name);
|
||||
}
|
||||
static DEVICE_ATTR(name, S_IRUGO, show_name, NULL);
|
||||
|
||||
|
@ -240,10 +237,7 @@ static ssize_t show_version(struct device *dev,
|
|||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct uio_device *idev = dev_get_drvdata(dev);
|
||||
if (idev)
|
||||
return sprintf(buf, "%s\n", idev->info->version);
|
||||
else
|
||||
return -ENODEV;
|
||||
return sprintf(buf, "%s\n", idev->info->version);
|
||||
}
|
||||
static DEVICE_ATTR(version, S_IRUGO, show_version, NULL);
|
||||
|
||||
|
@ -251,11 +245,7 @@ static ssize_t show_event(struct device *dev,
|
|||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct uio_device *idev = dev_get_drvdata(dev);
|
||||
if (idev)
|
||||
return sprintf(buf, "%u\n",
|
||||
(unsigned int)atomic_read(&idev->event));
|
||||
else
|
||||
return -ENODEV;
|
||||
return sprintf(buf, "%u\n", (unsigned int)atomic_read(&idev->event));
|
||||
}
|
||||
static DEVICE_ATTR(event, S_IRUGO, show_event, NULL);
|
||||
|
||||
|
@ -878,7 +868,6 @@ void uio_unregister_device(struct uio_info *info)
|
|||
|
||||
uio_dev_del_attributes(idev);
|
||||
|
||||
dev_set_drvdata(idev->dev, NULL);
|
||||
device_destroy(uio_class, MKDEV(uio_major, idev->minor));
|
||||
kfree(idev);
|
||||
|
||||
|
|
Loading…
Reference in a new issue