deliverable/linux.git
9 years agoath9k: fix misc debugfs when not using chan context
Ben Greear [Tue, 4 Nov 2014 23:22:49 +0000 (15:22 -0800)] 
ath9k: fix misc debugfs when not using chan context

When channel-context is not enabled, all vifs belong to
the first context, but it is not configured as 'assigned'.

Fix misc debugfs file to print out info for non-assigned
contexts, and also print whether ctx is assigned or not.

Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoMerge branch 'for-linville' of git://github.com/kvalo/ath
John W. Linville [Mon, 17 Nov 2014 20:28:39 +0000 (15:28 -0500)] 
Merge branch 'for-linville' of git://github.com/kvalo/ath

Kalle Valo <kvalo@qca.qualcomm.com> says:

"One ath6kl patch and rest for ath10k, but nothing really major which
stands out. Most notable:

o fix resume (Bartosz)

o firmware restart is now faster and more reliable (Michal)

o it's now possible to test hardware restart functionality without
  crashing the firmware using hw-restart parameter with
  simulate_fw_crash debugfs file (Michal)"

Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath10k: fix mismatched wmi api call
Peter Oh [Mon, 17 Nov 2014 14:44:15 +0000 (16:44 +0200)] 
ath10k: fix mismatched wmi api call

Fix to use v10.2 wmi call for firmware v10.2.
It turned out that peer association function was using
v10.1 wmi call for v10.2 firmware during code review.

Signed-off-by: Peter Oh <poh@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: advertise support for AP mode channel width changes
Rajkumar Manoharan [Mon, 17 Nov 2014 14:44:15 +0000 (16:44 +0200)] 
ath10k: advertise support for AP mode channel width changes

This will enable AP mode to change channel width dynamically
based on 20/40 intolerance report sent by associated client.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: add modpram 'skip_otp' to ignore empty otp error during BMI
Rajkumar Manoharan [Mon, 17 Nov 2014 14:44:14 +0000 (16:44 +0200)] 
ath10k: add modpram 'skip_otp' to ignore empty otp error during BMI

This patch would help bring up wifi interface with default board
data in case of failures in otp download. It is useful for initial
calibration.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoath10k: handle ieee80211 header and payload tracing separately
Rajkumar Manoharan [Wed, 5 Nov 2014 13:44:31 +0000 (19:14 +0530)] 
ath10k: handle ieee80211 header and payload tracing separately

For packet log, the transmitted frame 802.11 header alone is sufficient.
Recording entire packet is also consuming lot of disk space. To optimize
this, tx and rx data tracepoints are splitted into header and payload
tracepoints.

To record tx ieee80211 headers

     trace-cmd record -e ath10k_tx_hdr

To record complete packets

     trace-cmd record -e ath10k_tx_hdr -e ath10k_tx_payload

Cc: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
9 years agoieee802154: fix byteorder for short address and panid
Alexander Aring [Mon, 17 Nov 2014 07:20:55 +0000 (08:20 +0100)] 
ieee802154: fix byteorder for short address and panid

This patch changes the byteorder handling for short and panid handling.
We now except to get little endian in nl802154 for these attributes.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: rename and move WPAN_NUM_ defines
Alexander Aring [Mon, 17 Nov 2014 07:20:54 +0000 (08:20 +0100)] 
ieee802154: rename and move WPAN_NUM_ defines

This patch moves the 802.15.4 constraints WPAN_NUM_ defines into
"net/ieee802154.h" which should contain all necessary 802.15.4 related
information. Also rename these defines to a common name which is
IEEE802154_MAX_CHANNEL and IEEE802154_MAX_PAGE.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: add del interface command
Alexander Aring [Mon, 17 Nov 2014 07:20:53 +0000 (08:20 +0100)] 
ieee802154: add del interface command

This patch adds support for deleting a wpan interface via nl802154.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: setting extended address while iface add
Alexander Aring [Mon, 17 Nov 2014 07:20:52 +0000 (08:20 +0100)] 
ieee802154: setting extended address while iface add

This patch adds support for setting an extended address while
registration a new interface. If ieee802154_is_valid_extended_addr
getting as parameter and invalid extended address then the perm address
is fallback. This is useful to make some default handling while for
example default registration of a wpan interface while phy registration.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: add new interface command
Alexander Aring [Mon, 17 Nov 2014 07:20:51 +0000 (08:20 +0100)] 
ieee802154: add new interface command

This patch adds a new nl802154 command for adding a new interface
according to a wpan phy via nl802154.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: remove wpan_dev parameter in if_add
Alexander Aring [Mon, 17 Nov 2014 07:20:50 +0000 (08:20 +0100)] 
mac802154: remove wpan_dev parameter in if_add

This parameter was grabbed from wireless implementation with the
identically wireless dev struct. We don't need this right now and so we
remove it. Maybe we will add it later again if we found any real reason
to have such parameter.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: use new nl802154 iftype types
Alexander Aring [Mon, 17 Nov 2014 07:20:49 +0000 (08:20 +0100)] 
mac802154: use new nl802154 iftype types

