diff options
Diffstat (limited to 'drivers/net/wireless/orinoco/main.c')
| -rw-r--r-- | drivers/net/wireless/orinoco/main.c | 18 | 
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/net/wireless/orinoco/main.c b/drivers/net/wireless/orinoco/main.c index e8e2d0f4763..f3d396e7544 100644 --- a/drivers/net/wireless/orinoco/main.c +++ b/drivers/net/wireless/orinoco/main.c @@ -1392,10 +1392,9 @@ static void orinoco_process_scan_results(struct work_struct *work)  				orinoco_add_hostscan_results(priv, buf, len);  			kfree(buf); -		} else if (priv->scan_request) { +		} else {  			/* Either abort or complete the scan */ -			cfg80211_scan_done(priv->scan_request, (len < 0)); -			priv->scan_request = NULL; +			orinoco_scan_done(priv, (len < 0));  		}  		spin_lock_irqsave(&priv->scan_lock, flags); @@ -1684,6 +1683,8 @@ static int __orinoco_down(struct orinoco_private *priv)  		hermes_write_regn(hw, EVACK, 0xffff);  	} +	orinoco_scan_done(priv, true); +  	/* firmware will have to reassociate */  	netif_carrier_off(dev);  	priv->last_linkstatus = 0xffff; @@ -1762,10 +1763,7 @@ void orinoco_reset(struct work_struct *work)  	orinoco_unlock(priv, &flags);  	/* Scanning support: Notify scan cancellation */ -	if (priv->scan_request) { -		cfg80211_scan_done(priv->scan_request, 1); -		priv->scan_request = NULL; -	} +	orinoco_scan_done(priv, true);  	if (priv->hard_reset) {  		err = (*priv->hard_reset)(priv); @@ -1813,6 +1811,12 @@ static int __orinoco_commit(struct orinoco_private *priv)  	struct net_device *dev = priv->ndev;  	int err = 0; +	/* If we've called commit, we are reconfiguring or bringing the +	 * interface up. Maintaining countermeasures across this would +	 * be confusing, so note that we've disabled them. The port will +	 * be enabled later in orinoco_commit or __orinoco_up. */ +	priv->tkip_cm_active = 0; +  	err = orinoco_hw_program_rids(priv);  	/* FIXME: what about netif_tx_lock */  |