1. 27 7月, 2010 11 次提交
    • J
      minstrel: don't complain about feedback for unrequested rates · ea65145d
      John W. Linville 提交于
      "It's not problematic if minstrel gets feedback for rates that it
      doesn't have in its list, it should just ignore it. - Felix"
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Cc: Felix Fietkau <nbd@openwrt.org>
      ea65145d
    • J
      minstrel_ht: remove unnecessary NULL check in minstrel_ht_update_caps · 00fc90c8
      John W. Linville 提交于
      If sta is NULL, we will have problems long before we get here...
      Reported-by: NDan Carpenter <error27@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Cc: Felix Fietkau <nbd@openwrt.org>
      00fc90c8
    • J
      iwlwifi: assume vif is NULL for internal scans and non-NULL otherwise · a6e492b9
      John W. Linville 提交于
      The current practice of checking vif for NULL in one place but not
      another seems to confuse some static checkers, smatch in particular.
      Since vif will only be NULL in the case of internal scans, adjust the
      checks accordingly.
      Reported-by: NDan Carpenter <error27@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a6e492b9
    • J
      MAINTAINERS: remove entry for wavelan · 6cb8755b
      John W. Linville 提交于
      The driver is already removed from drivers/staging.  The wireless
      extensions part is not really valid anymore either, since wext got moved
      and refactored, etc.
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6cb8755b
    • J
      4086b9ca
    • J
      f52a5490
    • J
      MAINTAINERS: mark prism54 obsolete · 1d89cae1
      John W. Linville 提交于
      The prism54 driver had an entry in feature-removal-schedule.txt and it
      sees very little activity other than API-change "bombing runs".  The
      mac80211-based p54 driver should be used instead.
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      1d89cae1
    • J
      rtl8180: silence "dubious: x | !y" sparse warning · 28eb3e5a
      John W. Linville 提交于
        CHECK   drivers/net/wireless/rtl818x/rtl8180_rtl8225.c
      drivers/net/wireless/rtl818x/rtl8180_rtl8225.c:53:33: warning: dubious: x | !y
      
      The existing code is clever and works fine, but it's not worth even a
      single line of Sparse warning SPAM...
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      28eb3e5a
    • J
      rtl8180: improve signal reporting for actual rtl8180 hardware · 8b73fb8e
      John W. Linville 提交于
      Adapted from Realtek-provided driver...
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Tested-by: NPauli Nieminen <suokkos@gmail.com>
      8b73fb8e
    • J
      wl1251: fix sparse-generated warnings · 1ab36d68
      John W. Linville 提交于
        CHECK   drivers/net/wireless/wl12xx/wl1251_tx.c
      drivers/net/wireless/wl12xx/wl1251_tx.c:118:32: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_tx.c:118:32:    expected unsigned short [unsigned] [usertype] frag_threshold
      drivers/net/wireless/wl12xx/wl1251_tx.c:118:32:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/wl12xx/wl1251_tx.c:164:24: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_tx.c:164:24:    expected unsigned short [unsigned] [usertype] length
      drivers/net/wireless/wl12xx/wl1251_tx.c:164:24:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/wl12xx/wl1251_tx.c:166:22: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_tx.c:166:22:    expected unsigned short [unsigned] [usertype] rate
      drivers/net/wireless/wl12xx/wl1251_tx.c:166:22:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/wl12xx/wl1251_tx.c:167:29: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_tx.c:167:29:    expected unsigned int [unsigned] [usertype] expiry_time
      drivers/net/wireless/wl12xx/wl1251_tx.c:167:29:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/wl12xx/wl1251_tx.c:200:43: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/wl12xx/wl1251_tx.c:200:43:    expected restricted __le16 [usertype] fc
      drivers/net/wireless/wl12xx/wl1251_tx.c:200:43:    got unsigned short [unsigned] [assigned] [usertype] fc
        CHECK   drivers/net/wireless/wl12xx/wl1251_cmd.c
      drivers/net/wireless/wl12xx/wl1251_cmd.c:428:39: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_cmd.c:428:39:    expected unsigned int [unsigned] [usertype] rx_config_options
      drivers/net/wireless/wl12xx/wl1251_cmd.c:428:39:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/wl12xx/wl1251_cmd.c:429:39: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_cmd.c:429:39:    expected unsigned int [unsigned] [usertype] rx_filter_options
      drivers/net/wireless/wl12xx/wl1251_cmd.c:429:39:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/wl12xx/wl1251_cmd.c:435:29: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_cmd.c:435:29:    expected unsigned short [unsigned] [usertype] tx_rate
      drivers/net/wireless/wl12xx/wl1251_cmd.c:435:29:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/wl12xx/wl1251_cmd.c:439:47: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_cmd.c:439:47:    expected unsigned int [unsigned] [usertype] min_duration
      drivers/net/wireless/wl12xx/wl1251_cmd.c:439:47:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/wl12xx/wl1251_cmd.c:441:47: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/wl12xx/wl1251_cmd.c:441:47:    expected unsigned int [unsigned] [usertype] max_duration
      drivers/net/wireless/wl12xx/wl1251_cmd.c:441:47:    got restricted __le32 [usertype] <noident>
        CHECK   drivers/net/wireless/wl12xx/wl1251_boot.c
      drivers/net/wireless/wl12xx/wl1251_boot.c:228:22: warning: symbol 'interrupt' shadows an earlier one
      /home/linville/git/wireless-next-2.6/arch/x86/include/asm/hw_irq.h:132:13: originally declared here
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      1ab36d68
    • J
      iwlagn: use __packed on new structure definitions · da22f795
      John W. Linville 提交于
      "iwlagn: add statistic notification structure for WiFi/BT devices" added
      several new '__attribute__ ((packed))' lines.  Change them to the
      generic __packed.
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      da22f795
  2. 23 7月, 2010 10 次提交
  3. 22 7月, 2010 6 次提交
    • J
      mac80211: proper IBSS locking · 7a17a33c
      Johannes Berg 提交于
      IBSS has never had locking, instead relying on some
      memory barriers etc. That's hard to get right, and
      I think we had it wrong too until the previous patch.
      Since this is not performance sensitive, it doesn't
      make sense to have the maintenance overhead of that,
      so add proper locking.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7a17a33c
    • J
      mac80211: fix IBSS lockdep complaint · bc05d19f
      Johannes Berg 提交于
      Bob reported a lockdep complaint originating in
      the mac80211 IBSS code due to the common work
      struct patch. The reason is that the IBSS and
      station mode code have different locking orders
      for the cfg80211 wdev lock and the work struct
      (where "locking" implies running/canceling).
      
      Fix this by simply not canceling the work in
      the IBSS code, it is not necessary since when
      the REQ_RUN bit is cleared, the work will run
      without effect if it runs. When the interface
      is set down, it is flushed anyway, so there's
      no concern about it running after memory has
      been invalidated either.
      
      This fixes
      https://bugzilla.kernel.org/show_bug.cgi?id=16419
      
      Additionally, looking into this I noticed that
      there's a small window while the IBSS is torn
      down in which the work may be rescheduled and
      the REQ_RUN bit be set again after leave() has
      cleared it when a scan finishes at exactly the
      same time. Avoid that by setting the ssid_len
      to zero before clearing REQ_RUN which signals
      to the scan finish code that this interface is
      not active.
      Reported-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bc05d19f
    • J
      mac80211: refuse shared key auth when WEP is unavailable · 9dca9c49
      Johannes Berg 提交于
      When WEP is not available, we should reject shared
      key authentication because it could never succeed.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9dca9c49
    • M
      cfg80211: fix race between sysfs and cfg80211 · 5a652052
      Maxime Bizon 提交于
      device_add() is called before adding the phy to the cfg80211 device
      list.
      
      So if a userspace program uses sysfs uevents to detect new phy
      devices, and queries nl80211 to get phy info, it can get ENODEV even
      though the phy exists in sysfs.
      
      An easy workaround is to hold the cfg80211 mutex until the phy is
      present in sysfs/cfg80211/debugfs.
      Signed-off-by: NMaxime Bizon <mbizon@freebox.fr>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5a652052
    • L
      b43: silence phy_n sparse warnings · acd82aa8
      Larry Finger 提交于
      drivers/net/wireless/b43/phy_n.c:512:53: warning: cast truncates bits from constant value (ffff0fff becomes fff)
      drivers/net/wireless/b43/phy_n.c:765:66: warning: cast truncates bits from constant value (ffff7fff becomes 7fff)
      drivers/net/wireless/b43/phy_n.c:1012:38: warning: cast truncates bits from constant value (ffff00ff becomes ff)
      drivers/net/wireless/b43/phy_n.c:1119:38: warning: cast truncates bits from constant value (ffff0fff becomes fff)
      drivers/net/wireless/b43/phy_n.c:2458:56: warning: cast truncates bits from constant value (ffff7fff becomes 7fff)
      drivers/net/wireless/b43/phy_n.c:2933:38: warning: cast truncates bits from constant value (ffff0fff becomes fff)
      drivers/net/wireless/b43/phy_n.c:3294:57: warning: cast truncates bits from constant value (ffff3fff becomes 3fff)
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      acd82aa8
    • J
      b43: silence most sparse warnings · 41950bdf
      John W. Linville 提交于
        CHECK   drivers/net/wireless/b43/main.c
      drivers/net/wireless/b43/main.c:111:5: warning: symbol 'b43_modparam_pio' was not declared. Should it be static?
        CHECK   drivers/net/wireless/b43/phy_g.c
      drivers/net/wireless/b43/phy_g.c:975:56: warning: cast truncates bits from constant value (ffff7fff becomes 7fff)
        CHECK   drivers/net/wireless/b43/phy_lp.c
      drivers/net/wireless/b43/phy_lp.c:2701:6: warning: symbol 'b43_lpphy_op_switch_analog' was not declared. Should it be static?
      drivers/net/wireless/b43/phy_lp.c:1148:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff)
      drivers/net/wireless/b43/phy_lp.c:1525:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff)
      drivers/net/wireless/b43/phy_lp.c:1529:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff)
        CHECK   drivers/net/wireless/b43/wa.c
      drivers/net/wireless/b43/wa.c:385:60: warning: cast truncates bits from constant value (ffff00ff becomes ff)
      drivers/net/wireless/b43/wa.c:403:55: warning: cast truncates bits from constant value (ffff00ff becomes ff)
      drivers/net/wireless/b43/wa.c:405:55: warning: cast truncates bits from constant value (ffff00ff becomes ff)
      drivers/net/wireless/b43/wa.c:415:71: warning: cast truncates bits from constant value (ffff0fff becomes fff)
      
      AFAICT, none of these amount to real bugs.  But this reduces warning
      spam from sparse w/o significantly affecting readability of the code (IMHO).
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      41950bdf
  4. 21 7月, 2010 13 次提交
    • J
      rtl8180: improve signal reporting for rtl8185 hardware · 8b74964c
      John W. Linville 提交于
      The existing code seemed to be somewhat based on the datasheet, but
      varied substantially from the vendor-provided driver.  This mirrors the
      handling of the rtl8185 case from that driver, but still neglects the
      specifics for the rtl8180 hardware.  Those details are a bit muddled...
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8b74964c
    • J
      mwl8k: correct/silence sparse warnings · b603742f
      John W. Linville 提交于
      drivers/net/wireless/mwl8k.c:1541:21: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/mwl8k.c:1541:21:    expected restricted __le16 [usertype] result
      drivers/net/wireless/mwl8k.c:1541:21:    got int
      drivers/net/wireless/mwl8k.c:1575:42:    expected unsigned short [unsigned] [usertype] cmd
      drivers/net/wireless/mwl8k.c:1575:42:    got restricted __le16 [usertype] code
      drivers/net/wireless/mwl8k.c:1587:50: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/mwl8k.c:1587:50:    expected unsigned short [unsigned] [usertype] cmd
      drivers/net/wireless/mwl8k.c:1587:50:    got restricted __le16 [usertype] code
      drivers/net/wireless/mwl8k.c:1592:50: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/mwl8k.c:1592:50:    expected unsigned short [unsigned] [usertype] cmd
      drivers/net/wireless/mwl8k.c:1592:50:    got restricted __le16 [usertype] code
      drivers/net/wireless/mwl8k.c:1845:27: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/mwl8k.c:1845:27:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1845:27:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1848:27: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/mwl8k.c:1848:27:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1848:27:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1851:27: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/mwl8k.c:1851:27:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1851:27:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1854:27: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/mwl8k.c:1854:27:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1854:27:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1857:27: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/mwl8k.c:1857:27:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1857:27:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1860:27: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/mwl8k.c:1860:27:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/net/wireless/mwl8k.c:1860:27:    got restricted __le32 [usertype] <noident>
      drivers/net/wireless/mwl8k.c:3055:20: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/mwl8k.c:3055:20:    expected restricted __le16 [usertype] ht_caps
      drivers/net/wireless/mwl8k.c:3055:20:    got unsigned short [unsigned] [usertype] cap
      
      At least the last one looks like a real bug...
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Acked-by: NLennert Buytenhek <buytenh@wantstofly.org>
      b603742f
    • J
      wireless: remove unnecessary reg_same_country_ie_hint · 34782e9e
      John W. Linville 提交于
      "Might as well remove  reg_same_country_ie_hint() completely since we
      already dealt with suspend/resume through the regulatory hint
      disconnect." -- Luis
      Reported-by: NLuis R. Rodriguez <mcgrof@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      34782e9e
    • J
      rt2x00: correct sparse warning in rt2x00debug.c · 16124541
      John W. Linville 提交于
        CHECK   drivers/net/wireless/rt2x00/rt2x00debug.c
      drivers/net/wireless/rt2x00/rt2x00debug.c:193:28: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/rt2x00/rt2x00debug.c:193:28:    expected restricted __le32 [usertype] chip_rev
      drivers/net/wireless/rt2x00/rt2x00debug.c:193:28:    got restricted __le16 [usertype] <noident>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Acked-by: NIvo van Doorn <IvDoorn@gmail.com>
      16124541
    • J
      libipw: correct sparse warnings and mark some variables static · cc40cc56
      John W. Linville 提交于
        CHECK   drivers/net/wireless/ipw2x00/libipw_module.c
      drivers/net/wireless/ipw2x00/libipw_module.c:65:21: warning: symbol 'libipw_config_ops' was not declared. Should it be static?
      drivers/net/wireless/ipw2x00/libipw_module.c:66:6: warning: symbol 'libipw_wiphy_privid' was not declared. Should it be static?
        CHECK   drivers/net/wireless/ipw2x00/libipw_wx.c
      drivers/net/wireless/ipw2x00/libipw_wx.c:415:17: warning: symbol 'ssid' shadows an earlier one
      drivers/net/wireless/ipw2x00/libipw_wx.c:324:9: originally declared here
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cc40cc56
    • J
      ipw2100: mark ipw2100_pm_qos_req static · d267be30
      John W. Linville 提交于
        CHECK   drivers/net/wireless/ipw2x00/ipw2100.c
      drivers/net/wireless/ipw2x00/ipw2100.c:177:28: warning: symbol 'ipw2100_pm_qos_req' was not declared. Should it be static?
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d267be30
    • J
      ath9k: correct sparse identified endian bug in ath_paprd_calibrate · a3d3da14
      John W. Linville 提交于
      drivers/net/wireless/ath/ath9k/main.c:282:26: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/ath/ath9k/main.c:282:26:    expected restricted __le16 [usertype] duration_id
      drivers/net/wireless/ath/ath9k/main.c:282:26:    got int
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a3d3da14
    • J
      wireless: mark cfg80211_is_all_idle as static · 20925fee
      John W. Linville 提交于
        CHECK   net/wireless/sme.c
      net/wireless/sme.c:38:6: warning: symbol 'cfg80211_is_all_idle' was not declared. Should it be static?
      
      It is not used elsewhere, so mark it static.
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      20925fee
    • J
      wireless: correct sparse warning in generated regdb.c · 2ea6fb6d
      John W. Linville 提交于
        CHECK   net/wireless/regdb.c
      net/wireless/regdb.c:8:34: warning: symbol 'reg_regdb' was not declared.  Should it be static?
      net/wireless/regdb.c:11:5: warning: symbol 'reg_regdb_size' was not declared. Should it be static?
      
      Simply include the also generated regdb.h.
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2ea6fb6d
    • J
      wireless: correct sparse warning in wext-compat.c · c28991a0
      John W. Linville 提交于
        CHECK   net/wireless/wext-compat.c
      net/wireless/wext-compat.c:1434:5: warning: symbol 'cfg80211_wext_siwpmksa' was not declared. Should it be static?
      
      Add declaration in cfg80211.h.  Also add an EXPORT_SYMBOL_GPL, since all
      the peer functions have it.
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c28991a0
    • J
      wireless: correct sparse warning in lib80211_crypt_tkip.c · 3f6ff6ba
      John W. Linville 提交于
        CHECK   net/wireless/lib80211_crypt_tkip.c
      net/wireless/lib80211_crypt_tkip.c:581:27: warning: cast to restricted __le16
      
      Caused by dereferencing a "u8 *" and passing it to le16_to_cpu...
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3f6ff6ba
    • J
      wireless: only use alpha2 regulatory information from country IE · 4f366c5d
      John W. Linville 提交于
      The meaning and/or usage of the country IE is somewhat poorly defined.
      In practice, this means that regulatory rulesets in a country IE are
      often incomplete and might be untrustworthy.  This removes the code
      associated with interpreting those rulesets while preserving respect
      for country "alpha2" codes also contained in the country IE.
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4f366c5d
    • D
      mac80211: set carrier on for monitor interfaces on ieee80211_open · 53e9b1de
      David Gnedt 提交于
      If a station interface is reused as monitor interface it is possible that
      the carrier is still set to off. This breaks packet injection on that
      monitor interface.
      Force the carrier on in monitor interface initialisation like it is also done
      for other interface types (e.g. adhoc, mesh point, ap).
      Signed-off-by: NDavid Gnedt <david.gnedt@davizone.at>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      53e9b1de