This patch replace the depracted IEEE802154_DEV to the new introduced
NL802154_IFTYPE_NODE types. There is a backwards compatibility to have
the identical types for both enum definitions. Also remove some inlcude
issue with "linux/nl802154.h", because the export nl_policy inside this
header it was always necessary to have an include of "net/rtnetlink.h"
before. The reason for this is more complicated. Nevertheless we removed
this now, because "linux/nl802154.h" is the depracted netlink interface.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: remove deprecated linux-zigbee info
Alexander Aring [Mon, 17 Nov 2014 07:20:48 +0000 (08:20 +0100)] 
mac802154: remove deprecated linux-zigbee info

We don't and we can't name it zigbee anymore. This patch removes
deprecated information for project website.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: remove const for non pointer in rdev-ops
Alexander Aring [Mon, 17 Nov 2014 07:20:47 +0000 (08:20 +0100)] 
mac802154: remove const for non pointer in rdev-ops

This patches removes the const keyword in variables which are non
pointers. There is no sense to declare call by value parameters as
const.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: remove const for non pointer in cfg ops
Alexander Aring [Mon, 17 Nov 2014 07:20:46 +0000 (08:20 +0100)] 
mac802154: remove const for non pointer in cfg ops

This patches removes the const keyword in variables which are non
pointers. There is no sense to declare call by value parameters as
const.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: remove const for non pointer in driver-ops
Alexander Aring [Mon, 17 Nov 2014 07:20:45 +0000 (08:20 +0100)] 
mac802154: remove const for non pointer in driver-ops

This patches removes the const keyword in variables which are non
pointers. There is no sense to declare call by value parameters as const.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoat86rf230: fix commentation for symbol duration
Alexander Aring [Mon, 17 Nov 2014 07:20:44 +0000 (08:20 +0100)] 
at86rf230: fix commentation for symbol duration

This patch fix an copy&paste issue in the comment of setting symbol
duration. These comments are more correct according the at86rf212 datasheet
now.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: remove unused prototypes
Alexander Aring [Mon, 17 Nov 2014 07:20:43 +0000 (08:20 +0100)] 
mac802154: remove unused prototypes

This patch removes some prototypes which are not used anymore.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Fix clearing remote OOB data through mgmt
Johan Hedberg [Sat, 15 Nov 2014 07:34:23 +0000 (09:34 +0200)] 
Bluetooth: Fix clearing remote OOB data through mgmt

When passed BDADDR_ANY the Remove Remote OOB Data comand is specified to
clear all entries. This patch adds the necessary check and calls
hci_remote_oob_data_clear() when necessary.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Add debug logs to help track locking issues
Johan Hedberg [Thu, 13 Nov 2014 12:37:50 +0000 (14:37 +0200)] 
Bluetooth: Add debug logs to help track locking issues

This patch adds some extra debug logs to L2CAP related code. These are
mainly to help track locking issues but will probably be useful for
debugging other types of issues as well.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Remove unnecessary hdev locking in smp.c
Johan Hedberg [Thu, 13 Nov 2014 12:37:49 +0000 (14:37 +0200)] 
Bluetooth: Remove unnecessary hdev locking in smp.c

Now that the SMP related key lists are converted to RCU there is nothing
in smp_cmd_sign_info() or smp_cmd_ident_addr_info() that would require
taking the hdev lock (including the smp_distribute_keys call). This
patch removes this unnecessary locking.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Convert IRK list to RCU
Johan Hedberg [Thu, 13 Nov 2014 12:37:48 +0000 (14:37 +0200)] 
Bluetooth: Convert IRK list to RCU

This patch set converts the hdev->identity_resolving_keys list to use
RCU to eliminate the need to use hci_dev_lock/unlock.

An additional change that must be done is to remove use of
CRYPTO_ALG_ASYNC for the hdev-specific AES crypto context. The reason is
that this context is used for matching RPAs and the loop that does the
matching is under the RCU read lock, i.e. is an atomic section which
cannot sleep.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Convert LTK list to RCU
Johan Hedberg [Thu, 13 Nov 2014 12:37:47 +0000 (14:37 +0200)] 
Bluetooth: Convert LTK list to RCU

This patch set converts the hdev->long_term_keys list to use RCU to
eliminate the need to use hci_dev_lock/unlock.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Trigger SMP for the appropriate LE CoC errors
Johan Hedberg [Thu, 13 Nov 2014 08:55:19 +0000 (10:55 +0200)] 
Bluetooth: Trigger SMP for the appropriate LE CoC errors

The insufficient authentication/encryption errors indicate to the L2CAP
client that it should try to elevate the security level. Since there
really isn't any exception to this rule it makes sense to fully handle
it on the kernel side instead of pushing the responsibility to user
space.

This patch adds special handling of these two error codes and calls
smp_conn_security() with the elevated security level if necessary.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Add key preference parameter to smp_sufficient_security
Johan Hedberg [Thu, 13 Nov 2014 08:55:18 +0000 (10:55 +0200)] 
Bluetooth: Add key preference parameter to smp_sufficient_security

So far smp_sufficient_security() has returned false if we're encrypted
with an STK but do have an LTK available. However, for the sake of LE
CoC servers we do want to let the incoming connection through even
though we're only encrypted with the STK.

This patch adds a key preference parameter to smp_sufficient_security()
with two possible values (enum used instead of bool for readability).

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Fix sending incorrect LE CoC PDU in BT_CONNECT2 state
Johan Hedberg [Thu, 13 Nov 2014 08:55:17 +0000 (10:55 +0200)] 
Bluetooth: Fix sending incorrect LE CoC PDU in BT_CONNECT2 state

