1. 15 11月, 2011 28 次提交
  2. 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
  3. 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
  4. 28 9月, 2011 1 次提交
  5. 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
  6. 30 8月, 2011 1 次提交
  7. 09 8月, 2011 1 次提交
  8. 02 8月, 2011 1 次提交
  9. 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
  10. 14 7月, 2011 1 次提交
  11. 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
  12. 30 6月, 2011 1 次提交