On Mon, 2012-09-03 at 15:49 -0400, Daniel Drake wrote: > When the interface is down, the hardware is powered off. > However, the suspend handler currently tries to send host sleep commands > (when wakeup params are set) in this configuration, causing a system hang > when going into suspend (the commands will never complete). > > Avoid this by detecting this situation and simply returning from > the suspend handler without doing anything special. > > Signed-off-by: Daniel Drake <dsd@xxxxxxxxxx> Acked-by: Dan Williams <dcbw@xxxxxxxxxx> > --- > drivers/net/wireless/libertas/if_sdio.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c > index e970897..4cb2343 100644 > --- a/drivers/net/wireless/libertas/if_sdio.c > +++ b/drivers/net/wireless/libertas/if_sdio.c > @@ -1326,6 +1326,11 @@ static int if_sdio_suspend(struct device *dev) > > mmc_pm_flag_t flags = sdio_get_host_pm_caps(func); > > + /* If we're powered off anyway, just let the mmc layer remove the > + * card. */ > + if (!lbs_iface_active(card->priv)) > + return -ENOSYS; > + > dev_info(dev, "%s: suspend: PM flags = 0x%x\n", > sdio_func_id(func), flags); > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html