Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (75 commits) pppoe.c: Fix kernel panic caused by __pppoe_xmit WAN: Fix a TX IRQ causing BUG() in PC300 and PCI200SYN drivers. bnx2x: Advance a version number to 1.60.01-0 bnx2x: Fixed a compilation warning bnx2x: LSO code was broken on BE platforms qlge: Fix deadlock when cancelling worker. net: fix skb_defer_rx_timestamp() cxgb4vf: Ingress Queue Entry Size needs to be 64 bytes phy: add the IC+ IP1001 driver atm: correct sysfs 'device' link creation and parent relationships MAINTAINERS: remove me from tulip SCTP: Fix SCTP_SET_PEER_PRIMARY_ADDR to accpet v4mapped address enic: Bug Fix: Pass napi reference to the isr that services receive queue ipv6: fix nl group when advertising a new link connector: add module alias net: Document the kernel_recvmsg() function r8169: Fix runtime power management hso: IP checksuming doesn't work on GE0301 option cards xfrm: Fix xfrm_state_migrate leak net: Convert netpoll blocking api in bonding driver to be a counter ...
This commit is contained in:
@@ -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 */
|
||||
|
@@ -151,20 +151,20 @@ orinoco_cs_config(struct pcmcia_device *link)
|
||||
goto failed;
|
||||
}
|
||||
|
||||
ret = pcmcia_request_irq(link, orinoco_interrupt);
|
||||
if (ret)
|
||||
goto failed;
|
||||
|
||||
/* We initialize the hermes structure before completing PCMCIA
|
||||
* configuration just in case the interrupt handler gets
|
||||
* called. */
|
||||
mem = ioport_map(link->resource[0]->start,
|
||||
resource_size(link->resource[0]));
|
||||
if (!mem)
|
||||
goto failed;
|
||||
|
||||
/* We initialize the hermes structure before completing PCMCIA
|
||||
* configuration just in case the interrupt handler gets
|
||||
* called. */
|
||||
hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING);
|
||||
|
||||
ret = pcmcia_request_irq(link, orinoco_interrupt);
|
||||
if (ret)
|
||||
goto failed;
|
||||
|
||||
ret = pcmcia_enable_device(link);
|
||||
if (ret)
|
||||
goto failed;
|
||||
|
@@ -229,3 +229,11 @@ void orinoco_add_hostscan_results(struct orinoco_private *priv,
|
||||
priv->scan_request = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void orinoco_scan_done(struct orinoco_private *priv, bool abort)
|
||||
{
|
||||
if (priv->scan_request) {
|
||||
cfg80211_scan_done(priv->scan_request, abort);
|
||||
priv->scan_request = NULL;
|
||||
}
|
||||
}
|
||||
|
@@ -16,5 +16,6 @@ void orinoco_add_extscan_result(struct orinoco_private *priv,
|
||||
void orinoco_add_hostscan_results(struct orinoco_private *dev,
|
||||
unsigned char *buf,
|
||||
size_t len);
|
||||
void orinoco_scan_done(struct orinoco_private *priv, bool abort);
|
||||
|
||||
#endif /* _ORINOCO_SCAN_H_ */
|
||||
|
@@ -214,21 +214,21 @@ spectrum_cs_config(struct pcmcia_device *link)
|
||||
goto failed;
|
||||
}
|
||||
|
||||
ret = pcmcia_request_irq(link, orinoco_interrupt);
|
||||
if (ret)
|
||||
goto failed;
|
||||
|
||||
/* We initialize the hermes structure before completing PCMCIA
|
||||
* configuration just in case the interrupt handler gets
|
||||
* called. */
|
||||
mem = ioport_map(link->resource[0]->start,
|
||||
resource_size(link->resource[0]));
|
||||
if (!mem)
|
||||
goto failed;
|
||||
|
||||
/* We initialize the hermes structure before completing PCMCIA
|
||||
* configuration just in case the interrupt handler gets
|
||||
* called. */
|
||||
hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING);
|
||||
hw->eeprom_pda = true;
|
||||
|
||||
ret = pcmcia_request_irq(link, orinoco_interrupt);
|
||||
if (ret)
|
||||
goto failed;
|
||||
|
||||
ret = pcmcia_enable_device(link);
|
||||
if (ret)
|
||||
goto failed;
|
||||
|
@@ -911,10 +911,10 @@ static int orinoco_ioctl_set_auth(struct net_device *dev,
|
||||
*/
|
||||
if (param->value) {
|
||||
priv->tkip_cm_active = 1;
|
||||
ret = hermes_enable_port(hw, 0);
|
||||
ret = hermes_disable_port(hw, 0);
|
||||
} else {
|
||||
priv->tkip_cm_active = 0;
|
||||
ret = hermes_disable_port(hw, 0);
|
||||
ret = hermes_enable_port(hw, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user