1. 12 2月, 2013 1 次提交
    • J
      mwl8k: fix band for supported channels · d786f67e
      Jonas Gorski 提交于
      The band field for the supported channels were left unpopulated, making
      them default to 0 == IEEE80211_BAND_2GHZ, even for the 5GHz channels.
      
      This resulted in null pointer accesses if anything tries to access
      wiphy->bands[channel->band] of a 5GHz channel on 5GHz only cards, since
      wiphy->bands[2GHZ] is NULL for them (e.g. cfg80211_chandef_usable does).
      
      Example kernel OOPS:
      
      [  665.669993] Unable to handle kernel NULL pointer dereference at virtual address 00000016
      [  665.678194] pgd = c6d58000
      [  665.680941] [00000016] *pgd=06f8a831, *pte=00000000, *ppte=00000000
      [  665.687303] Internal error: Oops: 17 [#1]
      (...)
      [  666.116373] Backtrace:
      [  666.118866] [<bf0368dc>] (cfg80211_chandef_usable+0x0/0x1bc [cfg80211]) from [<bf025e64>] (nl80211_leave_mesh+0x244/0x264 [cfg80211])
      [  666.130919]  r7:c6d12100 r6:0000143c r5:c0611c48 r4:c0611b98
      [  666.136668] [<bf025d84>] (nl80211_leave_mesh+0x164/0x264 [cfg80211]) from [<bf02634c>] (nl80211_remain_on_channel+0x2a0/0x358 [cfg80211])
      [  666.149074]  r7:c6d12000 r6:c6d12000 r5:c6f4f368 r4:00000003
      [  666.154814] [<bf0262ec>] (nl80211_remain_on_channel+0x240/0x358 [cfg80211]) from [<bf02ddb0>] (nl80211_set_wiphy+0x264/0x560 [cfg80211])
      [  666.167150] [<bf02db4c>] (nl80211_set_wiphy+0x0/0x560 [cfg80211]) from [<c01f94e0>] (genl_rcv_msg+0x1b8/0x1f8)
      [  666.177205] [<c01f9328>] (genl_rcv_msg+0x0/0x1f8) from [<c01f89a0>] (netlink_rcv_skb+0x58/0xb4)
      [  666.185949] [<c01f8948>] (netlink_rcv_skb+0x0/0xb4) from [<c01f931c>] (genl_rcv+0x20/0x2c)
      [  666.194251]  r6:c6f70780 r5:0000002c r4:c6f70780 r3:00000001
      [  666.199973] [<c01f92fc>] (genl_rcv+0x0/0x2c) from [<c01f8418>] (netlink_unicast+0x154/0x1f4)
      [  666.208449]  r4:c785ea00 r3:c01f92fc
      [  666.212057] [<c01f82c4>] (netlink_unicast+0x0/0x1f4) from [<c01f8790>] (netlink_sendmsg+0x230/0x2b0)
      [  666.221240] [<c01f8560>] (netlink_sendmsg+0x0/0x2b0) from [<c01cccf8>] (sock_sendmsg+0x90/0xa4)
      [  666.229986] [<c01ccc68>] (sock_sendmsg+0x0/0xa4) from [<c01cdcb0>] (__sys_sendmsg+0x290/0x298)
      [  666.238637]  r9:00000000 r8:c0611ec8 r6:0000002c r5:c0610000 r4:c0611f64
      [  666.245411] [<c01cda20>] (__sys_sendmsg+0x0/0x298) from [<c01cf52c>] (sys_sendmsg+0x44/0x6c)
      [  666.253897] [<c01cf4e8>] (sys_sendmsg+0x0/0x6c) from [<c00090a0>] (ret_fast_syscall+0x0/0x2c)
      [  666.262460]  r6:00000000 r5:beeff96c r4:00000005
      Signed-off-by: NJonas Gorski <jogo@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d786f67e
  2. 09 2月, 2013 3 次提交
  3. 31 1月, 2013 10 次提交
  4. 23 1月, 2013 1 次提交
  5. 10 1月, 2013 3 次提交
  6. 08 1月, 2013 8 次提交
  7. 03 1月, 2013 1 次提交
    • J
      mac80211: split TX aggregation stop action · 18b559d5
      Johannes Berg 提交于
      When TX aggregation is stopped, there are a few
      different cases:
       - connection with the peer was dropped
       - session stop was requested locally
       - session stop was requested by the peer
       - connection was dropped while a session is stopping
      
      The behaviour in these cases should be different, if
      the connection is dropped then the driver should drop
      all frames, otherwise the frames may continue to be
      transmitted, aggregated in the case of a locally
      requested session stop or unaggregated in the case of
      the peer requesting session stop.
      
      Split these different cases so that the driver can
      act accordingly; however, treat local and remote stop
      the same way and ask the driver to not send frames as
      aggregated packets any more.
      
      In the case of connection drop, the stop callback the
      driver is otherwise supposed to call is no longer
      required.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      18b559d5
  8. 07 12月, 2012 1 次提交
  9. 04 12月, 2012 1 次提交
  10. 17 11月, 2012 1 次提交
    • Y
      mwl8k: Send BASTREAM firmware commands per vif · f95275c4
      Yogesh Ashok Powar 提交于
      The firmware supports 8 macid's corresponding to 8 BSS that can be
      created in an MBSS environment. Currently, BASTREAM commands were always
      sent with macid 0. This macid is used to configure the hardware ampdu
      registers with appropriate BSS address in an MBSS environment.
      This mac address is used by the hardware for various ampdu related requirements
      e.g. source address in BAR generation, BA interpretation e.t.c.
      Using invalid macid results in this mac address not getting appropriately
      configured in the hardware which results in issues during ampdu traffic.
      
      Fix this by sending the BASTREAM commands with appropriate macid.
      Signed-off-by: NNishant Sarmukadam <nishants@marvell.com>
      Signed-off-by: NYogesh Ashok Powar <yogeshp@marvell.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f95275c4
  11. 15 11月, 2012 5 次提交
  12. 31 7月, 2012 1 次提交
  13. 12 7月, 2012 1 次提交
  14. 11 5月, 2012 1 次提交
    • J
      drivers/net: Convert compare_ether_addr to ether_addr_equal · 2e42e474
      Joe Perches 提交于
      Use the new bool function ether_addr_equal to add
      some clarity and reduce the likelihood for misuse
      of compare_ether_addr for sorting.
      
      Done via cocci script:
      
      $ cat compare_ether_addr.cocci
      @@
      expression a,b;
      @@
      -	!compare_ether_addr(a, b)
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	compare_ether_addr(a, b)
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!ether_addr_equal(a, b) == 0
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!ether_addr_equal(a, b) != 0
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	ether_addr_equal(a, b) == 0
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	ether_addr_equal(a, b) != 0
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!!ether_addr_equal(a, b)
      +	ether_addr_equal(a, b)
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2e42e474
  15. 17 4月, 2012 1 次提交
    • A
      net/wireless: use module_pci_driver · 5b0a3b7e
      Axel Lin 提交于
      This patch converts the drivers in drivers/net/wireless/* to use
      module_pci_driver() macro which makes the code smaller and a bit simpler.
      Signed-off-by: NAxel Lin <axel.lin@gmail.com>
      Cc: "John W. Linville" <linville@tuxdriver.com>
      Cc: Jiri Slaby <jirislaby@gmail.com>
      Cc: Nick Kossifidis <mickflemm@gmail.com>
      Cc: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
      Cc: Simon Kelley <simon@thekelleys.org.uk>
      Cc: Jouni Malinen <j@w1.fi>
      Cc: Lennert Buytenhek <buytenh@wantstofly.org>
      Cc: Christian Lamparter <chunkeey@googlemail.com>
      Cc: Ivo van Doorn <IvDoorn@gmail.com>
      Cc: Larry Finger <Larry.Finger@lwfinger.net>
      Cc: linux-wireless@vger.kernel.org
      Acked-by: NLennert Buytenhek <buytenh@wantstofly.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5b0a3b7e
  16. 13 2月, 2012 1 次提交