platform/chrome: wilco_ec: Fix unreleased lock in event_read()
authorNick Crews <ncrews@chromium.org>
Fri, 14 Jun 2019 20:56:31 +0000 (14:56 -0600)
committerEnric Balletbo i Serra <enric.balletbo@collabora.com>
Tue, 18 Jun 2019 08:37:21 +0000 (10:37 +0200)
When copying an event to userspace failed, the event queue
lock was never released. This fixes that.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Nick Crews <ncrews@chromium.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
drivers/platform/chrome/wilco_ec/event.c

index 4d2776f..1eed556 100644 (file)
@@ -342,7 +342,7 @@ static ssize_t event_read(struct file *filp, char __user *buf, size_t count,
                                 struct ec_event_entry, list);
        n_bytes_written = entry->size;
        if (copy_to_user(buf, &entry->event, n_bytes_written))
-               return -EFAULT;
+               n_bytes_written = -EFAULT;
        list_del(&entry->list);
        kfree(entry);
        dev_data->num_events--;