mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 15:58:47 +00:00
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 device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
struct uio_device *idev = dev_get_drvdata(dev);
|
struct uio_device *idev = dev_get_drvdata(dev);
|
||||||
if (idev)
|
return sprintf(buf, "%s\n", idev->info->name);
|
||||||
return sprintf(buf, "%s\n", idev->info->name);
|
|
||||||
else
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(name, S_IRUGO, show_name, NULL);
|
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 device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
struct uio_device *idev = dev_get_drvdata(dev);
|
struct uio_device *idev = dev_get_drvdata(dev);
|
||||||
if (idev)
|
return sprintf(buf, "%s\n", idev->info->version);
|
||||||
return sprintf(buf, "%s\n", idev->info->version);
|
|
||||||
else
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(version, S_IRUGO, show_version, NULL);
|
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 device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
struct uio_device *idev = dev_get_drvdata(dev);
|
struct uio_device *idev = dev_get_drvdata(dev);
|
||||||
if (idev)
|
return sprintf(buf, "%u\n", (unsigned int)atomic_read(&idev->event));
|
||||||
return sprintf(buf, "%u\n",
|
|
||||||
(unsigned int)atomic_read(&idev->event));
|
|
||||||
else
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(event, S_IRUGO, show_event, NULL);
|
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);
|
uio_dev_del_attributes(idev);
|
||||||
|
|
||||||
dev_set_drvdata(idev->dev, NULL);
|
|
||||||
device_destroy(uio_class, MKDEV(uio_major, idev->minor));
|
device_destroy(uio_class, MKDEV(uio_major, idev->minor));
|
||||||
kfree(idev);
|
kfree(idev);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user