|
@@ -710,12 +710,17 @@ struct btmrvl_private *btmrvl_add_card(void *card)
|
|
|
init_waitqueue_head(&priv->main_thread.wait_q);
|
|
init_waitqueue_head(&priv->main_thread.wait_q);
|
|
|
priv->main_thread.task = kthread_run(btmrvl_service_main_thread,
|
|
priv->main_thread.task = kthread_run(btmrvl_service_main_thread,
|
|
|
&priv->main_thread, "btmrvl_main_service");
|
|
&priv->main_thread, "btmrvl_main_service");
|
|
|
|
|
+ if (IS_ERR(priv->main_thread.task))
|
|
|
|
|
+ goto err_thread;
|
|
|
|
|
|
|
|
priv->btmrvl_dev.card = card;
|
|
priv->btmrvl_dev.card = card;
|
|
|
priv->btmrvl_dev.tx_dnld_rdy = true;
|
|
priv->btmrvl_dev.tx_dnld_rdy = true;
|
|
|
|
|
|
|
|
return priv;
|
|
return priv;
|
|
|
|
|
|
|
|
|
|
+err_thread:
|
|
|
|
|
+ btmrvl_free_adapter(priv);
|
|
|
|
|
+
|
|
|
err_adapter:
|
|
err_adapter:
|
|
|
kfree(priv);
|
|
kfree(priv);
|
|
|
|
|
|