For LE CoC L2CAP servers we don't do security level elevation during the
BT_CONNECT2 state (instead LE CoC simply sends an immediate error
response if the security level isn't high enough). Therefore if we get a
security level change while an LE CoC channel is in the BT_CONNECT2
state we should simply do nothing.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: hidp: replace kzalloc/copy_from_user by memdup_user
Fabian Frederick [Fri, 14 Nov 2014 18:35:05 +0000 (19:35 +0100)] 
Bluetooth: hidp: replace kzalloc/copy_from_user by memdup_user

use memdup_user for rd_data import.

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Fix correct nesting for 6lowpan server channel
Johan Hedberg [Thu, 13 Nov 2014 07:46:05 +0000 (09:46 +0200)] 
Bluetooth: Fix correct nesting for 6lowpan server channel

Server channels in BT_LISTEN state should use L2CAP_NESTING_PARENT. This
patch fixes the nesting value for the 6lowpan channel.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Fix L2CAP nesting level initialization location
Johan Hedberg [Thu, 13 Nov 2014 07:46:04 +0000 (09:46 +0200)] 
Bluetooth: Fix L2CAP nesting level initialization location

There's no reason why all users of L2CAP would need to worry about
initializing chan->nesting to L2CAP_NESTING_NORMAL (which is important
since 0 is the same as NESTING_SMP). This patch moves the initialization
to the common place that's used to create all new channels, i.e. the
l2cap_chan_create() function.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Fix L2CAP socket lock nesting level
Johan Hedberg [Wed, 12 Nov 2014 20:22:22 +0000 (22:22 +0200)] 
Bluetooth: Fix L2CAP socket lock nesting level

The teardown callback for L2CAP channels is problematic in that it is
explicitly called for all types of channels from l2cap_chan_del(),
meaning it's not possible to hard-code a nesting level when taking the
socket lock. The simplest way to have a correct nesting level for the
socket locking is to use the same value as for the chan. This also means
that the other places trying to lock parent sockets need to be update to
use the chan value (since L2CAP_NESTING_PARENT is defined as 2 whereas
SINGLE_DEPTH_NESTING has the value 1).

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Use proper nesting annotation for l2cap_chan lock
Johan Hedberg [Wed, 12 Nov 2014 20:22:21 +0000 (22:22 +0200)] 
Bluetooth: Use proper nesting annotation for l2cap_chan lock

By default lockdep considers all L2CAP channels equal. This would mean
that we get warnings if a channel is locked when another one's lock is
tried to be acquired in the same thread. This kind of inter-channel
locking dependencies exist in the form of parent-child channels as well
as any channel wishing to elevate the security by requesting procedures
on the SMP channel.

To eliminate the chance for these lockdep warnings we introduce a
nesting level for each channel and use that when acquiring the channel
lock. For now there exists the earlier mentioned three identified
categories: SMP, "normal" channels and parent channels (i.e. those in
BT_LISTEN state). The nesting level is defined as atomic_t since we need
access to it before the lock is actually acquired.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoat86rf230: remove interframe spacing time workaround
Alexander Aring [Wed, 12 Nov 2014 18:51:57 +0000 (19:51 +0100)] 
at86rf230: remove interframe spacing time workaround

This patch removes the interframe spacing time workaround from at86rf230
driver and use the mac802154 one. The interframe spacing time differs at
at86rf212 and channel setting. This patch fix this handling which is also
a new workaround and should be moved into mac802154 while channel
setting.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: add interframe spacing time handling
Alexander Aring [Wed, 12 Nov 2014 18:51:56 +0000 (19:51 +0100)] 
mac802154: add interframe spacing time handling

This patch adds a new interframe spacing time handling into mac802154
layer. Interframe spacing time is a time period between each transmit.
This patch adds a high resolution timer into mac802154 and starts on
xmit complete with corresponding interframe spacing expire time if
ifs_handling is true. We make it variable because it depends if
interframe spacing time is handled by transceiver or mac802154. At the
timer complete function we wake the netdev queue again. This avoids
new frame transmit in range of interframe spacing time.

For synced driver we add no handling of interframe spacing time. This
is currently a lack of support in all synced xmit drivers. I suppose
it's working because the latency of workqueue which is needed to call
spi_sync.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Remove unnecessary hci_dev_lock/unlock in smp.c
Johan Hedberg [Wed, 12 Nov 2014 07:17:08 +0000 (09:17 +0200)] 
Bluetooth: Remove unnecessary hci_dev_lock/unlock in smp.c

The mgmt_user_passkey_request and related functions do not do anything
else except read access to hdev->id. This member never changes after the
hdev creation so there is no need to acquire a lock to read it.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoBluetooth: Fix l2cap_sock_teardown_cb lockdep warning
Johan Hedberg [Wed, 12 Nov 2014 07:15:50 +0000 (09:15 +0200)] 
Bluetooth: Fix l2cap_sock_teardown_cb lockdep warning

Any code calling bt_accept_dequeue() to get a new child socket from a
server socket should use lock_sock_nested to avoid lockdep warnings due
to the parent and child sockets being locked at the same time. The
l2cap_sock_accept() function is already doing this correctly but a
second place calling bt_accept_dequeue() is the code path from
l2cap_sock_teardown_cb() that calls l2cap_sock_cleanup_listen().

This patch fixes the proper nested locking annotation and thereby avoids
the following style of lockdep warning.

[  +0.000224] [ INFO: possible recursive locking detected ]
[  +0.000222] 3.17.0+ #1153 Not tainted
[  +0.000130] ---------------------------------------------
[  +0.000227] l2cap-tester/562 is trying to acquire lock:
[  +0.000210]  (sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP){+.+...}, at: [<c1393f47>] bt_accept_dequeue+0x68/0x11b
[  +0.000467]
but task is already holding lock:
[  +0.000186]  (sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP){+.+...}, at: [<c13b949a>] lock_sock+0xa/0xc
[  +0.000421]
other info that might help us debug this:
[  +0.000199]  Possible unsafe locking scenario:

[  +0.000117]        CPU0
[  +0.000000]        ----
[  +0.000000]   lock(sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP);
[  +0.000000]   lock(sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP);
[  +0.000000]
 *** DEADLOCK ***

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee820154: add lbt setting support
Alexander Aring [Wed, 12 Nov 2014 02:37:05 +0000 (03:37 +0100)] 
ieee820154: add lbt setting support

This patch adds support for setting listen before transmit mode via
nl802154 framework.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoat86rf230: remove invalid max frame retries check
Alexander Aring [Wed, 12 Nov 2014 02:37:04 +0000 (03:37 +0100)] 
at86rf230: remove invalid max frame retries check

This patch removes the invalid max frame retries check from driver
layer. This is already handled by nl802154 framework. Also the IEEE
802.15.4 standard doesn't allow a frame retries setting above 7. This
seems to be valid for the at86rf230 transceiver but the chip running out
of spec then. We only allow settings according 802.15.4 right now.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee820154: add max frame retries setting support
Alexander Aring [Wed, 12 Nov 2014 02:37:03 +0000 (03:37 +0100)] 
ieee820154: add max frame retries setting support

This patch add support for setting mac frame retries setting via
nl802154 framework.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoat86rf230: remove invalid max csma backoffs check
Alexander Aring [Wed, 12 Nov 2014 02:37:02 +0000 (03:37 +0100)] 
at86rf230: remove invalid max csma backoffs check

This patch removes the invalid check on max csma backoffs in driver
layer. This is already handled by nl802154 framework.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee820154: add max csma backoffs setting support
Alexander Aring [Wed, 12 Nov 2014 02:37:01 +0000 (03:37 +0100)] 
ieee820154: add max csma backoffs setting support

This patch add support for max csma backoffs setting via nl802154
framework.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoat86rf230: remove invalid backoff exponent check
Alexander Aring [Wed, 12 Nov 2014 02:37:00 +0000 (03:37 +0100)] 
at86rf230: remove invalid backoff exponent check

This patch removes the invalid backoff exponent check from driver layer.
This is already handled by nl802154.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee820154: add backoff exponent setting support
Alexander Aring [Wed, 12 Nov 2014 02:36:59 +0000 (03:36 +0100)] 
ieee820154: add backoff exponent setting support

This patch adds support for setting backoff exponents via nl802154
framework.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee820154: add short_addr setting support
Alexander Aring [Wed, 12 Nov 2014 02:36:58 +0000 (03:36 +0100)] 
ieee820154: add short_addr setting support

This patch adds support for setting short address via nl802154 framework.
Also added a comment because a 0xffff seems to be valid address that we
don't have a short address. This is a valid setting but we need
more checks in upper layers to don't allow this address as source address.
Also the current netlink interface doesn't allow to set the short_addr
to 0xffff. Same for the 0xfffe short address which describes a not
allocated short address.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee820154: add pan_id setting support
Alexander Aring [Wed, 12 Nov 2014 02:36:57 +0000 (03:36 +0100)] 
ieee820154: add pan_id setting support

This patch adds support for setting pan_id via nl802154 framework.
Adding a comment because setting 0xffff as pan_id seems to be valid
setting. The pan_id 0xffff as source pan is invalid. I am not sure now
about this setting but for the current netlink interface this is an
invalid setting, so we do the same now. Maybe we need to change that
when we have coordinator support and association support.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee820154: remove valid page and channel checks
Alexander Aring [Wed, 12 Nov 2014 02:36:56 +0000 (03:36 +0100)] 
ieee820154: remove valid page and channel checks

This patch removes validation of page and channel while setting from
driver layer. This is already handled by nl802154 and mac802154.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee820154: add channel set support
Alexander Aring [Wed, 12 Nov 2014 02:36:55 +0000 (03:36 +0100)] 
ieee820154: add channel set support

This patch adds page and channel setting support to nl802154 framework.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoieee802154: cleanup cfg802154 intendation
Alexander Aring [Wed, 12 Nov 2014 02:36:54 +0000 (03:36 +0100)] 
ieee802154: cleanup cfg802154 intendation

This is patch is cleanup to have a similar indentation like cfg80211
implementation.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: add ifname change notifier
Alexander Aring [Wed, 12 Nov 2014 02:36:53 +0000 (03:36 +0100)] 
mac802154: add ifname change notifier

This patch adds a netdev notifier for interface renaming. We have a name
attribute inside of subif data struct. This is needed to have always the
actual netdev name in sdata name attribute.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: change module description
Alexander Aring [Wed, 12 Nov 2014 02:36:52 +0000 (03:36 +0100)] 
mac802154: change module description

This patch changes the module description like wireless which is IEEE
802.11 "subsystem" and not "implementation".

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac802154: add wpan_phy priv id
Alexander Aring [Wed, 12 Nov 2014 02:36:51 +0000 (03:36 +0100)] 
mac802154: add wpan_phy priv id

This patch adds an unique id for an wpan_phy. This behaviour is mostly
grabbed from wireless stack. This is needed for upcomming patches which
identify the wpan netdev while NETDEV_CHANGENAME in netdev notify function.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac820154: move mutex locks out of loop
Alexander Aring [Wed, 12 Nov 2014 02:36:50 +0000 (03:36 +0100)] 
mac820154: move mutex locks out of loop

Instead of always re-lock the iflist_mtx at multiple interfaces we lock
the complete for each loop at start and at the end.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac820154: rename sdata next to tmp
Alexander Aring [Wed, 12 Nov 2014 02:36:49 +0000 (03:36 +0100)] 
mac820154: rename sdata next to tmp

This patch is just a cleanup to name the temporary variable for
protected list for each loop as tmp.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agomac820154: move interface unregistration into iface
Alexander Aring [Wed, 12 Nov 2014 02:36:48 +0000 (03:36 +0100)] 
mac820154: move interface unregistration into iface

This patch move the iface unregistration into iface.c file to have
a behaviour which is similar like mac80211. Also iface handling should
be inside iface.c file only.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
9 years agoath9k_htc: remove return of value in empty definintion of ath9k_htc_deinit_debug
John W. Linville [Tue, 11 Nov 2014 22:12:17 +0000 (17:12 -0500)] 
ath9k_htc: remove return of value in empty definintion of ath9k_htc_deinit_debug

Cc: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: simplify ad hoc join capability info
James Cameron [Tue, 11 Nov 2014 05:21:28 +0000 (16:21 +1100)] 
mwifiex: simplify ad hoc join capability info

While preparing an ad-hoc start command, the capability info bitmap is
needlessly set from the command, and then the ESS bit cleared.

Change to set the bitmap directly without reference to the command.

Signed-off-by: James Cameron <quozl@laptop.org>
Acked-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agowlcore: make wlcore_cmd_send_failsafe() static
Luciano Coelho [Mon, 10 Nov 2014 07:25:57 +0000 (09:25 +0200)] 
wlcore: make wlcore_cmd_send_failsafe() static

The wlcore_cmd_send_failsafe() function is only called in the cmd.c
file, where it is definde.  Make it static.

Additionally, move the EXPORT_SYMBOL macro for wl1271_cmd_send() to
the right place.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agowlcore: check minimum buffer size in some cmd_send functions
Luciano Coelho [Mon, 10 Nov 2014 07:25:17 +0000 (09:25 +0200)] 
wlcore: check minimum buffer size in some cmd_send functions

Check for the minimum required buffer length in wlcore_cmd_send() and
wlcore_cmd_configure_failsafe.  This ensures that we will never try to
use a buffer that is smaller than the required header.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: fix version display problem on big endian platforms
Amitkumar Karwar [Fri, 7 Nov 2014 10:14:52 +0000 (02:14 -0800)] 
mwifiex: fix version display problem on big endian platforms

It's been observed that wrong firmware version (ex. 66.14.96.p9
instead of 14.66.9.p96) is displayed on big endian platforms.

The problem is fixed here.

Reported-by: Daniel Mosquera <daniel.mosquera@ctag.com>
Tested-by: Daniel Mosquera <daniel.mosquera@ctag.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: add spectral scan debug interface
Oleksij Rempel [Thu, 6 Nov 2014 07:53:38 +0000 (08:53 +0100)] 
ath9k_htc: add spectral scan debug interface

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: process rx spectral packets
Oleksij Rempel [Thu, 6 Nov 2014 07:53:37 +0000 (08:53 +0100)] 
ath9k_htc: process rx spectral packets

use code provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: trigger spectral scan on set_channel
Oleksij Rempel [Thu, 6 Nov 2014 07:53:36 +0000 (08:53 +0100)] 
ath9k_htc: trigger spectral scan on set_channel

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: set initial spec_config values
Oleksij Rempel [Thu, 6 Nov 2014 07:53:35 +0000 (08:53 +0100)] 
ath9k_htc: set initial spec_config values

use values provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: add struct ath_spec_scan_priv to ath9k_htc_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:34 +0000 (08:53 +0100)] 
ath9k_htc: add struct ath_spec_scan_priv to ath9k_htc_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: add ath_ps_ops bindings
Oleksij Rempel [Thu, 6 Nov 2014 07:53:33 +0000 (08:53 +0100)] 
ath9k_htc: add ath_ps_ops bindings

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k_htc: fix rs_datalen conversation
Oleksij Rempel [Thu, 6 Nov 2014 07:53:32 +0000 (08:53 +0100)] 
ath9k_htc: fix rs_datalen conversation

