down(&priv->sem); if (ipw_request_scan(priv)) { up(&priv->sem); return -EIO; } up(&priv->sem); 
 queue_work(priv->workqueue, &priv->request_scan);  
static int ipw_wx_set_scan(struct net_device *dev,			   struct iw_request_info *info,			   union iwreq_data *wrqu, char *extra){	struct ipw_priv *priv = ieee80211_priv(dev);	IPW_DEBUG_WX("Start scan\n");	down(&priv->sem);	if (ipw_request_scan(priv)) {		up(&priv->sem);		return -EIO;	}	up(&priv->sem);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b095c3819805f87d73d41641a53e4c070360d783/ipw2200.c/buggy/drivers/net/wireless/ipw2200.c