/* NOTE: This must be executed from our workqueue as it results in udelay being called which may corrupt the keyboard if executed on default workqueue  */
static void ipw_adapter_restart(void *adapter)
/* NOTE: This must be executed from our workqueue as it results in udelay being called which may corrupt the keyboard if executed on default workqueue  */
static void ipw_adapter_restart(void *adapter)
{
	struct ipw_priv *priv = adapter;
	if (priv->status & STATUS_RF_KILL_MASK)
		return;
	ipw_down(priv);
	if (priv->assoc_network &&
	    (priv->assoc_network->capability & WLAN_CAPABILITY_IBSS))
		ipw_remove_current_network(priv);
	if (ipw_up(priv)) {
		IPW_ERROR("Failed to up device\n");
		return;
	}
}