These simple sanity check avoids extra complexity in error paths when
moving to asynchronous firmware loading (which means the device may fail to
init some time after its creation).
Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
        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().
                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);