Commit ba623a77 authored by Dan Carpenter's avatar Dan Carpenter Committed by Jiri Kosina

HID: unlock on error path in hid_device_probe()

We recently introduced locking into this function, but we missed an
error path which needs an unlock.
Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 54d3339a
...@@ -1642,8 +1642,10 @@ static int hid_device_probe(struct device *dev) ...@@ -1642,8 +1642,10 @@ static int hid_device_probe(struct device *dev)
if (!hdev->driver) { if (!hdev->driver) {
id = hid_match_device(hdev, hdrv); id = hid_match_device(hdev, hdrv);
if (id == NULL) if (id == NULL) {
return -ENODEV; ret = -ENODEV;
goto unlock;
}
hdev->driver = hdrv; hdev->driver = hdrv;
if (hdrv->probe) { if (hdrv->probe) {
...@@ -1656,7 +1658,7 @@ static int hid_device_probe(struct device *dev) ...@@ -1656,7 +1658,7 @@ static int hid_device_probe(struct device *dev)
if (ret) if (ret)
hdev->driver = NULL; hdev->driver = NULL;
} }
unlock:
up(&hdev->driver_lock); up(&hdev->driver_lock);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment