static void ipw_merge_adhoc_network(void *data){	struct ipw_priv *priv = data;	struct ieee80211_network *network = NULL;	struct ipw_network_match match = {		.network = priv->assoc_network	};	if ((priv->status & STATUS_ASSOCIATED)	    && (priv->ieee->iw_mode == IW_MODE_ADHOC)) {		/* First pass through ROAM process -- look for a better		 * network */		unsigned long flags;		spin_lock_irqsave(&priv->ieee->lock, flags);		list_for_each_entry(network, &priv->ieee->network_list, list) {			if (network != priv->assoc_network)				ipw_find_adhoc_network(priv, &match, network,						       1);		}		spin_unlock_irqrestore(&priv->ieee->lock, flags);		if (match.network == priv->assoc_network) {			IPW_DEBUG_MERGE("No better ADHOC in this network to "					"merge to.\n");			return;		}		down(&priv->sem);		if ((priv->ieee->iw_mode == IW_MODE_ADHOC)) {			IPW_DEBUG_MERGE("remove network %s\n",					escape_essid(priv->essid,						     priv->essid_len));			ipw_remove_current_network(priv);		}		ipw_disassociate(priv);		priv->assoc_network = match.network;		up(&priv->sem);		return;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/afbf30a2b78cac38e6ddae10a73063943b4783ee/ipw2200.c/clean/drivers/net/wireless/ipw2200.c