For some reason it didn't coused obvious problems.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: For AR9271 chipsets, set count = 0 for endless samples.
Oleksij Rempel [Thu, 6 Nov 2014 07:53:31 +0000 (08:53 +0100)] 
ath9k: For AR9271 chipsets, set count = 0 for endless samples.

not sure why.
Initially provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: move spectral.* to common-spectral.*
Oleksij Rempel [Thu, 6 Nov 2014 07:53:30 +0000 (08:53 +0100)] 
ath9k: move spectral.* to common-spectral.*

and rename exports from ath9k_spectral_* to ath9k_cmn_spectral_*

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: move ath9k_spectral_scan_ from main.c to spectral.c
Oleksij Rempel [Thu, 6 Nov 2014 07:53:29 +0000 (08:53 +0100)] 
ath9k: move ath9k_spectral_scan_ from main.c to spectral.c

Now we should be ready to make this code common.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: make ath9k_spectral_scan_ do not depend on ath_softc
Oleksij Rempel [Thu, 6 Nov 2014 07:53:28 +0000 (08:53 +0100)] 
ath9k: make ath9k_spectral_scan_ do not depend on ath_softc

last preparation before moving ath9k_spectral_scan_ to spectral.c

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: use ath_common instead of ieee80211_hw in ath9k_spectral_scan_
Oleksij Rempel [Thu, 6 Nov 2014 07:53:27 +0000 (08:53 +0100)] 
ath9k: use ath_common instead of ieee80211_hw in ath9k_spectral_scan_

