platform/adaptation/renesas_rcar/renesas_kernel.git
11 years agortlwifi: rtl8192cu: Fix problem in connecting to WEP or WPA(1) networks
Larry Finger [Thu, 30 May 2013 23:05:55 +0000 (18:05 -0500)]
rtlwifi: rtl8192cu: Fix problem in connecting to WEP or WPA(1) networks

Driver rtl8192cu can connect to WPA2 networks, but fails for any other
encryption method. The cause is a failure to set the rate control data
blocks. These changes fix https://bugzilla.redhat.com/show_bug.cgi?id=952793
and https://bugzilla.redhat.com/show_bug.cgi?id=761525.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agomwifiex: debugfs: Fix out of bounds array access
Mark A. Greer [Wed, 29 May 2013 19:25:34 +0000 (12:25 -0700)]
mwifiex: debugfs: Fix out of bounds array access

When reading the contents of '/sys/kernel/debug/mwifiex/p2p0/info',
the following panic occurs:

$ cat /sys/kernel/debug/mwifiex/p2p0/info
Unable to handle kernel paging request at virtual address 74706164
pgd = de530000
[74706164] *pgd=00000000
Internal error: Oops: 5 [#1] SMP ARM
Modules linked in: phy_twl4030_usb omap2430 musb_hdrc mwifiex_sdio mwifiex
CPU: 0 PID: 1635 Comm: cat Not tainted 3.10.0-rc1-00010-g1268390 #1
task: de16b6c0 ti: de048000 task.ti: de048000
PC is at strnlen+0xc/0x4c
LR is at string+0x3c/0xf8
pc : [<c02c123c>]    lr : [<c02c2d1c>]    psr: a0000013
sp : de049e10  ip : c06efba0  fp : de6d2092
r10: bf01a260  r9 : ffffffff  r8 : 74706164
r7 : 0000ffff  r6 : ffffffff  r5 : de6d209c  r4 : 00000000
r3 : ff0a0004  r2 : 74706164  r1 : ffffffff  r0 : 74706164
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c5387d  Table: 9e530019  DAC: 00000015
Process cat (pid: 1635, stack limit = 0xde048240)
Stack: (0xde049e10 to 0xde04a000)
9e00:                                     de6d2092 00000002 bf01a25e de6d209c
9e20: de049e80 c02c438c 0000000a ff0a0004 ffffffff 00000000 00000000 de049e48
9e40: 00000000 2192df6d ff0a0004 ffffffff 00000000 de6d2092 de049ef8 bef3cc00
9e60: de6b0000 dc358000 de6d2000 00000000 00000003 c02c45a4 bf01790c bf01a254
9e80: 74706164 bf018698 00000000 de59c3c0 de048000 de049f80 00001000 bef3cc00
9ea0: 00000008 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9ec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9ee0: 00000000 00000000 00000000 00000001 00000000 00000000 6669776d 20786569
9f00: 20302e31 2e343128 392e3636 3231702e 00202933 00000000 00000003 c0294898
9f20: 00000000 00000000 00000000 00000000 de59c3c0 c0107c04 de554000 de59c3c0
9f40: 00001000 bef3cc00 de049f80 bef3cc00 de049f80 00000000 00000003 c0108a00
9f60: de048000 de59c3c0 00000000 00000000 de59c3c0 00001000 bef3cc00 c0108b60
9f80: 00000000 00000000 00001000 bef3cc00 00000003 00000003 c0014128 de048000
9fa0: 00000000 c0013f80 00001000 bef3cc00 00000003 bef3cc00 00001000 00000000
9fc0: 00001000 bef3cc00 00000003 00000003 00000001 00000001 00000001 00000003
9fe0: 00000000 bef3cbdc 00011984 b6f1127c 60000010 00000003 18dbdd2c 7f7bfffd
[<c02c123c>] (strnlen+0xc/0x4c) from [<c02c2d1c>] (string+0x3c/0xf8)
[<c02c2d1c>] (string+0x3c/0xf8) from [<c02c438c>] (vsnprintf+0x1e8/0x3e8)
[<c02c438c>] (vsnprintf+0x1e8/0x3e8) from [<c02c45a4>] (sprintf+0x18/0x24)
[<c02c45a4>] (sprintf+0x18/0x24) from [<bf01790c>] (mwifiex_info_read+0xfc/0x3e8 [mwifiex])
[<bf01790c>] (mwifiex_info_read+0xfc/0x3e8 [mwifiex]) from [<c0108a00>] (vfs_read+0xb0/0x144)
[<c0108a00>] (vfs_read+0xb0/0x144) from [<c0108b60>] (SyS_read+0x44/0x70)
[<c0108b60>] (SyS_read+0x44/0x70) from [<c0013f80>] (ret_fast_syscall+0x0/0x30)
Code: e12fff1e e3510000 e1a02000 0a00000d (e5d03000)
---[ end trace ca98273dc605a04f ]---

The panic is caused by the mwifiex_info_read() routine assuming that
there can only be four modes (0-3) which is an invalid assumption.
For example, when testing P2P, the mode is '8' (P2P_CLIENT) so the
code accesses data beyond the bounds of the bss_modes[] array which
causes the panic.  Fix this by updating bss_modes[] to support the
current list of modes and adding a check to prevent the out-of-bounds
access from occuring in the future when more modes are added.

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
Acked-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoBluetooth: Fix mgmt handling of power on failures
Johan Hedberg [Wed, 29 May 2013 06:51:29 +0000 (09:51 +0300)]
Bluetooth: Fix mgmt handling of power on failures

If hci_dev_open fails we need to ensure that the corresponding
mgmt_set_powered command gets an appropriate response. This patch fixes
the missing response by adding a new mgmt_set_powered_failed function
that's used to indicate a power on failure to mgmt. Since a situation
with the device being rfkilled may require special handling in user
space the patch uses a new dedicated mgmt status code for this.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Cc: stable@vger.kernel.org
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoBluetooth: Fix missing length checks for L2CAP signalling PDUs
Johan Hedberg [Tue, 28 May 2013 10:46:30 +0000 (13:46 +0300)]
Bluetooth: Fix missing length checks for L2CAP signalling PDUs

There has been code in place to check that the L2CAP length header
matches the amount of data received, but many PDU handlers have not been
checking that the data received actually matches that expected by the
specific PDU. This patch adds passing the length header to the specific
handler functions and ensures that those functions fail cleanly in the
case of an incorrect amount of data.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoBluetooth: btmrvl: support Marvell Bluetooth device SD8897
Bing Zhao [Tue, 14 May 2013 01:15:32 +0000 (18:15 -0700)]
Bluetooth: btmrvl: support Marvell Bluetooth device SD8897

The register offsets have been changed in SD8897 and newer chips.
Define a new btmrvl_sdio_card_reg map for SD88xx.

Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Frank Huang <frankh@marvell.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoBluetooth: Fix checks for LE support on LE-only controllers
Johan Hedberg [Wed, 24 Apr 2013 10:05:32 +0000 (13:05 +0300)]
Bluetooth: Fix checks for LE support on LE-only controllers

LE-only controllers do not support extended features so any kind of host
feature bit checks do not make sense for them. This patch fixes code
used for both single-mode (LE-only) and dual-mode (BR/EDR/LE) to use the
HCI_LE_ENABLED flag instead of the "Host LE supported" feature bit for
LE support tests.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoiwlwifi: mvm: Update the supported interface combinations
Ilan Peer [Sat, 1 Jun 2013 17:17:18 +0000 (20:17 +0300)]
iwlwifi: mvm: Update the supported interface combinations

iwlmvm does not support concurrent operation of AP with P2P Client/GO.
Update the interface limits to reflect that iwlmvm supports only
concurrent operation of station with AP and P2P Client/GO.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: don't set the MCAST queue in STA's queue list
Emmanuel Grumbach [Sun, 9 Jun 2013 10:00:12 +0000 (13:00 +0300)]
iwlwifi: mvm: don't set the MCAST queue in STA's queue list

The MCAST queue should be enabled after DTIM only.
According to fw API, the MCAST must not be attached to any
station, but should appear in the mcast_qid of the AP's
mac context only.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: properly tell the fw that a STA is awake
Emmanuel Grumbach [Sun, 9 Jun 2013 09:59:24 +0000 (12:59 +0300)]
iwlwifi: mvm: properly tell the fw that a STA is awake

The firmware API wasn't being used correctly, fix that.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoMerge remote-tracking branch 'wireless-next/master' into iwlwifi-next
Johannes Berg [Tue, 11 Jun 2013 18:16:44 +0000 (20:16 +0200)]
Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next

11 years agoiwlwifi: include export.h instead of module.h
Johannes Berg [Wed, 5 Jun 2013 15:36:26 +0000 (17:36 +0200)]
iwlwifi: include export.h instead of module.h

We only need EXPORT_SYMBOL_GPL, none of the other things
from module.h, so only include export.h.

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: ignore 0-length PHY DB sections
Emmanuel Grumbach [Tue, 11 Jun 2013 12:17:21 +0000 (15:17 +0300)]
iwlwifi: ignore 0-length PHY DB sections

This can happen during development but can cause problems,
WARN (once) and go on.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Guy Cohen <guy.cohen@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: fix irrelevant comment
Emmanuel Grumbach [Mon, 10 Jun 2013 11:10:33 +0000 (14:10 +0300)]
iwlwifi: mvm: fix irrelevant comment

This code moved and is now far away from the code that takes
the mutex.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: remove unused wait_for_ba field
Emmanuel Grumbach [Mon, 10 Jun 2013 10:42:40 +0000 (13:42 +0300)]
iwlwifi: mvm: remove unused wait_for_ba field

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agocw1200: Fix an assorted pile of checkpatch warnings.
Solomon Peachy [Tue, 11 Jun 2013 13:49:40 +0000 (09:49 -0400)]
cw1200: Fix an assorted pile of checkpatch warnings.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: Eliminate the ETF debug/engineering code.
Solomon Peachy [Tue, 11 Jun 2013 13:49:39 +0000 (09:49 -0400)]
cw1200: Eliminate the ETF debug/engineering code.

This is only really useful for people who are bringing up new hardware
designs and have access to the proprietary vendor tools that interface
with this mode.

It'll live out of tree until it's rewritten to use a less kludgy interface.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: Remove "ITP" debug subsystem.
Solomon Peachy [Tue, 11 Jun 2013 13:49:38 +0000 (09:49 -0400)]
cw1200: Remove "ITP" debug subsystem.

This can live on as an out-of-tree patch for those that care.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocfg80211: fix rtnl leak in wiphy dump error cases
Johannes Berg [Tue, 11 Jun 2013 14:51:03 +0000 (16:51 +0200)]
cfg80211: fix rtnl leak in wiphy dump error cases

In two wiphy dump error cases, most often when the dump allocation
must be increased, the RTNL is leaked. This quickly results in a
complete system lockup. Release the RTNL correctly.

Reported-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agonl80211: allow sending CMD_FRAME without specifying any frequency
Antonio Quartulli [Tue, 11 Jun 2013 12:20:03 +0000 (14:20 +0200)]
nl80211: allow sending CMD_FRAME without specifying any frequency

Users may want to send a frame on the current channel
without specifying it.

This is particularly useful for the correct implementation
of the IBSS/RSN support in wpa_supplicant which requires to
receive and send AUTH frames.

Make mgmt_tx pass a NULL channel to the driver if none has
been specified by the user.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoath6kl: make mgmt_tx accept a NULL channel
Antonio Quartulli [Tue, 11 Jun 2013 12:20:02 +0000 (14:20 +0200)]
ath6kl: make mgmt_tx accept a NULL channel

cfg80211 passes a NULL channel to mgmt_tx if the frame has
to be sent on the one currently in use by the device.
Make the implementation of mgmt_tx correctly handle this
case

Cc: Nicolas Cavallari <Nicolas.Cavallari@lri.fr>
Acked-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agobrcm80211: make mgmt_tx in brcmfmac accept a NULL channel
Antonio Quartulli [Tue, 11 Jun 2013 12:20:01 +0000 (14:20 +0200)]
brcm80211: make mgmt_tx in brcmfmac accept a NULL channel

cfg80211 passes a NULL channel to mgmt_tx if the frame has
to be sent on the one currently in use by the device.
Make the implementation of mgmt_tx correctly handle this
case

Cc: brcm80211-dev-list@broadcom.com
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: make mgmt_tx accept a NULL channel
Antonio Quartulli [Tue, 11 Jun 2013 12:20:00 +0000 (14:20 +0200)]
mac80211: make mgmt_tx accept a NULL channel

cfg80211 passes a NULL channel to mgmt_tx if the frame has
to be sent on the one currently in use by the device.
Make the implementation of mgmt_tx correctly handle this
case. Fail if offchan is required.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
[fix RCU locking]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agocfg80211: fix VHT TDLS peer AID verification
Jouni Malinen [Mon, 27 May 2013 15:24:02 +0000 (18:24 +0300)]
cfg80211: fix VHT TDLS peer AID verification

I (Johannes) accidentally applied the first version of the patch
("Allow TDLS peer AID to be configured for VHT"). Now apply just
the changes between v1 and v2 to get the AID verification and
prefer the new attribute over the old one.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years ago{nl,mac,cfg}80211: Allow user to configure basic rates for mesh
Ashok Nagarajan [Mon, 3 Jun 2013 17:33:36 +0000 (10:33 -0700)]
{nl,mac,cfg}80211: Allow user to configure basic rates for mesh

Currently mesh uses mandatory rates as the default basic rates. Allow basic
rates to be configured during mesh join. Basic rates are applied only if
channel is also provided with mesh join command.

Signed-off-by: Ashok Nagarajan <ashok@cozybit.com>
[some whitespace fixes, refuse basic rates w/o channel]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: expire mesh peers based on mesh configuration
Colleen Twitty [Mon, 3 Jun 2013 16:53:40 +0000 (09:53 -0700)]
mac80211: expire mesh peers based on mesh configuration

The time it takes to see the peer link expire may differ
by a minute since sta_expire() is run once a minute as a
mesh housekeeping task.

Signed-off-by: Colleen Twitty <colleen@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years ago{nl,cfg}80211: make peer link expiration time configurable
Colleen Twitty [Mon, 3 Jun 2013 16:53:39 +0000 (09:53 -0700)]
{nl,cfg}80211: make peer link expiration time configurable

If a STA has a peer that it hasn't seen any tx activity
from for a certain length of time, the peer link is
expired. This means the inactive STA is removed from the
list of peers and that STA is not considered a peer again
unless it re-peers.  Previously, this inactivity time was
always 30 minutes.  Now, add it to the mesh configuration
and allow it to be configured.  Retain 30 minutes as a
default value.

Signed-off-by: Colleen Twitty <colleen@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agonl80211: add kernel-doc for NL80211_FEATURE_ACTIVE_MONITOR
Felix Fietkau [Mon, 3 Jun 2013 16:10:45 +0000 (18:10 +0200)]
nl80211: add kernel-doc for NL80211_FEATURE_ACTIVE_MONITOR

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: fix mesh deadlock
Thomas Pedersen [Mon, 10 Jun 2013 20:17:21 +0000 (13:17 -0700)]
mac80211: fix mesh deadlock

The patch "cfg80211/mac80211: use cfg80211 wdev mutex in
mac80211" introduced several deadlocks by converting the
ifmsh->mtx to wdev->mtx. Solve these by:

1. drop the cancel_work_sync() in ieee80211_stop_mesh().
   Instead make the mesh work conditional on whether the mesh
   is running or not.
2. lock the mesh work with sdata_lock() to protect beacon
   updates and prevent races with wdev->mesh_id_len or
   cfg80211.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agort2x00: rt2x00queue: initialize data_queue fields earlier
Gabor Juhos [Mon, 3 Jun 2013 21:39:53 +0000 (23:39 +0200)]
rt2x00: rt2x00queue: initialize data_queue fields earlier

Support for rt2800 device is broken since my
'rt2x00: rt2x00dev: use rt2x00dev->tx->limit'
patch. The changelog of that commit says that the
TX data queue is initialized already when the
rt2x00lib_probe_hw() function is called.

However as Jakub noticed it, this statement is not
correct. The queue->limit field is initialized in
the rt2x00queue_alloc_entries routine and that is
not yet called when rt2x00lib_probe_hw() runs.
Because the value of tx->limit contains zero, the
driver tries to allocate a kernel fifo with zero
size and kfifo_alloc rejects that with -EINVAL.

  PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
  ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 3071, rev 021c detected
  ieee80211 phy1: rt2x00_set_rf: Info - RF chipset 0008 detected
  ieee80211 phy1: rt2x00lib_probe_dev: Error - Failed to initialize hw
  rt2800pci: probe of 0000:01:00.0 failed with error -22

Move the data_queue field initialization from
the rt2x00queue_alloc_entries routine into the
rt2x00queue_init function. The initialization
code is not strictly related to the allocation,
and the change ensures that the queue_data fields
can be used in the probe routines.

The patch also introduces a helper function in
order to be able to get the correct data_queue_desc
structure for a given queue. This helper is only
needed temporarily and it will be removed later.

Reported-by: Jakub Kicinski <moorray@wp.pl>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agortlwifi: initialize local array and set value.
Yunlian Jiang [Fri, 31 May 2013 21:45:21 +0000 (14:45 -0700)]
rtlwifi: initialize local array and set value.

GCC 4.8 is spitting out uninitialized-variable warnings against
"drivers/net/wireless/rtlwifi/rtl8192de/dm.c".

drivers/net/wireless/rtlwifi/rtl8192de/dm.c:941:31:
error: 'ofdm_index_old[1]' may be used uninitialized in this
function [-Werror=maybe-uninitialized]
     rtlpriv->dm.ofdm_index[i] = ofdm_index_old[i];

This patch adds initialization to the variable and properly sets its value.

Signed-off-by: Yunlian Jiang <yunlian@google.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoMerge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
John W. Linville [Mon, 10 Jun 2013 18:51:17 +0000 (14:51 -0400)]
Merge branch 'for-john' of git://git./linux/kernel/git/iwlwifi/iwlwifi-next

11 years agocw1200: handle allocation failure in wsm_event_indication()
Dan Carpenter [Thu, 6 Jun 2013 10:57:46 +0000 (03:57 -0700)]
cw1200: handle allocation failure in wsm_event_indication()

Check for allocation failures and return -ENOMEM.  The caller
already expects it.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: read beyond end of array in debug code
Dan Carpenter [Thu, 6 Jun 2013 07:43:00 +0000 (10:43 +0300)]
cw1200: read beyond end of array in debug code

This has only one caller and rates[] is an array with
IEEE80211_TX_MAX_RATES (4) elements.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: Sanity-check arguments in copy_from_user()
Solomon Peachy [Wed, 5 Jun 2013 03:37:05 +0000 (23:37 -0400)]
cw1200: Sanity-check arguments in copy_from_user()

The optional debugfs interface to the vendor's engineering tools wasn't
bounds checking at all, which made it trivial to perform a buffer
overflow if this interface was compiled in and then explicitly enabled
at runtime.

This patch checks both the length supplied as part of the data to ensure
it is sane, and also the amount of data compared to the remaining buffer
space.  If either is too large, fail immediately.

(This bug was spotted by Dan Carpenter <dan.carpenter@oracle.com>)

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: hwio: Remove an unnecessary goto
Joe Perches [Tue, 4 Jun 2013 14:44:50 +0000 (07:44 -0700)]
cw1200: hwio: Remove an unnecessary goto

goto after return is wrong.

The other code in this block needs to set an
error value then goto an error release block.

This one doesn't need to release anything and
was likely a copy/paste remainder.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-By: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoiwlwifi: mvm: remove iwl_mvm_dbgfs_set_fw_dbg_log declaration
Johannes Berg [Mon, 10 Jun 2013 11:27:06 +0000 (13:27 +0200)]
iwlwifi: mvm: remove iwl_mvm_dbgfs_set_fw_dbg_log declaration

This function doesn't actually exist, remove its declaration.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agowireless: fix kernel-doc
Johannes Berg [Wed, 5 Jun 2013 07:32:50 +0000 (09:32 +0200)]
wireless: fix kernel-doc

Some kernel-doc fixes for forgotten fields and renamed things.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: Use suitable semantics for beacon availability indication
Alexander Bondar [Thu, 16 May 2013 14:34:17 +0000 (17:34 +0300)]
mac80211: Use suitable semantics for beacon availability indication

Currently beacon availability upon association is marked by have_beacon
flag of assoc_data structure that becomes unavailable when association
completes. However beacon availability indication is required also after
association to inform a driver. Currently dtim_period parameter is used
for this purpose. Move have_beacon flag to another structure, persistant
throughout a interface's life cycle. Use suitable sematics for beacon
availability indication.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
[fix another instance of BSS_CHANGED_DTIM_PERIOD in docs]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: don't request SMPS on non-STA iface
Eytan Lifshitz [Tue, 4 Jun 2013 09:28:51 +0000 (12:28 +0300)]
iwlwifi: mvm: don't request SMPS on non-STA iface

The Thermal Throttling code could do that, fix it.

Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: fix MCAST in AP mode
Emmanuel Grumbach [Sun, 2 Jun 2013 16:54:01 +0000 (19:54 +0300)]
iwlwifi: mvm: fix MCAST in AP mode

In multicast, there is no retries nor RTS since there is no
specific recipient that can ACK or send CTS. This means
that we must not use the rate scale table for multicast
frames.
This true for any frame that doesn't have a valid
ieee80211_sta pointer.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: enable PM always in unassociated mode
Alexander Bondar [Mon, 27 May 2013 10:49:03 +0000 (13:49 +0300)]
iwlwifi: mvm: enable PM always in unassociated mode

In unassociated BSS STA mode FW verifies both power save and power
management flags to decide on switching power off. The driver currently
sets power management flag according to mac80211 decision. As result, in
unassociated mode power management flag is down and power consumption is
high. Change power management enablement. When unassociated in BPS and
LP power save modes enable power management regardless of mac80211
decision. Rely on mac80211 decision if associated. Add power management
state update during associated/disassociated modes transitions.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: fix powersave bug and clean up ieee80211_rx_bss_info
Alexander Bondar [Mon, 3 Jun 2013 14:29:33 +0000 (17:29 +0300)]
mac80211: fix powersave bug and clean up ieee80211_rx_bss_info

ieee80211_rx_bss_info() deals with dtim_period setting and PS update
when associated. Move all these to another locations cleaning this
function. Also, the current implementation is buggy because when it
calls ieee80211_recalc_ps() bss_conf->dtim_period is notset properly
yet and thus nothing will happen.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agocfg80211: make wiphy index start at 0 again
Johannes Berg [Tue, 4 Jun 2013 20:23:36 +0000 (22:23 +0200)]
cfg80211: make wiphy index start at 0 again

The change to use atomic_inc_return() for assigning the wiphy
index made the first wiphy index 1 instead of 0. This is fine,
but we all habitually type "phy0" when we're testing, so make
it go back to 0 instead of 1 by subtracting 1 from the index.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agocfg80211: fix potential deadlock regression
Johannes Berg [Tue, 4 Jun 2013 17:21:08 +0000 (19:21 +0200)]
cfg80211: fix potential deadlock regression

My big locking cleanups caused a problem by registering the
rfkill instance with the RTNL held, while the callback also
acquires the RTNL. This potentially causes a deadlock since
the two locks used (rfkill mutex and RTNL) can be acquired
in two different orders. Fix this by (un)registering rfkill
without holding the RTNL. This needs to be done after the
device struct is registered, but that can also be done w/o
holding the RTNL.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoregulatory: use proper enum return value
Johannes Berg [Tue, 4 Jun 2013 12:35:07 +0000 (14:35 +0200)]
regulatory: use proper enum return value

get_reg_request_treatment() returns 0 in one case but is
defined to return an enum, use the proper value REG_REQ_OK.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: Change location of vif_count verification for PM
Alexander Bondar [Wed, 29 May 2013 07:19:50 +0000 (10:19 +0300)]
iwlwifi: mvm: Change location of vif_count verification for PM

Currently vif_count verification for power management enablement appear
in different places. Move these verifications to one place in
iwl_mvm_update_power_mode().

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: correctly configure MCAST in AP mode
Emmanuel Grumbach [Sun, 26 May 2013 17:47:53 +0000 (20:47 +0300)]
iwlwifi: mvm: correctly configure MCAST in AP mode

The AP mode needs to use the MCAST fifo for the MCAST
frames sent after the DTIM. This fifo needs to be
configured with the same parameters as the VOICE FIFO.

A separate SCD queue is mapped to this fifo - the cab_queue
(cab stands for Content After Beacon). This queue isn't
connected to any station, but rather to the MAC context.
This queue should (and is already) be set as the MCAST
queue - this is part of the of MAC context command.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: reorder Rx handler for performance purposes
Emmanuel Grumbach [Sun, 2 Jun 2013 17:54:48 +0000 (20:54 +0300)]
iwlwifi: mvm: reorder Rx handler for performance purposes

Since SCAN related handlers are much less likely than
beacon related handlers, reorder between them.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: Fix quota command settings
Ilan Peer [Thu, 30 May 2013 04:31:01 +0000 (07:31 +0300)]
iwlwifi: mvm: Fix quota command settings

According to the FW implementation, the quota command should
have a valid entry for each active binding (where 'active' in
this context means that the binding is known to the FW). In case
the binding should not get any quota, the 'quota' should be set
to zero.

Not setting an 0 quota for an active binding when all the MACs
in the binding are idle, i.e., not associated in case of managed
interface, will result in preventing the FW scheduler from entering
IDLE state and the FW from transitioning to low PS.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: don't return -ERFKILL if SEND_IF_RFKILL is set
Eran Harary [Sun, 2 Jun 2013 09:40:34 +0000 (12:40 +0300)]
iwlwifi: don't return -ERFKILL if SEND_IF_RFKILL is set

When CMD_SEND_IN_RFKILL is set, it is perfectly legitimate
to send a host command while RFKILL is asserted. In this
case, the host command sending functions should return 0
even if RFKILL is asserted.

Signed-off-by: Eran Harary <eran.harary@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: don't enable MIMO when BT is active
Emmanuel Grumbach [Tue, 28 May 2013 20:12:47 +0000 (23:12 +0300)]
iwlwifi: mvm: don't enable MIMO when BT is active

Another step in the rate control / BT Coex integration

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: don't start BA agreement when BT is active
Emmanuel Grumbach [Tue, 28 May 2013 18:36:16 +0000 (21:36 +0300)]
iwlwifi: mvm: don't start BA agreement when BT is active

Otherwise WiFi would kill BT.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: limit the length of the AMPDU when BT is running
Emmanuel Grumbach [Tue, 28 May 2013 18:31:50 +0000 (21:31 +0300)]
iwlwifi: mvm: limit the length of the AMPDU when BT is running

This holds for existing BA agreements.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoiwlwifi: mvm: fix the LUT for BT Coex
Emmanuel Grumbach [Wed, 29 May 2013 06:09:30 +0000 (09:09 +0300)]
iwlwifi: mvm: fix the LUT for BT Coex

There was a typo in the Loose LUT for BT Coex.
Fix that.

Reported-by: Roi Cohen <roi.cohen@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agocfg80211: separate internal SME implementation
Johannes Berg [Wed, 15 May 2013 22:55:45 +0000 (00:55 +0200)]
cfg80211: separate internal SME implementation

The current internal SME implementation in cfg80211 is
very mixed up with the MLME handling, which has been
causing issues for a long time. There are three things
that the implementation has to provide:
 * a basic SME implementation for nl80211's connect()
   call (for drivers implementing auth/assoc, which is
   really just mac80211) and wireless extensions
 * MLME events for the userspace SME
 * SME events (connected, disconnected etc.) for all
   different SME implementation possibilities (driver,
   cfg80211 and userspace)

To achieve these goals it isn't necessary to track the
software SME's connection status outside of it's state
(which is the part that caused many issues.) Instead,
track it only in the SME data (wdev->conn) and in the
general case only track whether the wdev is connected
or not (via wdev->current_bss.)

Also separate the internal implementation to not have
callbacks from the SME events, but rather call it from
the API functions that the driver (or rather mac80211)
calls. This separates the code better.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agocfg80211/mac80211: clean up cfg80211 SME APIs
Johannes Berg [Wed, 15 May 2013 22:55:00 +0000 (00:55 +0200)]
cfg80211/mac80211: clean up cfg80211 SME APIs

Do some cleanups in the cfg80211 SME APIs, which are
only used by mac80211.

Most of these functions get a frame passed, and there
isn't really any reason to export multiple functions
as cfg80211 can check the frame type instead, do that.

Additionally, the API functions have confusing names
like cfg80211_send_...() which was meant to indicate
that it sends an event to userspace, but gets a bit
confusing when there's both TX and RX and they're not
all clearly labeled.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoMerge remote-tracking branch 'wireless-next/master' into HEAD
Johannes Berg [Tue, 4 Jun 2013 10:56:01 +0000 (12:56 +0200)]
Merge remote-tracking branch 'wireless-next/master' into HEAD

Merge to get the wil6210 changes that a cfg80211 change needs.
A conflict in drivers/net/wireless/ath/ath9k/init.c was just
whitespace changes.

Also fix a semantic conflict due to cw1200 using WoWLAN which
I had modified in my tree.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: set IEEE80211_TX_CTL_REQ_TX_STATUS on nullframes
Pontus Fuchs [Tue, 4 Jun 2013 10:44:52 +0000 (12:44 +0200)]
mac80211: set IEEE80211_TX_CTL_REQ_TX_STATUS on nullframes

The connection monitor needs to know the tx status of
nullframes to work properly.

Signed-off-by: Pontus Fuchs <pontus.fuchs@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agonl80211: remove bogus genlmsg_end() error checking
Johannes Berg [Tue, 4 Jun 2013 10:46:03 +0000 (12:46 +0200)]
nl80211: remove bogus genlmsg_end() error checking

genlmsg_end() can't return an error since it returns the
skb length so remove checks treating the return value as
an error code.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: add a tx control flag to indicate PS-Poll/uAPSD response
Felix Fietkau [Tue, 4 Jun 2013 10:15:42 +0000 (12:15 +0200)]
mac80211: add a tx control flag to indicate PS-Poll/uAPSD response

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agobrcmsmac: Reduce log spam in heavy tx, make err print in debug
John Greene [Mon, 3 Jun 2013 13:47:39 +0000 (09:47 -0400)]
brcmsmac: Reduce log spam in heavy tx, make err print in debug

Move message to debug mode to reduce log spam under heavy tx (iperf) load.
This message prints in ht debug mode only:
brcms_c_ampdu_dotxstatus_complete: Pkt tx suppressed, illegal channel
possibly 153

Signed-off-by: John Greene <jogreene@redhat.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: Do not maintain ANI state per-channel
Sujith Manoharan [Mon, 3 Jun 2013 03:49:29 +0000 (09:19 +0530)]
ath9k: Do not maintain ANI state per-channel

ANI state can be maintained globally instead of per-channel.
This reduces memory usage and since default values are used
during a scan run, per-channel state is not required.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: Print ANI statistics in debugfs
Sujith Manoharan [Mon, 3 Jun 2013 03:49:28 +0000 (09:19 +0530)]
ath9k: Print ANI statistics in debugfs

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: Set ofdmWeakSigDetect directly
Sujith Manoharan [Mon, 3 Jun 2013 03:49:27 +0000 (09:19 +0530)]
ath9k: Set ofdmWeakSigDetect directly

The macros ATH9K_ANI_USE_OFDM_WEAK_SIG can be removed.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: Simplify ANI initialization
Sujith Manoharan [Mon, 3 Jun 2013 03:49:26 +0000 (09:19 +0530)]
ath9k: Simplify ANI initialization

The check "enable_ani" is not required since it is always
set to true and the logic for disabling/enabling ANI via
debugfs is done at a higher layer.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: Remove unused structure ath_dbg_bb_mac_samp
Sujith Manoharan [Mon, 3 Jun 2013 03:49:25 +0000 (09:19 +0530)]
ath9k: Remove unused structure ath_dbg_bb_mac_samp

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: Enable WoW only for AR9462
Sujith Manoharan [Mon, 3 Jun 2013 03:49:24 +0000 (09:19 +0530)]
ath9k: Enable WoW only for AR9462

The only card with which WoW has been tested and verified is
AR9462. Do not enable it for all cards since WoW is really quirky
and needs to be tested properly with each chip.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: Return early for invalid rates
Sujith Manoharan [Mon, 3 Jun 2013 03:49:23 +0000 (09:19 +0530)]
ath9k: Return early for invalid rates

Process and update the internal RSSI average, which
is used by ANI, after verifying that the received
frame has valid rate information.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agonet, ipw2x00: remove redundant D0 power state set
Yijing Wang [Thu, 30 May 2013 10:21:29 +0000 (18:21 +0800)]
net, ipw2x00: remove redundant D0 power state set

Pci_enable_device() will set device power state to D0,
so it's no need to do it again in ipw2100_pci_init_one().

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: advertise support for active monitor interfaces
Felix Fietkau [Tue, 28 May 2013 11:01:54 +0000 (13:01 +0200)]
ath9k: advertise support for active monitor interfaces

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoMerge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac802...
John W. Linville [Mon, 3 Jun 2013 19:55:37 +0000 (15:55 -0400)]
Merge branch 'for-john' of git://git./linux/kernel/git/jberg/mac80211-next

11 years agocw1200: rename the cw1200 platform definition header
Solomon Peachy [Sun, 2 Jun 2013 15:35:32 +0000 (11:35 -0400)]
cw1200: rename the cw1200 platform definition header

My previous patch just moved the file, but it also needed to be renamed
to conform to proper conventions.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: Rework SDIO platform support to prevent build problems.
Solomon Peachy [Sun, 2 Jun 2013 15:35:31 +0000 (11:35 -0400)]
cw1200: Rework SDIO platform support to prevent build problems.

Based on discussions with And Bergmann, this patch changes the SDIO
platform code to default to supporting the Sagrad devices, allowing for
it to be overridden in board setup code.  This renders the cw1200_sagrad
module suplerflous, so it is now removed.

It also moves the documentation that was in the cw1200_sagrad source to
the platform header.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: Replace use of 'struct resource' with 'int' for GPIO fields.
Solomon Peachy [Sun, 2 Jun 2013 13:53:03 +0000 (09:53 -0400)]
cw1200: Replace use of 'struct resource' with 'int' for GPIO fields.

The only advantage of 'struct resource' is that it lets us assign names
as part of the platform data.  Unfortunately since we are using platform
data, we are already limited to a single instance of each driver,
rendering this moot.

So, replace the struct resources with ints, resulting in cleaner code.

This was based on a suggestion from Arnd Bergmann.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: Reference correct 'powerup' GPIO signal.
Solomon Peachy [Sun, 2 Jun 2013 13:53:02 +0000 (09:53 -0400)]
cw1200: Reference correct 'powerup' GPIO signal.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: move platform_data header to correct location.
Solomon Peachy [Sun, 2 Jun 2013 13:53:01 +0000 (09:53 -0400)]
cw1200: move platform_data header to correct location.

(As suggested by Arnd Bergmann)

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: Rename 'sbus' to 'hwbus'
Solomon Peachy [Sat, 1 Jun 2013 12:08:42 +0000 (08:08 -0400)]
cw1200: Rename 'sbus' to 'hwbus'

This avoids problems when building on SPARC targets due to the driver
calling the bus abstraction layer 'sbus'.  Not that any SBUS-sporting
SPARC targets are likely to have an SDIO controller, but this is the
correct thing to do.

See http://kisskb.ellerman.id.au/kisskb/buildresult/8846508/

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocfg80211: take WoWLAN support information out of wiphy struct
Johannes Berg [Mon, 3 Jun 2013 15:25:34 +0000 (17:25 +0200)]
cfg80211: take WoWLAN support information out of wiphy struct

There's no need to take up the space for devices that don't
support WoWLAN, and most drivers can even make the support
data static const (except where it's modified at runtime.)

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: set mesh formation field properly
Jacob Minshall [Wed, 29 May 2013 21:32:36 +0000 (14:32 -0700)]
mac80211: set mesh formation field properly

Cap max peerings at 63 in accordance with IEEE-2012 8.4.2.100.7.
Triggers a beacon regeneration every time the number of peerings changes.
Previously this would only happen if the "accepting peerings" bit changed.

Signed-off-by: Jacob Minshall <jacob@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: don't check local mesh TTL on TX
Thomas Pedersen [Sat, 1 Jun 2013 00:41:47 +0000 (17:41 -0700)]
mac80211: don't check local mesh TTL on TX

nl80211 has already verified the mesh TTL on setting the
mesh config, so no need to check it again in mac80211.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agomac80211: fix sdata locking around __ieee80211_request_smps
Johannes Berg [Mon, 3 Jun 2013 11:51:59 +0000 (13:51 +0200)]
mac80211: fix sdata locking around __ieee80211_request_smps

My cfg80211/mac80211 locking unification broke the sdata
locking in ieee80211_set_power_mgmt, it needs to acquire
the lock for __ieee80211_request_smps(). Add the locking.

Reported-by: Jakub Kicinski <kubakici@wp.pl>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoath6kl: Unify sg_sz and buf_sz in ath6kl_sdio_alloc_prep_scat_req()
Geert Uytterhoeven [Wed, 24 Apr 2013 12:02:34 +0000 (14:02 +0200)]
ath6kl: Unify sg_sz and buf_sz in ath6kl_sdio_alloc_prep_scat_req()

sg_sz and buf_sz are initialized and used in a mutual exclusive way.
However, some versions of gcc are not smart enough to see this:

drivers/net/wireless/ath/ath6kl/sdio.c: In function ‘ath6kl_sdio_alloc_prep_scat_req’:
drivers/net/wireless/ath/ath6kl/sdio.c:338: warning: ‘sg_sz’ may be used uninitialized in this function

Unify the sg_sz and buf_sz variables into a single size variable to kill
the compiler warning.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
11 years agoath6kl: Fix a suspend/resume crash in AR6004 USB
Mohammed Shafi Shajakhan [Wed, 15 May 2013 04:52:24 +0000 (10:22 +0530)]
ath6kl: Fix a suspend/resume crash in AR6004 USB

cfg80211 suspend/resume callbacks are not yet implemented
for AR6004 USB. Introduce dummy handlers for these to avoid
NULL pointer dereference.

Cc: Sivanesan Rajapupathi <c_srajap@qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
11 years agoath6kl: Rename USB driver's suspend/resume/reset_resume
Mohammed Shafi Shajakhan [Wed, 15 May 2013 04:52:10 +0000 (10:22 +0530)]
ath6kl: Rename USB driver's suspend/resume/reset_resume

Rename USB driver's suspend/resume/reset_resume callbacks
with 'pm' prefix. This is necessary to differentiate it from
cfg80211/hif suspend/resume/reset_resume callbacks.

Cc: Sivanesan Rajapupathi <c_srajap@qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
11 years agowireless: ath6kl: re-use native helper to parse MAC
Andy Shevchenko [Thu, 25 Apr 2013 13:31:22 +0000 (16:31 +0300)]
wireless: ath6kl: re-use native helper to parse MAC

There is native mac_pton() function which helps to parse MAC.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
11 years agoath6kl: Check wmi ready event status before validating abi version
Raja Mani [Tue, 19 Mar 2013 04:18:35 +0000 (09:48 +0530)]
ath6kl: Check wmi ready event status before validating abi version

There is no point to check firmware ABI version when the driver
fails to wait for WMI_READY event during the boot time.

For such failures, the driver should assume the firmware is not
booted and start doing cleanup.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
11 years agoRevert "mac80211_hwsim: remove P2P_DEVICE support"
Johannes Berg [Fri, 31 May 2013 08:17:49 +0000 (10:17 +0200)]
Revert "mac80211_hwsim: remove P2P_DEVICE support"

This reverts commit e3ee68b7b049c5bbfcb78a179c00c373a38ed58c.

This wasn't intended to be included here, my mistake. I
accidentally merged a mac80211 fixes tree here that had
this change, when it wasn't even intended to be there.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoRevert "iwlwifi: mvm: remove P2P_DEVICE support"
Johannes Berg [Fri, 31 May 2013 08:17:19 +0000 (10:17 +0200)]
Revert "iwlwifi: mvm: remove P2P_DEVICE support"

This reverts commit eebfc9394ee31b3ef162692c0cd483c1318a4395.

This wasn't intended to be included here, my mistake. I
accidentally merged a mac80211 fixes tree here that had
this change, when it wasn't even intended to be there.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agocw1200: remove unused including <linux/version.h>
Wei Yongjun [Thu, 30 May 2013 11:43:13 +0000 (19:43 +0800)]
cw1200: remove unused including <linux/version.h>

Remove including <linux/version.h> that don't need it.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: use module_spi_driver to simplify the code
Wei Yongjun [Thu, 30 May 2013 11:42:54 +0000 (19:42 +0800)]
cw1200: use module_spi_driver to simplify the code

module_spi_driver() makes the code simpler by eliminating
boilerplate code.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: convert to use simple_open()
Wei Yongjun [Thu, 30 May 2013 11:42:35 +0000 (19:42 +0800)]
cw1200: convert to use simple_open()

This removes an open coded simple_open() function and
replaces file operations references to the function
with simple_open() instead.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: remove duplicated include from wsm.c
Wei Yongjun [Thu, 30 May 2013 11:41:11 +0000 (19:41 +0800)]
cw1200: remove duplicated include from wsm.c

Remove duplicated include.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agocw1200: Fix compile with CONFIG_PM=n
Solomon Peachy [Thu, 30 May 2013 02:22:05 +0000 (22:22 -0400)]
cw1200: Fix compile with CONFIG_PM=n

Intel's 0-day kernel build tester caught this build failure.  This patch
properly wraps everything that depends on CONFIG_PM.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: check for Rx-STBC flag and pass it to ieee80211
Oleksij Rempel [Fri, 24 May 2013 18:30:59 +0000 (20:30 +0200)]
ath9k: check for Rx-STBC flag and pass it to ieee80211

This patch make use of STBC flag in DMA RX descriptor.
Only devices after ar9280 can provide this information.

If card support it we will set HAVE_STBC flag, to show
clint programm thet STBC is supported but not received.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoath9k: remove useless flag conversation.
Oleksij Rempel [Fri, 24 May 2013 10:18:30 +0000 (12:18 +0200)]
ath9k: remove useless flag conversation.

some flags used only outside of ath9k - In this case we can use
"enum mac80211_rx_flags" and pass it upstream without extra
conversation.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoiwlwifi: mvm: implement D3 testing
Johannes Berg [Tue, 14 May 2013 11:53:45 +0000 (13:53 +0200)]
iwlwifi: mvm: implement D3 testing

For testing the D3 (WoWLAN) firmware, it is useful to be able
to run the firmware with instrumentation while the host isn't
sleeping and can poke at the firmware debug logging etc.

Implement this by a debugfs file. When the file is opened the
D3 firmware is loaded and all regular commands are blocked.
While the file is being read, poll the firmware's PME status
flag and report EOF once it changes to non-zero. When it is
closed, do (most of) the resume processing. This lets a user
just "cat" the file. Pressing Ctrl-C to kill the cat process
will resume the firwmare as though the platform resumed for
non-wireless reason and when the firmware wants to wake up
reading from the file automatically completes.

Unlike in real suspend, only disable interrupts and don't
reset the TX/RX hardware while in the test mode. This is a
workaround for some interrupt problems that happen only when
the PCIe link isn't fully reset (presumably by changing the
PCI config space registers which the core PCI code does.)

Note that while regular operations are blocked from sending
commands to the firmware, they could still be made and cause
strange mac80211 issues. Therefore, while using this testing
feature you need to be careful to not try to disconnect, roam
or similar, and will see warnings for such attempts.

Als note that this requires an upcoming firmware change to
tell the driver the location of the PME status flag in SRAM.
D3 test will fail if the firmware doesn't report the pointer.

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
11 years agoMerge remote-tracking branch 'wireless-next/master' into iwlwifi-next
Johannes Berg [Wed, 29 May 2013 19:56:46 +0000 (21:56 +0200)]
Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next

11 years agocw1200: add driver for the ST-E CW1100 & CW1200 WLAN chipsets
Solomon Peachy [Sat, 25 May 2013 00:04:38 +0000 (20:04 -0400)]
cw1200: add driver for the ST-E CW1100 & CW1200 WLAN chipsets

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agomwifiex: dump small buffers with help of %*ph
Andy Shevchenko [Wed, 29 May 2013 10:04:20 +0000 (13:04 +0300)]
mwifiex: dump small buffers with help of %*ph

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agonet: wireless: p54spi: Fix commenting style
Sachin Kamat [Wed, 29 May 2013 10:01:41 +0000 (15:31 +0530)]
net: wireless: p54spi: Fix commenting style

Make the commenting style consistent with networking block comment
style as suggested by checkpatch.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>