summaryrefslogtreecommitdiff
path: root/drivers/uio
diff options
context:
space:
mode:
authorAndrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>2021-01-11 11:00:32 +0000
committerAndrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>2021-01-11 11:00:32 +0000
commit36d7dcf6dab2bb500f3d1b008c8c7514aaf82f5d (patch)
tree772faf9b1b8e082d3ad23975c02b36762fc4685a /drivers/uio
parentf29f0d584a935d6e311337af420ff525a7a4627e (diff)
parent315443293a2d0d7c183ca6dd4624d9e4f8a7054a (diff)
Merge tag 'v5.4.78' into 5.4-2.3.x-imx
This is the 5.4.78 stable release Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Diffstat (limited to 'drivers/uio')
-rw-r--r--drivers/uio/uio.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
index ded1d9296f07..52d24ea49533 100644
--- a/drivers/uio/uio.c
+++ b/drivers/uio/uio.c
@@ -413,10 +413,10 @@ static int uio_get_minor(struct uio_device *idev)
return retval;
}
-static void uio_free_minor(struct uio_device *idev)
+static void uio_free_minor(unsigned long minor)
{
mutex_lock(&minor_lock);
- idr_remove(&uio_idr, idev->minor);
+ idr_remove(&uio_idr, minor);
mutex_unlock(&minor_lock);
}
@@ -999,7 +999,7 @@ err_request_irq:
err_uio_dev_add_attributes:
device_del(&idev->dev);
err_device_create:
- uio_free_minor(idev);
+ uio_free_minor(idev->minor);
put_device(&idev->dev);
return ret;
}
@@ -1013,11 +1013,13 @@ EXPORT_SYMBOL_GPL(__uio_register_device);
void uio_unregister_device(struct uio_info *info)
{
struct uio_device *idev;
+ unsigned long minor;
if (!info || !info->uio_dev)
return;
idev = info->uio_dev;
+ minor = idev->minor;
mutex_lock(&idev->info_lock);
uio_dev_del_attributes(idev);
@@ -1033,7 +1035,7 @@ void uio_unregister_device(struct uio_info *info)
device_unregister(&idev->dev);
- uio_free_minor(idev);
+ uio_free_minor(minor);
return;
}