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;}