There is a path which still holds its mutex here.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
if (info->port.count == 1) {
/* 1st open on this device, init hardware */
retval = startup(info);
if (info->port.count == 1) {
/* 1st open on this device, init hardware */
retval = startup(info);
+ if (retval < 0) {
+ mutex_unlock(&info->port.mutex);
}
mutex_unlock(&info->port.mutex);
retval = block_til_ready(tty, filp, info);
}
mutex_unlock(&info->port.mutex);
retval = block_til_ready(tty, filp, info);