we don't have here any ieee80211_hw dependencies any way.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: use ath_ps_ops in ath9k_spectral_scan_
Oleksij Rempel [Thu, 6 Nov 2014 07:53:26 +0000 (08:53 +0100)] 
ath9k: use ath_ps_ops in ath9k_spectral_scan_

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: add ath_ps_ops bindings
Oleksij Rempel [Thu, 6 Nov 2014 07:53:25 +0000 (08:53 +0100)] 
ath9k: add ath_ps_ops bindings

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath: add struct ath_ps_ops
Oleksij Rempel [Thu, 6 Nov 2014 07:53:24 +0000 (08:53 +0100)] 
ath: add struct ath_ps_ops

we will need it to make common code

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: remove all struct ath_softc dependencies from spectral code
Oleksij Rempel [Thu, 6 Nov 2014 07:53:23 +0000 (08:53 +0100)] 
ath9k: remove all struct ath_softc dependencies from spectral code

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: add ath_hw to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:22 +0000 (08:53 +0100)] 
ath9k: add ath_hw to ath_spec_scan_priv

spectral code mostly depends on ath_hw, not on ath_softc

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: use struct dentry by ath9k_spectral_init_debug
Oleksij Rempel [Thu, 6 Nov 2014 07:53:21 +0000 (08:53 +0100)] 
ath9k: use struct dentry by ath9k_spectral_init_debug

this will alow us to make ath_softc independent code.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: move spec_config to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:20 +0000 (08:53 +0100)] 
ath9k: move spec_config to ath_spec_scan_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: move spectral_mode to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:19 +0000 (08:53 +0100)] 
ath9k: move spectral_mode to ath_spec_scan_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: add struct ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:18 +0000 (08:53 +0100)] 
ath9k: add struct ath_spec_scan_priv

and move rfs_chan_spec_scan to this struct. We will need it
for common spectral scan code.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: fix warning while starting BSS
Avinash Patil [Wed, 5 Nov 2014 11:34:31 +0000 (17:04 +0530)] 
mwifiex: fix warning while starting BSS

We see this warning while starting mwifiex AP:
Unsupported RX-STBC, default to 2x2

This was happening because of wrong offset while copying HT
capabilities from BSS configuration of start_ap handler.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: do not setup AMPDU/AMSDU with broadcast receiver
Avinash Patil [Wed, 5 Nov 2014 11:34:30 +0000 (17:04 +0530)] 
mwifiex: do not setup AMPDU/AMSDU with broadcast receiver

It is observed that device sometimes sends BA setup requests for
broadcast mac address.
This patch adds a check to avoid checking availability of
AMPDU/AMSDU streams for broadcast mac address.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: fix out of memory issue observed for USB chipsets
Amitkumar Karwar [Wed, 5 Nov 2014 11:34:29 +0000 (17:04 +0530)] 
mwifiex: fix out of memory issue observed for USB chipsets

On some platforms, system goes out of memory during heavy
Rx traffic with our USB chipsets.

In case of SDIO/PCIe, after receiving 50 packets in Rx queue
we stop processing interrupts till packets pending fall below
low threshold i.e 20. We don't have similar logic for USB,
so if host platform is slow, we would hit a case where firmware
keeps on pushing packets at high speed than driver/kernel can
process.

We will stop submitting URBs for Rx data when pending packet
count reaches high threshold and restart them when enough
packets are consumed to solve the problem.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=85071
Reported-by: Marek Belisko <marek.belisko@gmail.com>
Tested-by: Marek Belisko <marek.belisko@gmail.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: remove data_complete handler
Avinash Patil [Wed, 5 Nov 2014 11:34:28 +0000 (17:04 +0530)] 
mwifiex: remove data_complete handler

This patch removes redundant data complete handler.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomwifiex: rx workqueue support for USB interface
Avinash Patil [Wed, 5 Nov 2014 11:34:27 +0000 (17:04 +0530)] 
mwifiex: rx workqueue support for USB interface

This patch adds RX workqueue support for USB interfaces.
Currently rx_pending is applicable for cmd/events and Rx
data in USB interface. Let's use it only for Rx data.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoath9k: add support for reporting tx power to mac80211
Felix Fietkau [Tue, 4 Nov 2014 15:56:57 +0000 (16:56 +0100)] 
ath9k: add support for reporting tx power to mac80211

Track it per channel context instead of in the softc

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agobcma: get IRQ numbers from dt
Hauke Mehrtens [Sat, 1 Nov 2014 15:54:56 +0000 (16:54 +0100)] 
bcma: get IRQ numbers from dt

