[RFC 2/4] libertas: harden-up exit paths
Dan Williams
dcbw at redhat.com
Mon Apr 16 17:43:19 EDT 2012
On Tue, 2012-04-03 at 17:01 +0100, Daniel Drake wrote:
> 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).
Looks fine to me.
Dan
> Signed-off-by: Daniel Drake <dsd at laptop.org>
> ---
> drivers/net/wireless/libertas/main.c | 9 ++++++++-
> 1 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
> index fa09585..7eaf992 100644
> --- a/drivers/net/wireless/libertas/main.c
> +++ b/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);
>
More information about the libertas-dev
mailing list