Skip to content

Commit

Permalink
uio: Don't clear driver data
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Thomas Gleixner <[email protected]>
Signed-off-by: Hans J. Koch <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
Eric W. Biederman authored and gregkh committed Oct 22, 2010
1 parent 3d4f9d7 commit 70a9156
Showing 1 changed file with 3 additions and 14 deletions.
17 changes: 3 additions & 14 deletions drivers/uio/uio.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,33 +229,23 @@ 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);

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);

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);

Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit 70a9156

Please sign in to comment.