From 7b23ca3dd14be6cde03999581931ec72af231fad Mon Sep 17 00:00:00 2001 From: Daniel Drake Date: Mon, 16 Apr 2012 23:53:02 +0100 Subject: [PATCH] --- yaml --- r: 301042 b: refs/heads/master c: 0beecac8abb3af890d470df541142d55343382d6 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/libertas/main.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 5be8ee2c8af2..e1fc6769f999 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 370803c25dd77332ee4ca97884c3a5e1e1eafbca +refs/heads/master: 0beecac8abb3af890d470df541142d55343382d6 diff --git a/trunk/drivers/net/wireless/libertas/main.c b/trunk/drivers/net/wireless/libertas/main.c index fa095851f214..7eaf992775ae 100644 --- a/trunk/drivers/net/wireless/libertas/main.c +++ b/trunk/drivers/net/wireless/libertas/main.c @@ -1033,7 +1033,9 @@ void lbs_remove_card(struct lbs_private *priv) lbs_deb_enter(LBS_DEB_MAIN); lbs_remove_mesh(priv); - lbs_scan_deinit(priv); + + if (priv->wiphy_registered) + lbs_scan_deinit(priv); /* worker thread destruction blocks on the in-flight command which * should have been cleared already in lbs_stop_card(). @@ -1128,6 +1130,11 @@ void lbs_stop_card(struct lbs_private *priv) goto out; dev = priv->dev; + /* If the netdev isn't registered, it means that lbs_start_card() was + * never called so we have nothing to do here. */ + if (dev->reg_state != NETREG_REGISTERED) + goto out; + netif_stop_queue(dev); netif_carrier_off(dev);