···16321632 u32 cmd, beacon0_valid, beacon1_valid;1633163316341634 if (!b43_is_mode(wl, NL80211_IFTYPE_AP) &&16351635- !b43_is_mode(wl, NL80211_IFTYPE_MESH_POINT))16351635+ !b43_is_mode(wl, NL80211_IFTYPE_MESH_POINT) &&16361636+ !b43_is_mode(wl, NL80211_IFTYPE_ADHOC))16361637 return;1637163816381639 /* This is the bottom half of the asynchronous beacon update. */
+14-7
drivers/net/wireless/ipw2x00/ipw2100.c
···19031903static int ipw2100_net_init(struct net_device *dev)19041904{19051905 struct ipw2100_priv *priv = libipw_priv(dev);19061906+19071907+ return ipw2100_up(priv, 1);19081908+}19091909+19101910+static int ipw2100_wdev_init(struct net_device *dev)19111911+{19121912+ struct ipw2100_priv *priv = libipw_priv(dev);19061913 const struct libipw_geo *geo = libipw_get_geo(priv->ieee);19071914 struct wireless_dev *wdev = &priv->ieee->wdev;19081908- int ret;19091915 int i;19101910-19111911- ret = ipw2100_up(priv, 1);19121912- if (ret)19131913- return ret;1914191619151917 memcpy(wdev->wiphy->perm_addr, priv->mac_addr, ETH_ALEN);19161918···63526350 "Error calling register_netdev.\n");63536351 goto fail;63546352 }63536353+ registered = 1;63546354+63556355+ err = ipw2100_wdev_init(dev);63566356+ if (err)63576357+ goto fail;6355635863566359 mutex_lock(&priv->action_mutex);63576357- registered = 1;6358636063596361 IPW_DEBUG_INFO("%s: Bound to %s\n", dev->name, pci_name(pci_dev));63606362···6395638963966390 fail_unlock:63976391 mutex_unlock(&priv->action_mutex);63986398-63926392+ wiphy_unregister(priv->ieee->wdev.wiphy);63936393+ kfree(priv->ieee->bg_band.channels);63996394 fail:64006395 if (dev) {64016396 if (registered)
+26-13
drivers/net/wireless/ipw2x00/ipw2200.c
···1142511425/* Called by register_netdev() */1142611426static int ipw_net_init(struct net_device *dev)1142711427{1142811428+ int rc = 0;1142911429+ struct ipw_priv *priv = libipw_priv(dev);1143011430+1143111431+ mutex_lock(&priv->mutex);1143211432+ if (ipw_up(priv))1143311433+ rc = -EIO;1143411434+ mutex_unlock(&priv->mutex);1143511435+1143611436+ return rc;1143711437+}1143811438+1143911439+static int ipw_wdev_init(struct net_device *dev)1144011440+{1142811441 int i, rc = 0;1142911442 struct ipw_priv *priv = libipw_priv(dev);1143011443 const struct libipw_geo *geo = libipw_get_geo(priv->ieee);1143111444 struct wireless_dev *wdev = &priv->ieee->wdev;1143211432- mutex_lock(&priv->mutex);1143311433-1143411434- if (ipw_up(priv)) {1143511435- rc = -EIO;1143611436- goto out;1143711437- }11438114451143911446 memcpy(wdev->wiphy->perm_addr, priv->mac_addr, ETH_ALEN);1144011447···1152611519 set_wiphy_dev(wdev->wiphy, &priv->pci_dev->dev);11527115201152811521 /* With that information in place, we can now register the wiphy... */1152911529- if (wiphy_register(wdev->wiphy)) {1152211522+ if (wiphy_register(wdev->wiphy))1153011523 rc = -EIO;1153111531- goto out;1153211532- }1153311533-1153411524out:1153511535- mutex_unlock(&priv->mutex);1153611525 return rc;1153711526}1153811527···1183511832 goto out_remove_sysfs;1183611833 }11837118341183511835+ err = ipw_wdev_init(net_dev);1183611836+ if (err) {1183711837+ IPW_ERROR("failed to register wireless device\n");1183811838+ goto out_unregister_netdev;1183911839+ }1184011840+1183811841#ifdef CONFIG_IPW2200_PROMISCUOUS1183911842 if (rtap_iface) {1184011843 err = ipw_prom_alloc(priv);1184111844 if (err) {1184211845 IPW_ERROR("Failed to register promiscuous network "1184311846 "device (error %d).\n", err);1184411844- unregister_netdev(priv->net_dev);1184511845- goto out_remove_sysfs;1184711847+ wiphy_unregister(priv->ieee->wdev.wiphy);1184811848+ kfree(priv->ieee->a_band.channels);1184911849+ kfree(priv->ieee->bg_band.channels);1185011850+ goto out_unregister_netdev;1184611851 }1184711852 }1184811853#endif···11862118511186311852 return 0;11864118531185411854+ out_unregister_netdev:1185511855+ unregister_netdev(priv->net_dev);1186511856 out_remove_sysfs:1186611857 sysfs_remove_group(&pdev->dev.kobj, &ipw_attribute_group);1186711858 out_release_irq:
+5
drivers/net/wireless/iwlwifi/iwl-agn.c
···21402140 IEEE80211_HW_SPECTRUM_MGMT |21412141 IEEE80211_HW_REPORTS_TX_ACK_STATUS;2142214221432143+ /*21442144+ * Including the following line will crash some AP's. This21452145+ * workaround removes the stimulus which causes the crash until21462146+ * the AP software can be fixed.21432147 hw->max_tx_aggregation_subframes = LINK_QUAL_AGG_FRAME_LIMIT_DEF;21482148+ */2144214921452150 hw->flags |= IEEE80211_HW_SUPPORTS_PS |21462151 IEEE80211_HW_SUPPORTS_DYNAMIC_PS;
+26-21
drivers/net/wireless/rt2x00/rt2800lib.c
···36973697 rt2800_regbusy_read(rt2x00dev, EFUSE_CTRL, EFUSE_CTRL_KICK, ®);3698369836993699 /* Apparently the data is read from end to start */37003700- rt2800_register_read_lock(rt2x00dev, EFUSE_DATA3,37013701- (u32 *)&rt2x00dev->eeprom[i]);37023702- rt2800_register_read_lock(rt2x00dev, EFUSE_DATA2,37033703- (u32 *)&rt2x00dev->eeprom[i + 2]);37043704- rt2800_register_read_lock(rt2x00dev, EFUSE_DATA1,37053705- (u32 *)&rt2x00dev->eeprom[i + 4]);37063706- rt2800_register_read_lock(rt2x00dev, EFUSE_DATA0,37073707- (u32 *)&rt2x00dev->eeprom[i + 6]);37003700+ rt2800_register_read_lock(rt2x00dev, EFUSE_DATA3, ®);37013701+ /* The returned value is in CPU order, but eeprom is le */37023702+ rt2x00dev->eeprom[i] = cpu_to_le32(reg);37033703+ rt2800_register_read_lock(rt2x00dev, EFUSE_DATA2, ®);37043704+ *(u32 *)&rt2x00dev->eeprom[i + 2] = cpu_to_le32(reg);37053705+ rt2800_register_read_lock(rt2x00dev, EFUSE_DATA1, ®);37063706+ *(u32 *)&rt2x00dev->eeprom[i + 4] = cpu_to_le32(reg);37073707+ rt2800_register_read_lock(rt2x00dev, EFUSE_DATA0, ®);37083708+ *(u32 *)&rt2x00dev->eeprom[i + 6] = cpu_to_le32(reg);3708370937093710 mutex_unlock(&rt2x00dev->csr_mutex);37103711}···38713870 return -ENODEV;38723871 }3873387238743874- if (!rt2x00_rf(rt2x00dev, RF2820) &&38753875- !rt2x00_rf(rt2x00dev, RF2850) &&38763876- !rt2x00_rf(rt2x00dev, RF2720) &&38773877- !rt2x00_rf(rt2x00dev, RF2750) &&38783878- !rt2x00_rf(rt2x00dev, RF3020) &&38793879- !rt2x00_rf(rt2x00dev, RF2020) &&38803880- !rt2x00_rf(rt2x00dev, RF3021) &&38813881- !rt2x00_rf(rt2x00dev, RF3022) &&38823882- !rt2x00_rf(rt2x00dev, RF3052) &&38833883- !rt2x00_rf(rt2x00dev, RF3320) &&38843884- !rt2x00_rf(rt2x00dev, RF5370) &&38853885- !rt2x00_rf(rt2x00dev, RF5390)) {38863886- ERROR(rt2x00dev, "Invalid RF chipset detected.\n");38733873+ switch (rt2x00dev->chip.rf) {38743874+ case RF2820:38753875+ case RF2850:38763876+ case RF2720:38773877+ case RF2750:38783878+ case RF3020:38793879+ case RF2020:38803880+ case RF3021:38813881+ case RF3022:38823882+ case RF3052:38833883+ case RF3320:38843884+ case RF5370:38853885+ case RF5390:38863886+ break;38873887+ default:38883888+ ERROR(rt2x00dev, "Invalid RF chipset 0x%x detected.\n",38893889+ rt2x00dev->chip.rf);38873890 return -ENODEV;38883891 }38893892
+8-9
net/bluetooth/hci_event.c
···5858 if (status)5959 return;60606161- if (test_bit(HCI_MGMT, &hdev->flags) &&6262- test_and_clear_bit(HCI_INQUIRY, &hdev->flags))6161+ if (test_and_clear_bit(HCI_INQUIRY, &hdev->flags) &&6262+ test_bit(HCI_MGMT, &hdev->flags))6363 mgmt_discovering(hdev->id, 0);64646565 hci_req_complete(hdev, HCI_OP_INQUIRY_CANCEL, status);···7676 if (status)7777 return;78787979- if (test_bit(HCI_MGMT, &hdev->flags) &&8080- test_and_clear_bit(HCI_INQUIRY, &hdev->flags))7979+ if (test_and_clear_bit(HCI_INQUIRY, &hdev->flags) &&8080+ test_bit(HCI_MGMT, &hdev->flags))8181 mgmt_discovering(hdev->id, 0);82828383 hci_conn_check_pending(hdev);···959959 return;960960 }961961962962- if (test_bit(HCI_MGMT, &hdev->flags) &&963963- !test_and_set_bit(HCI_INQUIRY,964964- &hdev->flags))962962+ if (!test_and_set_bit(HCI_INQUIRY, &hdev->flags) &&963963+ test_bit(HCI_MGMT, &hdev->flags))965964 mgmt_discovering(hdev->id, 1);966965}967966···1339134013401341 BT_DBG("%s status %d", hdev->name, status);1341134213421342- if (test_bit(HCI_MGMT, &hdev->flags) &&13431343- test_and_clear_bit(HCI_INQUIRY, &hdev->flags))13431343+ if (test_and_clear_bit(HCI_INQUIRY, &hdev->flags) &&13441344+ test_bit(HCI_MGMT, &hdev->flags))13441345 mgmt_discovering(hdev->id, 0);1345134613461347 hci_req_complete(hdev, HCI_OP_INQUIRY, status);