From c2187f79150d4b485b347f99e980ab730813d5b0 Mon Sep 17 00:00:00 2001 From: Holger Schurig Date: Wed, 30 Apr 2008 10:51:15 +0200 Subject: [PATCH] --- yaml --- r: 102511 b: refs/heads/master c: 652e3f208619dfe75867349d6164afe735eaf159 h: refs/heads/master i: 102509: a17afd698d0cf3929caf954e5435938621c3847f 102507: 52c44c0a586e1e552bd56c475b7496afe7b166f7 102503: 428ae38ac41430902c2146fff8565924dce3bc8b 102495: 66e9a0166d7acdabd83a73a816b6bb98798fee11 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/libertas/main.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 9b072c7e0dee..314fb5031cc0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a63e5cb22fcc8590abc7d5050118a6d3589ed95f +refs/heads/master: 652e3f208619dfe75867349d6164afe735eaf159 diff --git a/trunk/drivers/net/wireless/libertas/main.c b/trunk/drivers/net/wireless/libertas/main.c index 223ab3a14a13..0be89573716c 100644 --- a/trunk/drivers/net/wireless/libertas/main.c +++ b/trunk/drivers/net/wireless/libertas/main.c @@ -1166,8 +1166,8 @@ void lbs_remove_card(struct lbs_private *priv) dev = priv->dev; - cancel_delayed_work(&priv->scan_work); - cancel_delayed_work(&priv->assoc_work); + cancel_delayed_work_sync(&priv->scan_work); + cancel_delayed_work_sync(&priv->assoc_work); destroy_workqueue(priv->work_thread); if (priv->psmode == LBS802_11POWERMODEMAX_PSP) { @@ -1267,6 +1267,9 @@ void lbs_stop_card(struct lbs_private *priv) lbs_deb_enter(LBS_DEB_MAIN); + if (!priv) + goto out; + netif_stop_queue(priv->dev); netif_carrier_off(priv->dev); @@ -1276,6 +1279,7 @@ void lbs_stop_card(struct lbs_private *priv) device_remove_file(&dev->dev, &dev_attr_lbs_mesh); /* Flush pending command nodes */ + del_timer_sync(&priv->command_timer); spin_lock_irqsave(&priv->driver_lock, flags); list_for_each_entry(cmdnode, &priv->cmdpendingq, list) { cmdnode->result = -ENOENT; @@ -1286,6 +1290,7 @@ void lbs_stop_card(struct lbs_private *priv) unregister_netdev(dev); +out: lbs_deb_leave(LBS_DEB_MAIN); } EXPORT_SYMBOL_GPL(lbs_stop_card);