On Fri, 23 Dec 2016, Even Xu wrote: [ ... snip ... ] > +static ssize_t ishtp_cl_write(struct file *file, const char __user *ubuf, > + size_t length, loff_t *offset) > +{ > + struct ishtp_cl_miscdev *ishtp_cl_misc = file->private_data; > + struct ishtp_cl *cl; > + void *write_buf; > + struct ishtp_device *dev; > + int ret; > + > + /* Non-blocking semantics are not supported */ > + if (file->f_flags & O_NONBLOCK) { > + ret = -EINVAL; > + goto out_unlock; When taking the error path here you'd try to unlock ishtp_cl_misc->cl_mutex before actually acquiring it. -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html