diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/misc/mei/bus.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c index 257e200b5343..aba7688d1ddd 100644 --- a/drivers/misc/mei/bus.c +++ b/drivers/misc/mei/bus.c @@ -256,6 +256,8 @@ void mei_cl_bus_rx_event(struct mei_cl *cl) int mei_cl_register_event_cb(struct mei_cl_device *cldev, mei_cl_event_cb_t event_cb, void *context) { + int ret; + if (cldev->event_cb) return -EALREADY; @@ -264,7 +266,9 @@ int mei_cl_register_event_cb(struct mei_cl_device *cldev, cldev->event_context = context; INIT_WORK(&cldev->event_work, mei_bus_event_work); - mei_cl_read_start(cldev->cl, 0, NULL); + ret = mei_cl_read_start(cldev->cl, 0, NULL); + if (ret && ret != -EBUSY) + return ret; return 0; } |