1. 06 10月, 2010 6 次提交
  2. 29 9月, 2010 2 次提交
    • J
      mac80211: Fix WMM driver queue configuration · f2176d72
      Juuso Oikarinen 提交于
      The WMM parameter configuration function (ieee80211_sta_wmm_params) only
      configures the WMM parameters to the driver is the wmm_last_param_set
      counter value is changed by the AP.
      
      The wmm_last_param_set is initialized to -1 on association in order to ensure
      the configuration is made to the driver at least once on association, but
      currently this initialization is done *after* the WMM parameter configuration
      function was called.
      
      This leads to unreliability in the driver getting properly configured on first
      association (depending on what counter value the AP happens to use.) When
      disassociating (the wmm default parameters are configured to the driver) and
      then reassociating, due to the above the WMM configuration is not set to the
      driver at all.
      
      On drivers without beacon filtering the problem is corrected by later beacons,
      but on drivers with beacon filtering the WMM will remain permanently incorrectly
      configured.
      
      Fix this by moving the initialization of wmm_last_param_set to -1 before
      ieee80211_sta_wmm_params is called on association.
      Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f2176d72
    • L
      mac80211: fix offchannel assumption upon association · 8d4780eb
      Luis R. Rodriguez 提交于
      Association is dealt with as an atomic offchannel operation,
      we do this because we don't know we are associated until we
      get the associatin response from the AP. When we do get the
      associatin response though we were never clearing the offchannel
      state. This has a few implications, we told drivers we were
      still offchannel, and the first configured TX power for the
      channel does not take into account any power constraints.
      
      For ath9k this meant ANI calibration would not start upon
      association, and we'd have to wait until the first bgscan
      to be triggered. There may be other issues this resolves
      but I'm too lazy to comb the code to check.
      
      Cc: stable@kernel.org
      Cc: Amod Bodas <amod.bodas@atheros.com>
      Cc: Vasanth Thiagarajan <vasanth.thiagarajan@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8d4780eb
  3. 28 9月, 2010 9 次提交
  4. 25 9月, 2010 4 次提交
  5. 17 9月, 2010 10 次提交
  6. 15 9月, 2010 3 次提交
  7. 02 9月, 2010 1 次提交
  8. 01 9月, 2010 3 次提交
  9. 31 8月, 2010 1 次提交
    • J
      mac80211: delete work timer · 071249b1
      Johannes Berg 提交于
      The new workqueue changes helped me find this bug
      that's been lingering since the changes to the work
      processing in mac80211 -- the work timer is never
      deleted properly. Do that to avoid having it fire
      after all data structures have been freed. It can't
      be re-armed because all it will do, if running, is
      schedule the work, but that gets flushed later and
      won't have anything to do since all work items are
      gone by now (by way of interface removal).
      
      Cc: stable@kernel.org [2.6.34+]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      071249b1
  10. 28 8月, 2010 1 次提交
    • J
      mac80211: fix offchannel queue stop · 5b714c6a
      Johannes Berg 提交于
      Somebody noticed this problem, and I outlined
      to them how to fix it, but haven't heard back
      from them. So while I was adding the state
      field I figured I could use it to fix it.
      
      The problem, as I understand it, is that when
      we go offchannel while the driver has a queue
      stopped, the driver will likely start draining
      the queue and then enable it while offchannel.
      This in turn will enable the interface queue,
      and that leads to transmitting data frames on
      the wrong channel.
      
      Fix this by keeping track of offchannel status
      per interface, and not enabling the interface
      queues on interfaces that are offchannel when
      the driver enables a queue.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5b714c6a