queue_work(priv->workqueue, &priv->abort_scan); 
ipw_abort_scan(priv); 
static int ipw_set_channel(struct ipw_priv *priv, u8 channel){	int i;	if (channel == 0) {		IPW_DEBUG_INFO("Setting channel to ANY (0)\n");		priv->config &= ~CFG_STATIC_CHANNEL;		IPW_DEBUG_ASSOC("Attempting to associate with new "				"parameters.\n");		ipw_associate(priv);		return 0;	}	priv->config |= CFG_STATIC_CHANNEL;	if (priv->channel == channel) {		IPW_DEBUG_INFO("Request to set channel to current value (%d)\n",			       channel);		return 0;	}	IPW_DEBUG_INFO("Setting channel to %i\n", (int)channel);	priv->channel = channel;#ifdef CONFIG_IPW2200_MONITOR	if (priv->ieee->iw_mode == IW_MODE_MONITOR) {		if (priv->status & STATUS_SCANNING) {			IPW_DEBUG_SCAN("scan abort triggered due to "				       "channel change.\n");			queue_work(priv->workqueue, &priv->abort_scan);		}		for (i = 1000; i && (priv->status & STATUS_SCANNING); i--)			udelay(10);		if (priv->status & STATUS_SCANNING)			IPW_DEBUG_SCAN("Still scanning...\n");		else			IPW_DEBUG_SCAN("Took %dms to abort current scan\n",				       1000 - i);		return 0;	}#endif				/* CONFIG_IPW2200_MONITOR */	/* Network configuration changed -- force [re]association */	IPW_DEBUG_ASSOC("[re]association triggered due to channel change.\n");	if (!ipw_disassociate(priv))		ipw_associate(priv);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/afbf30a2b78cac38e6ddae10a73063943b4783ee/ipw2200.c/clean/drivers/net/wireless/ipw2200.c