It is not possible to auto detect the irq numbers used by the cores on
an arm SoC. If bcma was registered with device tree it will search for
some device tree nodes with the irq number and add it to the core
configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agobcma: make it possible to specify a IRQ num in bcma_core_irq()
Hauke Mehrtens [Sat, 1 Nov 2014 15:54:55 +0000 (16:54 +0100)] 
bcma: make it possible to specify a IRQ num in bcma_core_irq()

This moves bcma_core_irq() to main.c and add a extra parameter with a
number so that we can return different irq number for devices with more
than one.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoMerge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
John W. Linville [Tue, 11 Nov 2014 21:30:48 +0000 (16:30 -0500)] 
Merge branch 'for-upstream' of git://git./linux/kernel/git/bluetooth/bluetooth-next

9 years agoath9k: Fix RTC_DERIVED_CLK usage
Miaoqing Pan [Thu, 6 Nov 2014 05:22:23 +0000 (10:52 +0530)] 
ath9k: Fix RTC_DERIVED_CLK usage

Based on the reference clock, which could be 25MHz or 40MHz,
AR_RTC_DERIVED_CLK is programmed differently for AR9340 and AR9550.
But, when a chip reset is done, processing the initvals
sets the register back to the default value.

Fix this by moving the code in ath9k_hw_init_pll() to
ar9003_hw_override_ini(). Also, do this override for AR9531.

Cc: stable@vger.kernel.org
Signed-off-by: Miaoqing Pan <miaoqing@qca.qualcomm.com>
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agobrcmfmac: fix conversion of channel width 20MHZ_NOHT
Arend van Spriel [Tue, 11 Nov 2014 12:58:44 +0000 (13:58 +0100)] 
brcmfmac: fix conversion of channel width 20MHZ_NOHT

The function chandef_to_chanspec() failed when converting a
chandef with bandwidth set to NL80211_CHAN_WIDTH_20_NOHT. This
was reported by user running the device in AP mode.

------------[ cut here ]------------
WARNING: CPU: 0 PID: 304 at
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c:381
chandef_to_chanspec.isra.11+0x158/0x184()

Modules linked in:

CPU: 0 PID: 304 Comm: hostapd Not tainted 3.16.0-rc7-abb+g64aa90f #8

[<c0014bb4>] (unwind_backtrace) from [<c0012314>] (show_stack+0x10/0x14)
[<c0012314>] (show_stack) from [<c001d3f8>] (warn_slowpath_common+0x6c/0x8c)
[<c001d3f8>] (warn_slowpath_common) from [<c001d4b4>] (warn_slowpath_null+0x1c/0x24)
[<c001d4b4>] (warn_slowpath_null) from [<c03449a4>] (chandef_to_chanspec.isra.11+0x158/0x184)
[<c03449a4>] (chandef_to_chanspec.isra.11) from [<c0348e00>] (brcmf_cfg80211_start_ap+0x1e4/0x614)
[<c0348e00>] (brcmf_cfg80211_start_ap) from [<c04d1468>] (nl80211_start_ap+0x288/0x414)
[<c04d1468>] (nl80211_start_ap) from [<c043d144>] (genl_rcv_msg+0x21c/0x38c)
[<c043d144>] (genl_rcv_msg) from [<c043c740>] (netlink_rcv_skb+0xac/0xc0)
[<c043c740>] (netlink_rcv_skb) from [<c043cf14>] (genl_rcv+0x20/0x34)
[<c043cf14>] (genl_rcv) from [<c043c0a0>] (netlink_unicast+0x150/0x20c)
[<c043c0a0>] (netlink_unicast) from [<c043c4b8>] (netlink_sendmsg+0x2b8/0x398)
[<c043c4b8>] (netlink_sendmsg) from [<c04066a4>] (sock_sendmsg+0x84/0xa8)
[<c04066a4>] (sock_sendmsg) from [<c0407c5c>] (___sys_sendmsg.part.29+0x268/0x278)
[<c0407c5c>] (___sys_sendmsg.part.29) from [<c0408bdc>] (__sys_sendmsg+0x4c/0x7c)
[<c0408bdc>] (__sys_sendmsg) from [<c000ec60>] (ret_fast_syscall+0x0/0x44)
---[ end trace 965ee2158c9905a2 ]---

Cc: stable@vger.kernel.org # v3.17
Reported-by: Pontus Fuchs <pontusf@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agort2x00: do not align payload on modern H/W
Stanislaw Gruszka [Tue, 11 Nov 2014 13:28:47 +0000 (14:28 +0100)] 
rt2x00: do not align payload on modern H/W

RT2800 and newer hardware require padding between header and payload if
header length is not multiple of 4.

For historical reasons we also align payload to to 4 bytes boundary, but
such alignment is not needed on modern H/W.

Patch fixes skb_under_panic problems reported from time to time:

https://bugzilla.kernel.org/show_bug.cgi?id=84911
https://bugzilla.kernel.org/show_bug.cgi?id=72471
http://marc.info/?l=linux-wireless&m=139108549530402&w=2
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1087591

Panic happened because we eat 4 bytes of skb headroom on each
(re)transmission when sending frame without the payload and the header
length not being multiple of 4 (i.e. QoS header has 26 bytes). On such
case because paylad_aling=2 is bigger than header_align=0 we increase
header_align by 4 bytes. To prevent that we could change the check to:

