 if (!(priv->status & STATUS_INIT) || (priv->status & STATUS_EXIT_PENDING)) return 0; 
static int ipw_request_direct_scan(struct ipw_priv *priv, char *essid,				   int essid_len){	struct ipw_scan_request_ext scan;	int err = 0, scan_type;	down(&priv->sem);	if (priv->status & STATUS_RF_KILL_MASK) {		IPW_DEBUG_HC("Aborting scan due to RF kill activation\n");		priv->status |= STATUS_SCAN_PENDING;		goto done;	}	IPW_DEBUG_HC("starting request direct scan!\n");	if (priv->status & (STATUS_SCANNING | STATUS_SCAN_ABORTING)) {		err = wait_event_interruptible(priv->wait_state,					       !(priv->						 status & (STATUS_SCANNING |							   STATUS_SCAN_ABORTING)));		if (err) {			IPW_DEBUG_HC("aborting direct scan");			goto done;		}	}	memset(&scan, 0, sizeof(scan));	if (priv->config & CFG_SPEED_SCAN)		scan.dwell_time[IPW_SCAN_ACTIVE_BROADCAST_SCAN] =		    cpu_to_le16(30);	else		scan.dwell_time[IPW_SCAN_ACTIVE_BROADCAST_SCAN] =		    cpu_to_le16(20);	scan.dwell_time[IPW_SCAN_ACTIVE_BROADCAST_AND_DIRECT_SCAN] =	    cpu_to_le16(20);	scan.dwell_time[IPW_SCAN_PASSIVE_FULL_DWELL_SCAN] = cpu_to_le16(120);	scan.dwell_time[IPW_SCAN_ACTIVE_DIRECT_SCAN] = cpu_to_le16(20);	scan.full_scan_index = cpu_to_le32(ieee80211_get_scans(priv->ieee));	err = ipw_send_ssid(priv, essid, essid_len);	if (err) {		IPW_DEBUG_HC("Attempt to send SSID command failed\n");		goto done;	}	scan_type = IPW_SCAN_ACTIVE_BROADCAST_AND_DIRECT_SCAN;	ipw_add_scan_channels(priv, &scan, scan_type);	err = ipw_send_scan_request_ext(priv, &scan);	if (err) {		IPW_DEBUG_HC("Sending scan command failed: %08X\n", err);		goto done;	}	priv->status |= STATUS_SCANNING;      done:	up(&priv->sem);	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/efb3442cf1c65747a858476e10f705612383eed1/ipw2200.c/buggy/drivers/net/wireless/ipw2200.c