1. 04 10月, 2011 1 次提交
    • E
      mac80211: pass vif param to conf_tx() callback · 8a3a3c85
      Eliad Peller 提交于
      tx params should be configured per interface.
      add ieee80211_vif param to the conf_tx callback,
      and change all the drivers that use this callback.
      
      The following spatch was used:
      @rule1@
      struct ieee80211_ops ops;
      identifier conf_tx_op;
      @@
      	ops.conf_tx = conf_tx_op;
      
      @rule2@
      identifier rule1.conf_tx_op;
      identifier hw, queue, params;
      @@
      	conf_tx_op (
      -		struct ieee80211_hw *hw,
      +		struct ieee80211_hw *hw, struct ieee80211_vif *vif,
      		u16 queue,
      		const struct ieee80211_tx_queue_params *params) {...}
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8a3a3c85
  2. 01 10月, 2011 1 次提交
    • J
      mac80211: implement uAPSD · 47086fc5
      Johannes Berg 提交于
      Add uAPSD support to mac80211. This is probably not
      possible with all devices, so advertising it with
      the cfg80211 flag will be left up to drivers that
      want it.
      
      Due to my previous patches it is now a fairly
      straight-forward extension. Drivers need to have
      accurate TX status reporting for the EOSP frame.
      For drivers that buffer themselves, the provided
      APIs allow releasing the right number of frames,
      but then drivers need to set EOSP and more-data
      themselves. This is documented in more detail in
      the new code itself.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      47086fc5
  3. 28 9月, 2011 1 次提交
  4. 22 9月, 2011 2 次提交
    • S
      iwlegacy: do not use interruptible waits · 65d0f19e
      Stanislaw Gruszka 提交于
      iwlegacy version of fix:
      
      commit effd4d9a
      Author: Johannes Berg <johannes.berg@intel.com>
      Date:   Thu Sep 15 11:46:52 2011 -0700
      
          iwlagn: do not use interruptible waits
      
          Since the dawn of its time, iwlwifi has used
          interruptible waits to wait for synchronous
          commands and firmware loading.
      
          This leads to "interesting" bugs, because it
          can't actually handle the interruptions; for
          example when a command sending is interrupted
          it will assume the command completed fully,
          and then leave it pending, which leads to all
          kinds of trouble when the command finishes
          later.
      
          Since there's no easy way to gracefully deal
          with interruptions, fix the driver to not use
          interruptible waits.
      
          This at least fixes the error
          iwlagn 0000:02:00.0: Error: Response NULL in  'REPLY_SCAN_ABORT_CMD'
      
          I have seen in P2P testing, but it is likely
          that there are other errors caused by this.
      
      Cc: stable@kernel.org # 2.6.39+
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      65d0f19e
    • S
      iwlegacy: fix command queue timeout · 2e2a41d6
      Stanislaw Gruszka 提交于
      iwlegacy version of fix:
      
      commit 282cdb32
      Author: Johannes Berg <johannes.berg@intel.com>
      Date:   Mon Sep 12 12:09:10 2011 -0700
      
          iwlagn: fix command queue timeout
      
          If the command queue is constantly busy,
          which can happen in P2P, the hangcheck
          timer will frequently find a command in
          it and will eventually reset the device
          because nothing sets the timestamp for
          this queue when commands are processed.
      
          Fix this by setting the timestamp when
          a command completes.
      
      iwlegacy does not support P2P, but this patch fix possible
      unneeded hardware resets, hence is needed.
      
      Cc: stable@kernel.org  # 2.6.39+
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2e2a41d6
  5. 30 8月, 2011 1 次提交
  6. 09 8月, 2011 1 次提交
  7. 02 8月, 2011 1 次提交
  8. 21 7月, 2011 1 次提交
    • P
      treewide: fix potentially dangerous trailing ';' in #defined values/expressions · 497888cf
      Phil Carmody 提交于
      All these are instances of
        #define NAME value;
      or
        #define NAME(params_opt) value;
      
      These of course fail to build when used in contexts like
        if(foo $OP NAME)
        while(bar $OP NAME)
      and may silently generate the wrong code in contexts such as
        foo = NAME + 1;    /* foo = value; + 1; */
        bar = NAME - 1;    /* bar = value; - 1; */
        baz = NAME & quux; /* baz = value; & quux; */
      
      Reported on comp.lang.c,
      Message-ID: <ab0d55fe-25e5-482b-811e-c475aa6065c3@c29g2000yqd.googlegroups.com>
      Initial analysis of the dangers provided by Keith Thompson in that thread.
      
      There are many more instances of more complicated macros having unnecessary
      trailing semicolons, but this pile seems to be all of the cases of simple
      values suffering from the problem. (Thus things that are likely to be found
      in one of the contexts above, more complicated ones aren't.)
      Signed-off-by: NPhil Carmody <ext-phil.2.carmody@nokia.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      497888cf
  9. 14 7月, 2011 1 次提交
  10. 08 7月, 2011 1 次提交
    • J
      mac80211: fix TKIP races, make API easier to use · 523b02ea
      Johannes Berg 提交于
      Our current TKIP code races against itself on TX
      since we can process multiple packets at the same
      time on different ACs, but they all share the TX
      context for TKIP. This can lead to bad IVs etc.
      
      Also, the crypto offload helper code just obtains
      the P1K/P2K from the cache, and can update it as
      well, but there's no guarantee that packets are
      really processed in order.
      
      To fix these issues, first introduce a spinlock
      that will protect the IV16/IV32 values in the TX
      context. This first step makes sure that we don't
      assign the same IV multiple times or get confused
      in other ways.
      
      Secondly, change the way the P1K cache works. I
      add a field "p1k_iv32" that stores the value of
      the IV32 when the P1K was last recomputed, and
      if different from the last time, then a new P1K
      is recomputed. This can cause the P1K computation
      to flip back and forth if packets are processed
      out of order. All this also happens under the new
      spinlock.
      
      Finally, because there are argument differences,
      split up the ieee80211_get_tkip_key() API into
      ieee80211_get_tkip_p1k() and ieee80211_get_tkip_p2k()
      and give them the correct arguments.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      523b02ea
  11. 30 6月, 2011 1 次提交
  12. 21 6月, 2011 1 次提交
  13. 18 6月, 2011 1 次提交
  14. 11 6月, 2011 6 次提交
  15. 09 6月, 2011 1 次提交
  16. 07 6月, 2011 2 次提交
  17. 04 6月, 2011 5 次提交
  18. 02 6月, 2011 1 次提交
  19. 28 5月, 2011 1 次提交
  20. 17 5月, 2011 1 次提交
    • S
      iwlegacy: Silence DEBUG_STRICT_USER_COPY_CHECKS=y warning · 8220ba3e
      Stephen Boyd 提交于
      Enabling DEBUG_STRICT_USER_COPY_CHECKS causes the following
      warning:
      
      In file included from arch/x86/include/asm/uaccess.h:573,
                       from include/net/checksum.h:25,
                       from include/linux/skbuff.h:28,
                       from drivers/net/wireless/iwlegacy/iwl-4965-rs.c:28:
      In function 'copy_from_user',
          inlined from 'iwl4965_rs_sta_dbgfs_scale_table_write' at
          drivers/net/wireless/iwlegacy/iwl-4965-rs.c:2616:
      arch/x86/include/asm/uaccess_64.h:65:
      warning: call to 'copy_from_user_overflow' declared with
      attribute warning: copy_from_user() buffer size is not provably
      correct
      
      presumably due to buf_size being signed causing GCC to fail to
      see that buf_size can't become negative.
      
      Cc: Johannes Berg <johannes.berg@intel.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8220ba3e
  21. 11 5月, 2011 1 次提交
    • S
      iwlegacy: fix IBSS mode crashes · eb85de3f
      Stanislaw Gruszka 提交于
      We should not switch to non-IBSS channels when working in IBSS mode,
      otherwise there are microcode errors, and after some time system
      crashes.
      
      This bug is only observable when software scan is used in IBSS mode,
      so should be considered as regression after:
      
      commit 0263aa45
      Author: Stanislaw Gruszka <sgruszka@redhat.com>
      Date:   Tue Mar 29 11:24:21 2011 +0200
      
          iwl3945: disable hw scan by default
      
      However IBSS mode check, which this patch add again, was removed by
      
      commit b2f30e8b
      Author: Johannes Berg <johannes.berg@intel.com>
      Date:   Thu Jan 21 07:32:20 2010 -0800
      
          iwlwifi: remove IBSS channel sanity check
      
      That commit claim that mac80211 will not use non-IBSS channel in IBSS
      mode, what definitely is not true. Bug probably should be fixed in
      mac80211, but that will require more work, so better to apply that patch
      temporally, and provide proper mac80211 fix latter.
      
      Resolves:
      https://bugzilla.kernel.org/show_bug.cgi?id=34452Reported-and-tested-by: NMikko Rapeli <mikko.rapeli@iki.fi>
      Cc: stable@kernel.org # 2.6.38.5+
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      eb85de3f
  22. 30 4月, 2011 8 次提交