if (payload_length && payload_align > header_align)
header_align += 4;

but not aligning payload at all is more effective and alignment is not
really needed by H/W (that has been tested on OpenWrt project for few
years now).

Reported-and-tested-by: Antti S. Lankila <alankila@bel.fi>
Debugged-by: Antti S. Lankila <alankila@bel.fi>
Reported-by: Henrik Asp <solenskiner@gmail.com>
Originally-From: Helmut Schaa <helmut.schaa@googlemail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agoMerge tag 'iwlwifi-for-john-2014-11-10' of git://git.kernel.org/pub/scm/linux/kernel...
John W. Linville [Tue, 11 Nov 2014 21:10:19 +0000 (16:10 -0500)] 
Merge tag 'iwlwifi-for-john-2014-11-10' of git://git./linux/kernel/git/iwlwifi/iwlwifi-fixes

Emmanuel Grumbach <egrumbach@gmail.com> says:

"Two fixes here - we weren't updating mac80211 if a scan
was cut short by RFKILL which confused cfg80211. As a
result, the latter wouldn't allow to run another scan.
Liad fixes a small bug in the firmware dump."

Signed-off-by: John W. Linville <linville@tuxdriver.com>
9 years agomac80211: refactor duplicate detection
Johannes Berg [Tue, 11 Nov 2014 15:49:25 +0000 (16:49 +0100)] 
mac80211: refactor duplicate detection

Put duplicate detection into its own RX handler, and separate
out the conditions a bit to make the code more readable.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
9 years agoiwlwifi: mvm: wake up d0i3_exit_waitq when aborting d0i3
Eliad Peller [Sun, 9 Nov 2014 13:25:33 +0000 (15:25 +0200)] 
iwlwifi: mvm: wake up d0i3_exit_waitq when aborting d0i3

When aborting d0i3 due to taken refs, other threads might
already wait on d0i3_exit_waitq for IWL_MVM_STATUS_IN_D0I3
to get cleared (it's somewhat likely, as synchronize_rcu()
might take a while), so make sure to wake them up.

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
9 years agoiwlwifi: pcie: newer platform needs a OS alive indication
Emmanuel Grumbach [Tue, 4 Nov 2014 18:16:00 +0000 (20:16 +0200)] 
iwlwifi: pcie: newer platform needs a OS alive indication

This is fully backward compatible with older platforms.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
9 years agoiwlwifi: pcie: introduce delay when waking up the device
Emmanuel Grumbach [Mon, 27 Oct 2014 07:14:32 +0000 (09:14 +0200)] 
iwlwifi: pcie: introduce delay when waking up the device

In some rare cases, the firmware can put the device to
sleep after the driver requested the access. This is
because the access request can take a short time to be
propagated to the firmware.

If that happens, the driver may think that it has access
since the firmware hasn't put the device to sleep yet, but
right after the driver's check, the firmware might put the
device to sleep.

Warn when this happens by allowing the firmware to finish
the "put the device sleep" flow so that the driver will
not get access to the device. This will make the issue
visible.

This still doesn't fix the race, but at least it makes
it more visible.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
9 years agoiwlwifi: mvm: handle unsolicited DTS_MEASUREMENT_NOTIFICATIONs
Luciano Coelho [Thu, 6 Nov 2014 08:34:49 +0000 (10:34 +0200)] 
iwlwifi: mvm: handle unsolicited DTS_MEASUREMENT_NOTIFICATIONs

Currently, the firmware only sends temperature notificaitions inside
RX statistics notifications, which are tied to beacon filtering.  This
is a problem because beacon filtering is not used with vifs that don't
receive beacons (e.g. P2P GO and AP), so the driver doesn't receive
temperature notifications in those cases.  To solve that, the firmware
will be changed so that it sends DTS_MEASUREMENT_NOTIFICATIONs,
independently from the beacon filtering flows.

To support that, the driver needs to also handle unsolicited
DTS_MEASUREMENT_NOTIFICATIONs, that are not triggered by
DTS_TRIGGER_CMD_FLAGS_TEMP requests.

This change is backwards compatible and will simply not be used with
firmware versions that do not send the notifications.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
9 years agoiwlwifi: mvm: refactor temperature notification handling
Luciano Coelho [Tue, 4 Nov 2014 14:17:46 +0000 (16:17 +0200)] 
iwlwifi: mvm: refactor temperature notification handling

Refactor the temperature handling code so that it is easier to reuse
it with other notification flows.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
9 years agoiwlwifi: mvm: don't capture firmware coredump for D3->D0 reconfig
Johannes Berg [Thu, 6 Nov 2014 08:40:50 +0000 (09:40 +0100)] 
iwlwifi: mvm: don't capture firmware coredump for D3->D0 reconfig

The code to capture firmware errors works during the reconfiguration
phase after an error. As the D3->D0 transition uses the same flow to
get the D0 image reconfigured, this triggered and caused a firmware
coredump to be collected. This in turn, if it isn't picked up by
userspace, can cause module unloading to fail, which is how the bug
was detected.

To fix this issue, introduce a new status flag (D3_RECONFIG) and use
it to detect that during reconfiguration no coredump should be taken
and reported.

Reported-by: Avi Kraif <avix.kraif@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This page took 0.18808 seconds and 5 git commands to generate.