Hi Marcel, On Wed, Nov 24, 2010 at 8:42 AM, Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: >> diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c >> index 18a802c..7980e24 100644 >> --- a/net/bluetooth/l2cap.c >> +++ b/net/bluetooth/l2cap.c >> @@ -4875,8 +4875,10 @@ static int __init l2cap_init(void) >> return err; >> >> _busy_wq = create_singlethread_workqueue("l2cap"); >> - if (!_busy_wq) >> - goto error; >> + if (!_busy_wq) { >> + err = -ENOMEM; >> + goto error_busy_wq; >> + } > > aren't these returning PTR_ERR etc.? No, create_singlethread_workqueue() is just a wrapper around __alloc_workqueue_key(), which returns eiter a kzalloc()'ed pointer, or NULL on error. There is no way to get the actual reason of the error, but by taking a look at the function we can see most (if not all) errors are -ENOMEM. Thus why I used it here. Padovan: so how to proceed here: keep the patch as is and keep semantics, of make your proposed changes (with a slightly risk of a race condition and having _busy_wq NULL) ? Regards, -- Anderson Lizardo OpenBossa Labs - INdT Manaus - Brazil -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html