1. 03 11月, 2009 1 次提交
  2. 28 10月, 2009 1 次提交
    • Z
      iwlwifi: use paged Rx · 2f301227
      Zhu Yi 提交于
      This switches the iwlwifi driver to use paged skb from linear skb for Rx
      buffer. So that it relieves some Rx buffer allocation pressure for the
      memory subsystem. Currently iwlwifi (4K for 3945) requests 8K bytes for
      Rx buffer. Due to the trailing skb_shared_info in the skb->data,
      alloc_skb() will do the next order allocation, which is 16K bytes. This
      is suboptimal and more likely to fail when the system is under memory
      usage pressure. Switching to paged Rx skb lets us allocate the RXB
      directly by alloc_pages(), so that only order 1 allocation is required.
      
      It also adjusts the area spin_lock (with IRQ disabled) protected in the
      tasklet because tasklet guarentees to run only on one CPU and the new
      unprotected code can be preempted by the IRQ handler. This saves us from
      spawning another workqueue to make skb_linearize/__pskb_pull_tail happy
      (which cannot be called in hard irq context).
      
      Finally, mac80211 doesn't support paged Rx yet. So we linearize the skb
      for all the management frames and software decryption or defragmentation
      required data frames before handed to mac80211. For all the other frames,
      we __pskb_pull_tail 64 bytes in the linear area of the skb for mac80211
      to handle them properly.
      Signed-off-by: NZhu Yi <yi.zhu@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2f301227
  3. 23 9月, 2009 1 次提交
    • R
      iwlwifi: do not send sync command while holding spinlock · bba98871
      Reinette Chatre 提交于
      commit 10c994ca70e8e94bbc85a5bf13de5911ee8de4d2 "iwlwifi: fix remove key
      error" fixed an error reported by mac80211 during interface down. The fix
      involved changing an async command to synchronous. Unfortunately this was
      inside a spinlock section in which we cannot sleep.
      
      Modify the sending of the command back to async. This causes the mac80211
      error "mac80211-phy0: failed to remove key (0, ff:ff:ff:ff:ff:ff) from
      hardware (-16)." to return. This error is not serious since this occurs
      during interface down and the keys will be cleared anyway when ucode is
      unloaded. Having this error message is thus less serious than a potential
      deadlock introduced when sleeping while holding a spinlock. We will have to
      find another fix for that error.
      
      This is a revert of the abovementioned commit.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bba98871
  4. 29 8月, 2009 1 次提交
  5. 14 8月, 2009 2 次提交
  6. 05 8月, 2009 1 次提交
  7. 04 8月, 2009 1 次提交
  8. 28 7月, 2009 2 次提交
  9. 25 7月, 2009 3 次提交
    • R
      iwlwifi: make debug level more user friendly · a562a9dd
      Reinette Chatre 提交于
      * Deprecate the "debug50" module parameter used to obtain
        5000 series and up debugging. Replace it with "debug" module
        parameter to match with original driver and be consistent
        between them. The "debug50" module parameter can still be used,
        except that the module parameter is not writable in keeping
        with its previous state. We currently just mark it as "deprecated"
        and do not have it in the feature-removal-schedule. Some more
        cleanup of module parameters needs to be done and can then be
        entered together.
      
      * Only make "debug" module parameters visible if the driver
        is compiled with CONFIG_IWLWIFI_DEBUG. This will eliminate
        a lot of confusion where users think they have set debug flags
        but yet cannot see any debug output.
      
      * Make module parameters writable. This eliminates the need for the
        "debug_level" sysfs file, which can now also be deprecated and
        added to feature-removal-schedule. This file is in significant
        use though with many iwlwifi documents and text referring users
        to it. We can thus not take its removal lightly and keep it around.
      
      With iwlcore shared between iwlagn and iwl3945 we really do not need
      debug module parameters for each but can instead have one debug
      module parameter for the iwlcore module. The same issue is here as
      with the sysfs file - a lot of iwlwifi documentation and text (like
      bug reports) rely on iwlagn and iwl3945 having this module parameter,
      so changing this to a module parameter of iwlcore will have significant
      impact and we do not do this for that reason.
      
      One consequence of this patch is that if a user is running a system
      with both 3945 and later hardware then the setting of the one module
      parameter will affect the value of the other. The likelihood of this
      seems low - and even if this setup is present it does not seem like an
      issue for both modules to run with the same debug level.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a562a9dd
    • R
      iwlagn: do not send key clear commands when rfkill enabled · 2d1bb9e5
      Reinette Chatre 提交于
      Do all key clearing except sending sommands to device when rfkill
      enabled. When rfkill enabled the interface is brought down and will
      be brought back up correctly after rfkill is enabled again.
      
      Same change is not needed for iwl3945 as it ignores return code when
      sending key clearing command to device.
      
      This fixes http://bugzilla.kernel.org/show_bug.cgi?id=13742Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Tested-by: NFrans Pop <elendil@planet.nl>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2d1bb9e5
    • L
      iwlwifi: use ieee80211_is_data(fc) · 943ab70f
      Luis R. Rodriguez 提交于
      iwl-agn-rs.c already uses this.
      
      Cc: Zhu Yi <yi.zhu@intel.com>
      Cc: Reinette Chatre <reinette.chatre@intel.com>
      Cc: ipw3945-devel@lists.sourceforge.net
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      943ab70f
  10. 04 6月, 2009 2 次提交
  11. 07 5月, 2009 1 次提交
  12. 05 5月, 2009 1 次提交
    • R
      iwlwifi: update key flags at time key is set · 299f5462
      Reinette Chatre 提交于
      We need to be symmetrical in what is done when key is set and cleared.
      This is important wrt the key flags as they are used during key
      clearing and if they are not set when the key is set the key cannot be
      cleared completely.
      
      This addresses the many occurences of the WARN found in
      iwl_set_tkip_dynamic_key_info() and tracked in
      http://www.kerneloops.org/searchweek.php?search=iwl_set_dynamic_key
      
      If calling iwl_set_tkip_dynamic_key_info()/iwl_remove_dynamic_key()
      pair a few times in a row will cause that we run out of key space.
      This is because the index stored in the key flags is used by
      iwl_remove_dynamic_key() to decide if it should remove the key.
      Unfortunately the key flags, and hence the key index is currently only
      set at the time the key is written to the device (in
      iwl_update_tkip_key()) and _not_ in iwl_set_tkip_dynamic_key_info().
      Fix this by setting flags in iwl_set_tkip_dynamic_key_info().
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      299f5462
  13. 23 4月, 2009 3 次提交
  14. 28 3月, 2009 1 次提交
  15. 17 3月, 2009 1 次提交
  16. 06 3月, 2009 1 次提交
  17. 10 2月, 2009 1 次提交
  18. 05 2月, 2009 1 次提交
  19. 30 1月, 2009 5 次提交
  20. 13 12月, 2008 2 次提交
  21. 05 12月, 2008 1 次提交
  22. 26 11月, 2008 2 次提交
  23. 11 11月, 2008 1 次提交
  24. 01 11月, 2008 4 次提交