diff options
author | Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | 2021-01-11 11:00:32 +0000 |
---|---|---|
committer | Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> | 2021-01-11 11:00:32 +0000 |
commit | 36d7dcf6dab2bb500f3d1b008c8c7514aaf82f5d (patch) | |
tree | 772faf9b1b8e082d3ad23975c02b36762fc4685a /drivers/uio | |
parent | f29f0d584a935d6e311337af420ff525a7a4627e (diff) | |
parent | 315443293a2d0d7c183ca6dd4624d9e4f8a7054a (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.c | 10 |
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; } |