Linux wireless drivers development
 help / color / mirror / Atom feed
* Re: pull-request: iwlwifi-fixes 2013-10-02
From: John W. Linville @ 2013-10-07 17:26 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless
In-Reply-To: <1380729859.13329.23.camel@jlt4.sipsolutions.net>

On Wed, Oct 02, 2013 at 06:04:19PM +0200, Johannes Berg wrote:
> John,
> 
> Here are a few fixes for iwlwifi.
> 
> I have a fix for WoWLAN/D3, a PCIe device fix, we're removing a warning,
> there's a fix for RF-kill while scanning (which goes together with a
> mac80211 fix) and last but not least we have many new PCI IDs.
> 
> Let me know if there's any problem.
> 
> johannes
> 
> 
> The following changes since commit 272b98c6455f00884f0350f775c5342358ebb73f:
> 
>   Linux 3.12-rc1 (2013-09-16 16:17:51 -0400)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git for-john
> 
> for you to fetch changes up to 5a3e9f7f8c8768b5f7df81100c684e4cd00a6eb5:
> 
>   iwlwifi: mvm: call ieee80211_scan_completed when needed (2013-10-02 11:25:50 +0200)

Pulling now...

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Re: [PATCH v2] bluetooth: fix variable shadow warnings
From: Marcel Holtmann @ 2013-10-07 16:53 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless, linux-bluetooth, Johannes Berg
In-Reply-To: <1381162756-18353-1-git-send-email-johannes@sipsolutions.net>

Hi Johannes,

> From: Johannes Berg <johannes.berg@intel.com>
> 
> Sparse points out three places where variables are shadowed,
> rename two of the variables and remove the duplicate third.
> 
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> ---
> net/bluetooth/hci_event.c  | 12 +++++++-----
> net/bluetooth/l2cap_sock.c |  2 +-
> 2 files changed, 8 insertions(+), 6 deletions(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel


^ permalink raw reply

* [PATCHv2 3/3] ath9k: enable DFS for IBSS mode
From: Simon Wunderlich @ 2013-10-07 16:41 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, Mathias Kretschmer, Simon Wunderlich
In-Reply-To: <1381164067-4830-1-git-send-email-siwu@hrz.tu-chemnitz.de>

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
---
 drivers/net/wireless/ath/ath9k/init.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 9a1f349..bcc5698 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -791,7 +791,8 @@ static const struct ieee80211_iface_limit if_limits[] = {
 
 
 static const struct ieee80211_iface_limit if_dfs_limits[] = {
-	{ .max = 1,	.types = BIT(NL80211_IFTYPE_AP) },
+	{ .max = 1,	.types = BIT(NL80211_IFTYPE_AP) |
+				 BIT(NL80211_IFTYPE_ADHOC) },
 };
 
 static const struct ieee80211_iface_combination if_comb[] = {
-- 
1.7.10.4


^ permalink raw reply related

* [PATCHv2 0/3] add IBSS-DFS support
From: Simon Wunderlich @ 2013-10-07 16:41 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, Mathias Kretschmer, Simon Wunderlich

This patchset adds DFS support for the IBSS mode. It builds on top of
the previously sent AP DFS mode and channel switch announcement support.

Changes to the previous patchset:
 * describe userspace requirements better in doc and commit message 
   (suggested by Johannes)
 * change variable/attribute names
 * first patch has already been merged, dropped from this patchset
 * safeguard as suggested by Johannes (to protect from crashed/hanging
   userspace) has NOT yet been implemented. I'll probably send a patch for
   this later, as this might be useful for AP mode as well.

The implementation differs from the DFS support as described in IEEE 802.11.
It does not implement the DFS owner service or uses IBSS DFS elements as
described in IEEE 802.11-2012 10.9.8.3. The DFS owner service has various
shortcomings:

 * it requires synchronization to find one central IBSS owner
 * citation: "The potential for hidden nodes within an IBSS means that the
   IBSS channel switch protocol is best effort."
 * the mechanism does not provide any way to handle big adhoc cells like
   mesh networks (which is a major target).

Therefore, a stripped down approach is implemented:

 * userspace must announce that it wants support for DFS and will handle
   events using a flag for the ibss_join command.
 * if a radar is detected, inform userspace. Userspace should then select
   a channel (e.g. decide on it with the peers on higher level protocols
   before, or wait a random backoff time) and start a channel switch process.
 * if a channel switch announcement from another peeris received, adopt it
   and re-transmit it (this has been implemented in the IBSS-CSA patchset
   before)
 * channel switch announcements on DFS channels are interpreted as
   radar signals and will mark the channel as unusable.

As always, any comments are appreciated.

Cheers,
        Simon


Simon Wunderlich (3):
  nl80211/cfg80211: enable DFS for IBSS mode
  mac80211: enable DFS for IBSS mode
  ath9k: enable DFS for IBSS mode

 drivers/net/wireless/ath/ath9k/init.c |    3 +-
 include/net/cfg80211.h                |    6 ++++
 include/uapi/linux/nl80211.h          |    9 ++++++
 net/mac80211/ibss.c                   |   49 +++++++++++++++++++++++++++++----
 net/mac80211/ieee80211_i.h            |    1 +
 net/wireless/chan.c                   |    3 +-
 net/wireless/ibss.c                   |   24 +++++++++++++---
 net/wireless/nl80211.c                |    8 ++++--
 net/wireless/util.c                   |   11 ++++++--
 9 files changed, 99 insertions(+), 15 deletions(-)

-- 
1.7.10.4


^ permalink raw reply

* [PATCHv2 1/3] nl80211/cfg80211: enable DFS for IBSS mode
From: Simon Wunderlich @ 2013-10-07 16:41 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, Mathias Kretschmer, Simon Wunderlich
In-Reply-To: <1381164067-4830-1-git-send-email-siwu@hrz.tu-chemnitz.de>

To use DFS in IBSS mode, userspace is required to react to radar events.
It can inform nl80211 that it is capable of doing so by adding a
NL80211_ATTR_DFS_CAPABLE attribute when joining the IBSS.

This attribute is supplied to let the kernelspace know that the
userspace application can and will handle radar events, e.g. by
intiating channel switches to a valid channel. DFS channels may
only be used if this attribute is supplied and the driver supports
it. Driver support will be checked even if a channel without DFS
will be initially joined, as a DFS channel may be chosen later.

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
---
Changes to PATCHv1:
 * rename NL80211_ATTR_CONTROL_PORT_DFS to NL80211_ATTR_DFS_CAPABLE
   and the if_ibss variable accordingly
 * rework commit message and nl80211.h kerneldoc to describe
   requirements better.
---
 include/net/cfg80211.h       |    6 ++++++
 include/uapi/linux/nl80211.h |    9 +++++++++
 net/wireless/chan.c          |    3 ++-
 net/wireless/ibss.c          |   24 ++++++++++++++++++++----
 net/wireless/nl80211.c       |    8 ++++++--
 net/wireless/util.c          |   11 +++++++++--
 6 files changed, 52 insertions(+), 9 deletions(-)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 12e4a14..0bcdb3c 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1656,6 +1656,9 @@ struct cfg80211_disassoc_request {
  *	sets/clears %NL80211_STA_FLAG_AUTHORIZED. If true, the driver is
  *	required to assume that the port is unauthorized until authorized by
  *	user space. Otherwise, port is marked authorized by default.
+ * @userspace_handles_dfs: whether user space controls DFS operation, i.e.
+ *	changes the channel when a radar is detected. This is required
+ *	to operate on DFS channels.
  * @basic_rates: bitmap of basic rates to use when creating the IBSS
  * @mcast_rate: per-band multicast rate index + 1 (0: disabled)
  * @ht_capa:  HT Capabilities over-rides.  Values set in ht_capa_mask
@@ -1673,6 +1676,7 @@ struct cfg80211_ibss_params {
 	bool channel_fixed;
 	bool privacy;
 	bool control_port;
+	bool userspace_handles_dfs;
 	int mcast_rate[IEEE80211_NUM_BANDS];
 	struct ieee80211_ht_cap ht_capa;
 	struct ieee80211_ht_cap ht_capa_mask;
@@ -3053,6 +3057,7 @@ struct cfg80211_cached_keys;
  * @conn: (private) cfg80211 software SME connection state machine data
  * @connect_keys: (private) keys to set after connection is established
  * @ibss_fixed: (private) IBSS is using fixed BSSID
+ * @ibss_dfs_possible: (private) IBSS may change to a DFS channel
  * @event_list: (private) list for internal event processing
  * @event_lock: (private) lock for event list
  */
@@ -3091,6 +3096,7 @@ struct wireless_dev {
 	struct ieee80211_channel *channel;
 
 	bool ibss_fixed;
+	bool ibss_dfs_possible;
 
 	bool ps;
 	int ps_timeout;
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index fde2c02..e1cff4e 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -1496,6 +1496,13 @@ enum nl80211_commands {
  * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32.
  *	As specified in the &enum nl80211_rxmgmt_flags.
  *
+ * @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space
+ *	controls DFS operation in IBSS mode. If the flag is included in
+ *	%NL80211_CMD_JOIN_IBSS request, the driver will allow use of DFS
+ *	channels and reports radar events to userspace. Userspace is required
+ *	to react to radar events, e.g. initiate a channel switch or leave the
+ *	IBSS network.
+ *
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
  */
@@ -1806,6 +1813,8 @@ enum nl80211_attrs {
 
 	NL80211_ATTR_RXMGMT_FLAGS,
 
+	NL80211_ATTR_HANDLE_DFS,
+
 	/* add attributes here, update the policy in nl80211.c */
 
 	__NL80211_ATTR_AFTER_LAST,
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 80504e6..92cf75f 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -504,7 +504,8 @@ cfg80211_get_chan_state(struct wireless_dev *wdev,
 	case NL80211_IFTYPE_ADHOC:
 		if (wdev->current_bss) {
 			*chan = wdev->current_bss->pub.channel;
-			*chanmode = wdev->ibss_fixed
+			*chanmode = (wdev->ibss_fixed &&
+				     !wdev->ibss_dfs_possible)
 				  ? CHAN_MODE_SHARED
 				  : CHAN_MODE_EXCLUSIVE;
 			return;
diff --git a/net/wireless/ibss.c b/net/wireless/ibss.c
index 39bff7d..fa7461b 100644
--- a/net/wireless/ibss.c
+++ b/net/wireless/ibss.c
@@ -83,6 +83,8 @@ int __cfg80211_join_ibss(struct cfg80211_registered_device *rdev,
 			 struct cfg80211_cached_keys *connkeys)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
+	struct ieee80211_channel *check_chan;
+	u8 radar_detect_width = 0;
 	int err;
 
 	ASSERT_WDEV_LOCK(wdev);
@@ -114,14 +116,28 @@ int __cfg80211_join_ibss(struct cfg80211_registered_device *rdev,
 	wdev->connect_keys = connkeys;
 
 	wdev->ibss_fixed = params->channel_fixed;
+	wdev->ibss_dfs_possible = params->userspace_handles_dfs;
 #ifdef CONFIG_CFG80211_WEXT
 	wdev->wext.ibss.chandef = params->chandef;
 #endif
+	check_chan = params->chandef.chan;
+	if (params->userspace_handles_dfs) {
+		/* use channel NULL to check for radar even if the current
+		 * channel is not a radar channel - it might decide to change
+		 * to DFS channel later.
+		 */
+		radar_detect_width = BIT(params->chandef.width);
+		check_chan = NULL;
+	}
+
+	err = cfg80211_can_use_iftype_chan(rdev, wdev, wdev->iftype,
+					   check_chan,
+					   (params->channel_fixed &&
+					    !radar_detect_width)
+					   ? CHAN_MODE_SHARED
+					   : CHAN_MODE_EXCLUSIVE,
+					   radar_detect_width);
 
-	err = cfg80211_can_use_chan(rdev, wdev, params->chandef.chan,
-				    params->channel_fixed
-				    ? CHAN_MODE_SHARED
-				    : CHAN_MODE_EXCLUSIVE);
 	if (err) {
 		wdev->connect_keys = NULL;
 		return err;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 2838206..38618ee 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -354,6 +354,7 @@ static const struct nla_policy nl80211_policy[NL80211_ATTR_MAX+1] = {
 	[NL80211_ATTR_CSA_IES] = { .type = NLA_NESTED },
 	[NL80211_ATTR_CSA_C_OFF_BEACON] = { .type = NLA_U16 },
 	[NL80211_ATTR_CSA_C_OFF_PRESP] = { .type = NLA_U16 },
+	[NL80211_ATTR_HANDLE_DFS] = { .type = NLA_FLAG },
 };
 
 /* policy for the key attributes */
@@ -5722,9 +5723,9 @@ skip_beacons:
 	if (!cfg80211_reg_can_beacon(&rdev->wiphy, &params.chandef))
 		return -EINVAL;
 
-	/* DFS channels are only supported for AP/P2P GO ... for now. */
 	if (dev->ieee80211_ptr->iftype == NL80211_IFTYPE_AP ||
-	    dev->ieee80211_ptr->iftype == NL80211_IFTYPE_P2P_GO) {
+	    dev->ieee80211_ptr->iftype == NL80211_IFTYPE_P2P_GO ||
+	    dev->ieee80211_ptr->iftype == NL80211_IFTYPE_ADHOC) {
 		err = cfg80211_chandef_dfs_required(wdev->wiphy,
 						    &params.chandef);
 		if (err < 0) {
@@ -6556,6 +6557,9 @@ static int nl80211_join_ibss(struct sk_buff *skb, struct genl_info *info)
 	ibss.control_port =
 		nla_get_flag(info->attrs[NL80211_ATTR_CONTROL_PORT]);
 
+	ibss.userspace_handles_dfs =
+		nla_get_flag(info->attrs[NL80211_ATTR_HANDLE_DFS]);
+
 	err = cfg80211_join_ibss(rdev, dev, &ibss, connkeys);
 	if (err)
 		kfree(connkeys);
diff --git a/net/wireless/util.c b/net/wireless/util.c
index 3c8be61..6b027df 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -1264,8 +1264,15 @@ int cfg80211_can_use_iftype_chan(struct cfg80211_registered_device *rdev,
 	case NL80211_IFTYPE_MESH_POINT:
 	case NL80211_IFTYPE_P2P_GO:
 	case NL80211_IFTYPE_WDS:
-		radar_required = !!(chan &&
-				    (chan->flags & IEEE80211_CHAN_RADAR));
+		/* if the interface could potentially choose a DFS channel,
+		 * then mark DFS as required.
+		 */
+		if (!chan) {
+			if (chanmode != CHAN_MODE_UNDEFINED && radar_detect)
+				radar_required = true;
+			break;
+		}
+		radar_required = !!(chan->flags & IEEE80211_CHAN_RADAR);
 		break;
 	case NL80211_IFTYPE_P2P_CLIENT:
 	case NL80211_IFTYPE_STATION:
-- 
1.7.10.4


^ permalink raw reply related

* [PATCHv2 2/3] mac80211: enable DFS for IBSS mode
From: Simon Wunderlich @ 2013-10-07 16:41 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, Mathias Kretschmer, Simon Wunderlich
In-Reply-To: <1381164067-4830-1-git-send-email-siwu@hrz.tu-chemnitz.de>

Allow changing to DFS channels if the channel is available for
beaconing and userspace controls DFS operation.

Channel switch announcement from other stations on DFS channels will
be interpreted as radar event. These channels will then be marked as
unvailable.

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
---
Changes to PATCHv1:
 * rename control_port_dfs to userspace_handles_dfs
---
 net/mac80211/ibss.c        |   49 +++++++++++++++++++++++++++++++++++++++-----
 net/mac80211/ieee80211_i.h |    1 +
 2 files changed, 45 insertions(+), 5 deletions(-)

diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 21a0b88..275bbb2 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -229,6 +229,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
 	struct beacon_data *presp;
 	enum nl80211_bss_scan_width scan_width;
 	bool have_higher_than_11mbit;
+	bool radar_required = false;
 	int err;
 
 	sdata_assert_lock(sdata);
@@ -273,6 +274,23 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
 		}
 		chandef.width = NL80211_CHAN_WIDTH_20;
 		chandef.center_freq1 = chan->center_freq;
+		/* check again for downgraded chandef */
+		if (!cfg80211_reg_can_beacon(local->hw.wiphy, &chandef)) {
+			sdata_info(sdata,
+				   "Failed to join IBSS, beacons forbidden\n");
+			return;
+		}
+	}
+
+	err = cfg80211_chandef_dfs_required(sdata->local->hw.wiphy,
+					    &chandef);
+	if (err > 0) {
+		if (!ifibss->userspace_handles_dfs) {
+			sdata_info(sdata,
+				   "Failed to join IBSS, DFS channel without control program\n");
+			return;
+		}
+		radar_required = true;
 	}
 
 	ieee80211_vif_release_channel(sdata);
@@ -297,6 +315,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
 	rcu_assign_pointer(ifibss->presp, presp);
 	mgmt = (void *)presp->head;
 
+	sdata->radar_required = radar_required;
 	sdata->vif.bss_conf.enable_beacon = true;
 	sdata->vif.bss_conf.beacon_int = beacon_int;
 	sdata->vif.bss_conf.basic_rates = basic_rates;
@@ -796,6 +815,21 @@ static void ieee80211_csa_connection_drop_work(struct work_struct *work)
 	ieee80211_queue_work(&sdata->local->hw, &sdata->work);
 }
 
+static void ieee80211_ibss_csa_mark_radar(struct ieee80211_sub_if_data *sdata)
+{
+	struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
+	int err;
+
+	/* if the current channel is a DFS channel, mark the channel as
+	 * unavailable.
+	 */
+	err = cfg80211_chandef_dfs_required(sdata->local->hw.wiphy,
+					    &ifibss->chandef);
+	if (err > 0)
+		cfg80211_radar_event(sdata->local->hw.wiphy, &ifibss->chandef,
+				     GFP_ATOMIC);
+}
+
 static bool
 ieee80211_ibss_process_chanswitch(struct ieee80211_sub_if_data *sdata,
 				  struct ieee802_11_elems *elems,
@@ -880,8 +914,7 @@ ieee80211_ibss_process_chanswitch(struct ieee80211_sub_if_data *sdata,
 		goto disconnect;
 	}
 
-	if (!cfg80211_chandef_usable(sdata->local->hw.wiphy, &params.chandef,
-				     IEEE80211_CHAN_DISABLED)) {
+	if (!cfg80211_reg_can_beacon(sdata->local->hw.wiphy, &params.chandef)) {
 		sdata_info(sdata,
 			   "IBSS %pM switches to unsupported channel (%d MHz, width:%d, CF1/2: %d/%d MHz), disconnecting\n",
 			   ifibss->bssid,
@@ -897,10 +930,11 @@ ieee80211_ibss_process_chanswitch(struct ieee80211_sub_if_data *sdata,
 	if (err < 0)
 		goto disconnect;
 	if (err) {
+		/* IBSS-DFS only allowed with a control program */
+		if (!ifibss->userspace_handles_dfs)
+			goto disconnect;
+
 		params.radar_required = true;
-
-		/* TODO: IBSS-DFS not (yet) supported, disconnect. */
-		goto disconnect;
 	}
 
 	rcu_read_lock();
@@ -947,12 +981,16 @@ ieee80211_ibss_process_chanswitch(struct ieee80211_sub_if_data *sdata,
 	ieee80211_bss_info_change_notify(sdata, err);
 	drv_channel_switch_beacon(sdata, &params.chandef);
 
+	ieee80211_ibss_csa_mark_radar(sdata);
+
 	return true;
 disconnect:
 	ibss_dbg(sdata, "Can't handle channel switch, disconnect\n");
 	ieee80211_queue_work(&sdata->local->hw,
 			     &ifibss->csa_connection_drop_work);
 
+	ieee80211_ibss_csa_mark_radar(sdata);
+
 	return true;
 }
 
@@ -1688,6 +1726,7 @@ int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata,
 
 	sdata->u.ibss.privacy = params->privacy;
 	sdata->u.ibss.control_port = params->control_port;
+	sdata->u.ibss.userspace_handles_dfs = params->userspace_handles_dfs;
 	sdata->u.ibss.basic_rates = params->basic_rates;
 
 	/* fix basic_rates if channel does not support these rates */
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 3a87c89..9752567 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -497,6 +497,7 @@ struct ieee80211_if_ibss {
 	bool privacy;
 
 	bool control_port;
+	bool userspace_handles_dfs;
 
 	u8 bssid[ETH_ALEN] __aligned(2);
 	u8 ssid[IEEE80211_MAX_SSID_LEN];
-- 
1.7.10.4


^ permalink raw reply related

* Re: [PATCH v2 2/2] ath10k: fix scheduling while atomic bug
From: Kalle Valo @ 2013-10-07 16:35 UTC (permalink / raw)
  To: Michal Kazior; +Cc: ath10k, linux-wireless
In-Reply-To: <1380874630-14280-3-git-send-email-michal.kazior@tieto.com>

Michal Kazior <michal.kazior@tieto.com> writes:

> Recent WMI/HTC changes made it possible for WMI
> commands to sleep (if there's not enough HTC TX
> credits to submit a command). TX path is in an
> atomic context so calling WMI commands in it is
> wrong.
>
> This simply moves WEP key index update to a worker
> and fixes the 'scheduling while atomic' bug.
>
> This still leaves multiple WEP key handling laggy,
> i.e. some frames may be TXed with an old/different
> key (although recipient should still be able to RX
> them).
>
> Signed-off-by: Michal Kazior <michal.kazior@tieto.com>

I see conflicts with this patch. Can you rebase, please?

-- 
Kalle Valo

^ permalink raw reply

* Re: [PATCH v2 1/2] ath10k: Fix bug in max. VHT A-MPDU size
From: Kalle Valo @ 2013-10-07 16:33 UTC (permalink / raw)
  To: Michal Kazior; +Cc: ath10k, Sujith Manoharan, linux-wireless
In-Reply-To: <1380874630-14280-2-git-send-email-michal.kazior@tieto.com>

Michal Kazior <michal.kazior@tieto.com> writes:

> From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
>
> For VHT peers, the maximum A-MPDU size has to be calculated
> from the VHT capabilities element and not the HT-cap. The formula
> is the same, but a higher value is used in VHT, allowing larger
> aggregates to be transmitted.
>
> The patch contains a workaround for some Netgear/Linksys APs that
> report Rx A-MPDU factor incorrectly.
>
> Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
> Signed-off-by: Michal Kazior <michal.kazior@tieto.com>

I see warnings with this patch:

drivers/net/wireless/ath/ath10k/mac.c: In function 'ath10k_peer_assoc_h_vht':
drivers/net/wireless/ath/ath10k/mac.c:1049:179: warning: comparison of distinct pointer types lacks a cast [enabled by default]
drivers/net/wireless/ath/ath10k/mac.c:1049:30: error: incompatible types in comparison expression (different signedness)
drivers/net/wireless/ath/ath10k/mac.c:1042: WARNING: line over 80 characters

-- 
Kalle Valo

^ permalink raw reply

* Re: [PATCH v2 0/2] ath10k: wep & ampdu fix
From: Kalle Valo @ 2013-10-07 16:31 UTC (permalink / raw)
  To: Michal Kazior; +Cc: ath10k, linux-wireless
In-Reply-To: <1380874630-14280-1-git-send-email-michal.kazior@tieto.com>

Michal Kazior <michal.kazior@tieto.com> writes:

> Hi,
>
> One throughput fix and one bug fix.
>
> The bug fix addresses my oversight when reworking
> HTC/WMI. I haven't seen the error yet but I'm
> quite certain this should be fixed.
>
> v2:
>  * A-MPDU patch contains a workaround for
>    Netgear/Linksys 11ac APs
>    (Kalle, can you kindly test this, please?)

I quickly tested patch 1 with D-Link DIR-865L. I didn't notice any
regressions so that part looks good. Though I didn't notice any
improvement either. But as long as there's no regression I'm happy :)

-- 
Kalle Valo

^ permalink raw reply

* [PATCH v2] bluetooth: fix variable shadow warnings
From: Johannes Berg @ 2013-10-07 16:19 UTC (permalink / raw)
  To: linux-wireless, linux-bluetooth; +Cc: Johannes Berg

From: Johannes Berg <johannes.berg@intel.com>

Sparse points out three places where variables are shadowed,
rename two of the variables and remove the duplicate third.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/bluetooth/hci_event.c  | 12 +++++++-----
 net/bluetooth/l2cap_sock.c |  2 +-
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 94aab73..8b2991e 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1291,9 +1291,11 @@ static void hci_cs_remote_name_req(struct hci_dev *hdev, __u8 status)
 		goto unlock;
 
 	if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
-		struct hci_cp_auth_requested cp;
-		cp.handle = __cpu_to_le16(conn->handle);
-		hci_send_cmd(hdev, HCI_OP_AUTH_REQUESTED, sizeof(cp), &cp);
+		struct hci_cp_auth_requested auth_cp;
+
+		auth_cp.handle = __cpu_to_le16(conn->handle);
+		hci_send_cmd(hdev, HCI_OP_AUTH_REQUESTED,
+			     sizeof(auth_cp), &auth_cp);
 	}
 
 unlock:
@@ -3636,8 +3638,8 @@ void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb)
 	skb_pull(skb, HCI_EVENT_HDR_SIZE);
 
 	if (hdev->sent_cmd && bt_cb(hdev->sent_cmd)->req.event == event) {
-		struct hci_command_hdr *hdr = (void *) hdev->sent_cmd->data;
-		u16 opcode = __le16_to_cpu(hdr->opcode);
+		struct hci_command_hdr *cmd_hdr = (void *) hdev->sent_cmd->data;
+		u16 opcode = __le16_to_cpu(cmd_hdr->opcode);
 
 		hci_req_cmd_complete(hdev, opcode, 0);
 	}
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 0098af8..f07e25d 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -683,7 +683,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
 		}
 
 		if (opt == BT_FLUSHABLE_OFF) {
-			struct l2cap_conn *conn = chan->conn;
+			conn = chan->conn;
 			/* proceed further only when we have l2cap_conn and
 			   No Flush support in the LM */
 			if (!conn || !lmp_no_flush_capable(conn->hcon->hdev)) {
-- 
1.8.4.rc3


^ permalink raw reply related

* Re: [PATCH] bluetooth: fix variable shadow warnings
From: Marcel Holtmann @ 2013-10-07 16:17 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless, linux-bluetooth, Johannes Berg
In-Reply-To: <1381157810-15310-1-git-send-email-johannes@sipsolutions.net>

Hi Johannes,

> Sparse points out three places where variables are shadowed,
> rename two of the variables and remove the duplicate third.
> 
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> ---
> net/bluetooth/hci_event.c  | 12 +++++++-----
> net/bluetooth/l2cap_sock.c |  2 +-
> 2 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
> index 94aab73..b5a3736 100644
> --- a/net/bluetooth/hci_event.c
> +++ b/net/bluetooth/hci_event.c
> @@ -1291,9 +1291,11 @@ static void hci_cs_remote_name_req(struct hci_dev *hdev, __u8 status)
> 		goto unlock;
> 
> 	if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
> -		struct hci_cp_auth_requested cp;
> -		cp.handle = __cpu_to_le16(conn->handle);
> -		hci_send_cmd(hdev, HCI_OP_AUTH_REQUESTED, sizeof(cp), &cp);
> +		struct hci_cp_auth_requested auth_req;

can you rename this to auth_cp. The code base uses cp for command parameters.

> +
> +		auth_req.handle = __cpu_to_le16(conn->handle);
> +		hci_send_cmd(hdev, HCI_OP_AUTH_REQUESTED,
> +			     sizeof(auth_req), &auth_req);
> 	}
> 
> unlock:
> @@ -3636,8 +3638,8 @@ void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb)
> 	skb_pull(skb, HCI_EVENT_HDR_SIZE);
> 
> 	if (hdev->sent_cmd && bt_cb(hdev->sent_cmd)->req.event == event) {
> -		struct hci_command_hdr *hdr = (void *) hdev->sent_cmd->data;
> -		u16 opcode = __le16_to_cpu(hdr->opcode);
> +		struct hci_command_hdr *cmd_hdr = (void *) hdev->sent_cmd->data;
> +		u16 opcode = __le16_to_cpu(cmd_hdr->opcode);
> 
> 		hci_req_cmd_complete(hdev, opcode, 0);
> 	}
> diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
> index 0098af8..f07e25d 100644
> --- a/net/bluetooth/l2cap_sock.c
> +++ b/net/bluetooth/l2cap_sock.c
> @@ -683,7 +683,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
> 		}
> 
> 		if (opt == BT_FLUSHABLE_OFF) {
> -			struct l2cap_conn *conn = chan->conn;
> +			conn = chan->conn;
> 			/* proceed further only when we have l2cap_conn and
> 			   No Flush support in the LM */
> 			if (!conn || !lmp_no_flush_capable(conn->hcon->hdev)) {

I would have personally put this into part into a separate patch, but this way is fine as well.

Regards

Marcel


^ permalink raw reply

* Re: [PATCH] mac80211: Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))
From: Johannes Berg @ 2013-10-07 16:16 UTC (permalink / raw)
  To: djduanjiong
  Cc: John W. Linville, David S. Miller, linux-wireless, netdev,
	Duan Jiong
In-Reply-To: <1381190953-6362-1-git-send-email-duanj.fnst@cn.fujitsu.com>

On Mon, 2013-10-07 at 17:09 -0700, djduanjiong@gmail.com wrote:

>  	if (IS_ERR(key))
> -		return ERR_PTR(PTR_ERR(key));
> +		return ERR_CAST(key);

I already have this patch in my tree.

johannes


^ permalink raw reply

* [PATCH] mac80211: Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))
From: djduanjiong @ 2013-10-08  0:09 UTC (permalink / raw)
  To: Johannes Berg, John W. Linville, David S. Miller
  Cc: linux-wireless, netdev, Duan Jiong

From: Duan Jiong <duanj.fnst@cn.fujitsu.com>

Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com>
---
 net/mac80211/key.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/key.c b/net/mac80211/key.c
index 620677e..3e51dd7 100644
--- a/net/mac80211/key.c
+++ b/net/mac80211/key.c
@@ -879,7 +879,7 @@ ieee80211_gtk_rekey_add(struct ieee80211_vif *vif,
 				  keyconf->keylen, keyconf->key,
 				  0, NULL);
 	if (IS_ERR(key))
-		return ERR_PTR(PTR_ERR(key));
+		return ERR_CAST(key);
 
 	if (sdata->u.mgd.mfp != IEEE80211_MFP_DISABLED)
 		key->conf.flags |= IEEE80211_KEY_FLAG_RX_MGMT;
-- 
1.7.7.6


^ permalink raw reply related

* [PATCH] bluetooth: fix variable shadow warnings
From: Johannes Berg @ 2013-10-07 14:56 UTC (permalink / raw)
  To: linux-wireless, linux-bluetooth; +Cc: Johannes Berg

From: Johannes Berg <johannes.berg@intel.com>

Sparse points out three places where variables are shadowed,
rename two of the variables and remove the duplicate third.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/bluetooth/hci_event.c  | 12 +++++++-----
 net/bluetooth/l2cap_sock.c |  2 +-
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 94aab73..b5a3736 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1291,9 +1291,11 @@ static void hci_cs_remote_name_req(struct hci_dev *hdev, __u8 status)
 		goto unlock;
 
 	if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
-		struct hci_cp_auth_requested cp;
-		cp.handle = __cpu_to_le16(conn->handle);
-		hci_send_cmd(hdev, HCI_OP_AUTH_REQUESTED, sizeof(cp), &cp);
+		struct hci_cp_auth_requested auth_req;
+
+		auth_req.handle = __cpu_to_le16(conn->handle);
+		hci_send_cmd(hdev, HCI_OP_AUTH_REQUESTED,
+			     sizeof(auth_req), &auth_req);
 	}
 
 unlock:
@@ -3636,8 +3638,8 @@ void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb)
 	skb_pull(skb, HCI_EVENT_HDR_SIZE);
 
 	if (hdev->sent_cmd && bt_cb(hdev->sent_cmd)->req.event == event) {
-		struct hci_command_hdr *hdr = (void *) hdev->sent_cmd->data;
-		u16 opcode = __le16_to_cpu(hdr->opcode);
+		struct hci_command_hdr *cmd_hdr = (void *) hdev->sent_cmd->data;
+		u16 opcode = __le16_to_cpu(cmd_hdr->opcode);
 
 		hci_req_cmd_complete(hdev, opcode, 0);
 	}
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 0098af8..f07e25d 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -683,7 +683,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
 		}
 
 		if (opt == BT_FLUSHABLE_OFF) {
-			struct l2cap_conn *conn = chan->conn;
+			conn = chan->conn;
 			/* proceed further only when we have l2cap_conn and
 			   No Flush support in the LM */
 			if (!conn || !lmp_no_flush_capable(conn->hcon->hdev)) {
-- 
1.8.4.rc3


^ permalink raw reply related

* Re: [PATCH 1/2] ath10k: advestise 10.X fw support on wmi_attach
From: Kalle Valo @ 2013-10-07 12:26 UTC (permalink / raw)
  To: Bartosz Markowski; +Cc: ath10k, linux-wireless
In-Reply-To: <1380696532-4147-1-git-send-email-bartosz.markowski@tieto.com>

Bartosz Markowski <bartosz.markowski@tieto.com> writes:

> Since the WMI API has been added and we can detect from the
> FW IEs what firmware variant we deal with, turn on 10.X support.
>
> Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com>

Thanks, both patches applied. For patch 1 I changed the commit log a bit
as we don't really advertise anything to user space:

commit 8acd3c97ff9ea803513c55f89d3f1832481b5b76
Author: Bartosz Markowski <bartosz.markowski@tieto.com>
Date:   Wed Oct 2 08:48:51 2013 +0200

    ath10k: enable 10.x firmware branch support
    
    Since the WMI API has been added and we can detect from the
    FW IEs what firmware variant we deal with, turn on support
    for 10.x firmware branch in ath10k_wmi_attach().
    
    kvalo: improve the commit log
    
    Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

-- 
Kalle Valo

^ permalink raw reply

* Re: [regression] [bisected] rt2800pci doesn't work after 9483f40d8d01918b399b4e24d0c1111db0afffeb
From: Kirill Tkhai @ 2013-10-07 12:04 UTC (permalink / raw)
  To: Stanislaw Gruszka
  Cc: linux-wireless@vger.kernel.org, linville@tuxdriver.com,
	ivdoorn@gmail.com, gwingerde@gmail.com,
	helmut.schaa@googlemail.com
In-Reply-To: <20131007082457.GB2418@redhat.com>

07.10.2013, 12:28, "Stanislaw Gruszka" <sgruszka@redhat.com>:

>  On Sat, Oct 05, 2013 at 07:29:08AM +0400, Kirill Tkhai wrote:
>>   GIt bisect says the first bad commit is 9483f40d8d01918b399b4e24d0c1111db0afffeb:
>>
>>           Author: Jakub Kicinski <kubakici@wp.pl>
>>           Date:   Tue May 7 00:28:50 2013 +0200
>>
>>               rt2x00pci: Use PCI MSIs whenever possible
>>
>>               All PCIe devices must support MSIs, make use of them.
>  I posted revert of that patch some time ago, it's on the way
>  upstream/stable ...
>

I bought this device one or two weeks ago, so I had not watched linux-wireless.git ;)
This fix was not in linux-next.git when I wrote the message.

If sometimes you need testing the driver on device with IDs like I wrote I'm ready
to help with this.

Kirill

^ permalink raw reply

* Re: [PATCH] iwlwifi: pcie: fix merge damage
From: Johannes Berg @ 2013-10-07 11:47 UTC (permalink / raw)
  To: sedat.dilek; +Cc: John W. Linville, wireless
In-Reply-To: <CA+icZUVf1A2+-LPEARpOnRShm2BXagtHtw7+SidTs2b_ifV97A@mail.gmail.com>

On Thu, 2013-10-03 at 12:07 +0200, Sedat Dilek wrote:

> > I believe the merge damage only occurred during merging wireless.git (or
> > one of its upstreams) into wireless-next.git.
> >
> 
> Hmm, this patch applies also for Linux v3.12-rc3+, so you are sure it
> is not for iwlwifi-3.12-fixes?

Ahrg, yes, so it happened in wireless-next *before* wireless-next went
into 3.12-rc1.

John, any idea what to do now? Cherry-pick the patch over to
wireless.git?

johannes


^ permalink raw reply

* pull-request: iwlwifi-next 2013-10-07
From: Johannes Berg @ 2013-10-07  9:56 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless

[-- Attachment #1: Type: text/plain, Size: 5557 bytes --]

John,

Also the first pull request for iwlwifi-next, also quite late, sorry.

We have a collection of things all over, with two bigger things standing
out: a rather big Bluetooth coexistence update and VHT support in rate
scaling.

Let me know if there's any problem.

johannes


The following changes since commit 272b98c6455f00884f0350f775c5342358ebb73f:

  Linux 3.12-rc1 (2013-09-16 16:17:51 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next.git for-john

for you to fetch changes up to 07ad72f761482a0b59a946efe0c6290e0858057f:

  iwlwifi: mvm: add support for NICs which have only 16 Tx queues. (2013-10-02 18:00:49 +0200)

----------------------------------------------------------------
Alexander Bondar (2):
      iwlwifi: mvm: Adjust some power management constants
      iwlwifi: mvm: Add device wide power command

Andrei Otcheretianski (1):
      iwlwifi: mvm: Implement BT coex notifications

David Spinadel (3):
      iwlwifi: mvm: implement NoA testing using testmode cmd
      iwlwifi: mvm: add no_basic_ssid option
      iwlwifi: mvm: support sched scan if supported by the fw

Djalal Harouni (1):
      iwlwifi: mvm: make debugfs write() operations write up to count bytes

Emmanuel Grumbach (13):
      iwlwifi: mvm: use CTS to Self if firmware allows it
      iwlwifi: pcie: clean RFKILL interrupt in AMPG
      iwlwifi: mvm: don't sleep while allocating in atomic context
      iwlwifi: mvm: new BT Coex API
      iwlwifi: mvm: BT Coex - no need to send envelopes
      iwlwifi: mvm: BT Coex - use data from firmware
      iwlwifi: mvm: don't use reduced Tx power when not applicable
      iwlwifi: mvm: BT Coex - adapt debugfs to new API
      iwlwifi: mvm: BT Coex - Correctly enable and treat rssi events
      iwlwifi: pcie: dump_stack upon timeout of SYNC cmd
      iwlwifi: mvm: BT Coex - don't limit agg size in loose scheme
      iwlwifi: mvm: BT Coex - set the proper LUT for single ant devices
      iwlwifi: pcie: restart the driver when a command times out

Eyal Shapira (5):
      iwlwifi: mvm: remove rs FSM actions relevant only for 3 antennas
      iwlwifi: mvm: fix switch from shared antenna in case of BT load
      iwlwifi: mvm: update expected tpt tables for VHT
      iwlwifi: mvm: support VHT in rs
      iwlwifi: mvm: remove GF support in rs

Eytan Lifshitz (3):
      iwlwifi: mvm: change the name of init_ucode_run flag
      iwlwifi: mvm: prevent the NIC to be powered at driver load time.
      iwlwifi: mvm: add support for NICs which have only 16 Tx queues.

Jingoo Han (1):
      wireless: iwlwifi: remove unnecessary pci_set_drvdata()

Johannes Berg (5):
      iwlwifi: mvm: implement beacon filtering testmode command
      iwlwifi: mvm: query firmware for non-QoS seqno
      iwlwifi: mvm: give client MACs time to synchronise during restart
      iwlwifi: mvm: fix locking in iwl_mvm_bt_rssi_event()
      iwlwifi: mvm: implement new IPv6 offload API

Max Stepanov (1):
      iwlwifi: mvm: split ADD_STA and ADD_STA_KEY in firmware API

Oren Givon (1):
      iwlwifi: mvm: debugfs: add an option to set antennas for scan command

 drivers/net/wireless/iwlwifi/iwl-fw.h             |  18 +
 drivers/net/wireless/iwlwifi/iwl-prph.h           |   2 +
 drivers/net/wireless/iwlwifi/mvm/bt-coex.c        | 598 ++++++++++++-----
 drivers/net/wireless/iwlwifi/mvm/constants.h      |   4 +-
 drivers/net/wireless/iwlwifi/mvm/d3.c             | 138 +++-
 drivers/net/wireless/iwlwifi/mvm/debugfs.c        | 197 ++++--
 drivers/net/wireless/iwlwifi/mvm/fw-api-bt-coex.h | 145 +++--
 drivers/net/wireless/iwlwifi/mvm/fw-api-d3.h      |  44 +-
 drivers/net/wireless/iwlwifi/mvm/fw-api-power.h   |  29 +-
 drivers/net/wireless/iwlwifi/mvm/fw-api-rs.h      |  21 +-
 drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h    |  34 +-
 drivers/net/wireless/iwlwifi/mvm/fw-api-sta.h     |  55 +-
 drivers/net/wireless/iwlwifi/mvm/fw-api.h         |  16 +-
 drivers/net/wireless/iwlwifi/mvm/fw.c             |  23 +-
 drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c       |  18 +-
 drivers/net/wireless/iwlwifi/mvm/mac80211.c       | 177 ++++-
 drivers/net/wireless/iwlwifi/mvm/mvm.h            |  67 +-
 drivers/net/wireless/iwlwifi/mvm/nvm.c            |  99 ++-
 drivers/net/wireless/iwlwifi/mvm/ops.c            |  60 +-
 drivers/net/wireless/iwlwifi/mvm/power.c          |  70 +-
 drivers/net/wireless/iwlwifi/mvm/quota.c          |  34 +
 drivers/net/wireless/iwlwifi/mvm/rs.c             | 758 ++++++++++++----------
 drivers/net/wireless/iwlwifi/mvm/rs.h             | 154 +++--
 drivers/net/wireless/iwlwifi/mvm/rx.c             |  21 +
 drivers/net/wireless/iwlwifi/mvm/scan.c           | 456 ++++++++++++-
 drivers/net/wireless/iwlwifi/mvm/sta.c            | 192 ++++--
 drivers/net/wireless/iwlwifi/mvm/sta.h            |   4 -
 drivers/net/wireless/iwlwifi/mvm/testmode.h       |  95 +++
 drivers/net/wireless/iwlwifi/mvm/time-event.c     |   5 +-
 drivers/net/wireless/iwlwifi/mvm/time-event.h     |   4 +-
 drivers/net/wireless/iwlwifi/mvm/tx.c             |  49 +-
 drivers/net/wireless/iwlwifi/mvm/utils.c          |   2 +-
 drivers/net/wireless/iwlwifi/pcie/drv.c           |   3 -
 drivers/net/wireless/iwlwifi/pcie/trans.c         |   3 +
 drivers/net/wireless/iwlwifi/pcie/tx.c            |   3 +
 35 files changed, 2716 insertions(+), 882 deletions(-)
 create mode 100644 drivers/net/wireless/iwlwifi/mvm/testmode.h


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply

* pull-request: mac80211-next 2013-10-07
From: Johannes Berg @ 2013-10-07  9:51 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless

[-- Attachment #1: Type: text/plain, Size: 3818 bytes --]

John,

First pull request for new features - sorry it's so late.

We have an assortment of cleanups and new features, of which the biggest
one is probably the channel-switch support in IBSS. Nothing else really
stands out much.

Let me know if there's any problem.

johannes


The following changes since commit 272b98c6455f00884f0350f775c5342358ebb73f:

  Linux 3.12-rc1 (2013-09-16 16:17:51 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git for-john

for you to fetch changes up to 7578d57520f51093f590d68e16965e2714e69747:

  mac80211: implement STA CSA for drivers using channel contexts (2013-10-02 18:18:23 +0200)

----------------------------------------------------------------
Arik Nemtsov (1):
      mac80211: implement STA CSA for drivers using channel contexts

Eliad Peller (2):
      mac80211: fix some snprintf misuses
      ieee80211: fix vht cap definitions

Fred Zhou (2):
      mac80211: use exact-size allocation for authentication frame
      mac80211: improve default WMM parameter setting

Janusz Dziedzic (1):
      cfg80211: parse dfs region for internal regdb option

Johannes Berg (4):
      mac80211: add ieee80211_iterate_active_interfaces_rtnl()
      mac80211: use ERR_CAST()
      mac80211: add explicit IBSS driver operations
      regulatory: enable channels 52-64 and 100-144 for world roaming

Lorenzo Bianconi (2):
      mac80211: add fixed_rate management to minstrel rc
      mac80211: do not override fixed_rate_idx in minstrel_ht_update_stats

Michal Kazior (1):
      mac80211: support reporting A-MSDU subframes individually

Sergey Ryazanov (1):
      mac80211: Remove superfluous is_multicast_ether_addr() call

Simon Wunderlich (7):
      cfg80211: export cfg80211_chandef_dfs_required
      mac80211: split off channel switch parsing function
      mac80211: split off ibss disconnect
      mac80211: add support for CSA in IBSS mode
      mac80211: send a CSA action frame when changing channel
      nl80211: enable IBSS support for channel switch announcements
      nl80211: allow CAC only if no operation is going on

Stanislaw Gruszka (1):
      mac80211: change beacon/connection polling

cedric Voncken (1):
      cfg80211: vlan priority handling in WMM

 include/linux/ieee80211.h          |   4 +-
 include/net/cfg80211.h             |   9 +
 include/net/mac80211.h             |  42 +++
 net/mac80211/cfg.c                 |  92 ++++--
 net/mac80211/chan.c                |   5 -
 net/mac80211/debugfs.c             |  55 ++--
 net/mac80211/driver-ops.h          |  27 ++
 net/mac80211/ibss.c                | 608 +++++++++++++++++++++++++++++++------
 net/mac80211/ieee80211_i.h         |  30 +-
 net/mac80211/iface.c               |   4 +
 net/mac80211/key.c                 |   2 +-
 net/mac80211/mlme.c                | 334 +++++---------------
 net/mac80211/rc80211_minstrel.c    |  14 +
 net/mac80211/rc80211_minstrel_ht.c |  23 +-
 net/mac80211/rc80211_pid_debugfs.c |  26 +-
 net/mac80211/rx.c                  |  39 ++-
 net/mac80211/scan.c                |   3 +-
 net/mac80211/spectmgmt.c           | 162 ++++++++++
 net/mac80211/trace.h               |  35 +++
 net/mac80211/tx.c                  |  39 ++-
 net/mac80211/util.c                | 162 ++++++----
 net/mac80211/vht.c                 |   4 +-
 net/wireless/chan.c                |   1 +
 net/wireless/core.h                |   9 -
 net/wireless/debugfs.c             |  24 +-
 net/wireless/genregdb.awk          |   6 +
 net/wireless/nl80211.c             |  52 +++-
 net/wireless/reg.c                 |  14 +-
 net/wireless/util.c                |   9 +
 29 files changed, 1290 insertions(+), 544 deletions(-)


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply

* WIFI USB-Stick for P2P
From: Alexander Müller @ 2013-10-07  9:08 UTC (permalink / raw)
  To: linux-wireless@vger.kernel.org

Hello linux-wireless,

I'm wondering if there is a list of usb wifi devices having a good and stable p2p support for wifi direct. We are currently using an AVM Fritz wifi stick that is supported by the carl9170 driver, but it is experiencing random failures and stalls which require a hardware reset. The p2p howto page at http://wireless.kernel.org/en/developers/p2p/howto suggests that there may be other devices and drivers supporting p2p, but I haven't figured out exactly which devices work best.

Can you give me a hint?

Regards,
Alex

________________________________

Dipl.-Inf. (Univ.) Alexander Müller, Software Architect
Phone: +49 89 45 23 47 - 224


jambit GmbH
Erika-Mann-Str. 63, 80636 München
Phone: +49 89 45 23 47 - 0 Fax: +49 89 45 23 47 - 70

http://www.jambit.com where innovation works

Geschäftsführer: Peter F. Fellinger, Markus Hartinger
Sitz: München; Registergericht: München, HRB 129139

^ permalink raw reply

* Re: [PATCH] cfg80211: Pass station supported channel and oper class info to kernel
From: Johannes Berg @ 2013-10-07  8:37 UTC (permalink / raw)
  To: Undekari, Sunil Dutt; +Cc: linux-wireless@vger.kernel.org, j@w1.fi
In-Reply-To: <26F3B0343EE4744AA14EEEF9E1E534511F71B55F@aphydexd01a>

On Thu, 2013-10-03 at 07:20 +0000, Undekari, Sunil Dutt wrote:
> Thanks Johannes for the review.
> 
> >It seems you should validate that the length is even, and at least 2?
> Can I know why the check for even/ atleast 2 is? Though I would
> validate for a non zero length and return failure in the else,
> considering a case where the TDLS peer advertises a single channel.
> Shouldn't it suffice?

Yes, if you look at the 802.11 spec you can know why. Hint: a single
channel is advertised using 2 bytes.

johannes


^ permalink raw reply

* Re: [PATCH 2/2] mac80211: implement support for configuring antenna gain
From: Johannes Berg @ 2013-10-07  8:30 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless, wireless-regdb
In-Reply-To: <1381134567.13586.3.camel@jlt4.sipsolutions.net>

+ wireless-regdb

On Mon, 2013-10-07 at 10:29 +0200, Johannes Berg wrote:
> On Sat, 2013-10-05 at 13:18 +0200, Felix Fietkau wrote:
> 
> > > I understand. I don't understand the pieces about "max_antenna_gain".
> 
> > Right now ath9k has an antenna gain value in the EEPROM, and it compares
> > it against the channel max_antenna_gain value.
> 
> I just don't understand what the max means. If I connect a 5dBi gain
> antenna, but the "max antenna gain" is 3dBi, what should happen?
> 
> > Let's assume we have configured the tx power to the maximum value, the
> > regdb allows 3 dB antenna gain, and the ath9k EEPROM contains an antenna
> > gain of 3 dB as well.
> > If we now add another 3 dB of user-configured antenna gain, it first
> > starts tapping into the regulatory-allowed antenna gain before reducing
> > tx power in mac80211. The driver needs to know about this, so I put the
> > calculated maximum antenna gain into the hw conf as well.
> 
> I don't think it really works this way, does it? I don't believe the
> "regulatory-allowed antenna gain" is really something that's allowed on
> top of the EIRP?
> 
> johannes
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 



^ permalink raw reply

* Re: [PATCH 2/2] mac80211: implement support for configuring antenna gain
From: Johannes Berg @ 2013-10-07  8:29 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless
In-Reply-To: <524FF599.5040706@openwrt.org>

On Sat, 2013-10-05 at 13:18 +0200, Felix Fietkau wrote:

> > I understand. I don't understand the pieces about "max_antenna_gain".

> Right now ath9k has an antenna gain value in the EEPROM, and it compares
> it against the channel max_antenna_gain value.

I just don't understand what the max means. If I connect a 5dBi gain
antenna, but the "max antenna gain" is 3dBi, what should happen?

> Let's assume we have configured the tx power to the maximum value, the
> regdb allows 3 dB antenna gain, and the ath9k EEPROM contains an antenna
> gain of 3 dB as well.
> If we now add another 3 dB of user-configured antenna gain, it first
> starts tapping into the regulatory-allowed antenna gain before reducing
> tx power in mac80211. The driver needs to know about this, so I put the
> calculated maximum antenna gain into the hw conf as well.

I don't think it really works this way, does it? I don't believe the
"regulatory-allowed antenna gain" is really something that's allowed on
top of the EIRP?

johannes


^ permalink raw reply

* Re: [regression] [bisected] rt2800pci doesn't work after 9483f40d8d01918b399b4e24d0c1111db0afffeb
From: Stanislaw Gruszka @ 2013-10-07  8:24 UTC (permalink / raw)
  To: Kirill Tkhai; +Cc: linux-wireless, linville, ivdoorn, gwingerde, helmut.schaa
In-Reply-To: <39871380943748@web17j.yandex.ru>

On Sat, Oct 05, 2013 at 07:29:08AM +0400, Kirill Tkhai wrote:
> GIt bisect says the first bad commit is 9483f40d8d01918b399b4e24d0c1111db0afffeb:
> 
>         Author: Jakub Kicinski <kubakici@wp.pl>
>         Date:   Tue May 7 00:28:50 2013 +0200
> 
>             rt2x00pci: Use PCI MSIs whenever possible
> 
>             All PCIe devices must support MSIs, make use of them.

I posted revert of that patch some time ago, it's on the way
upstream/stable ...

Stanislaw

^ permalink raw reply

* [PATCH v2] rt2x00: rt2800lib: no need to toggle RF R30 bit 7 twice
From: Kevin Lo @ 2013-10-07  8:02 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless, users

In rt2800_config_channel_rf3xxx(), there's no need to toggle
RF R30 bit 7 twice. 

Signed-off-by: Kevin Lo <kevlo@kevlo.org>
---
Changes since v1:
  - the previous patch was malformed
--- 

diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 25aaa5e..65b4416 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -2029,13 +2029,6 @@ static void rt2800_config_channel_rf3xxx(struct rt2x00_dev *rt2x00dev,
 			  rt2x00dev->default_ant.tx_chain_num <= 2);
 	rt2800_rfcsr_write(rt2x00dev, 1, rfcsr);
 
-	rt2800_rfcsr_read(rt2x00dev, 30, &rfcsr);
-	rt2x00_set_field8(&rfcsr, RFCSR30_RF_CALIBRATION, 1);
-	rt2800_rfcsr_write(rt2x00dev, 30, rfcsr);
-	msleep(1);
-	rt2x00_set_field8(&rfcsr, RFCSR30_RF_CALIBRATION, 0);
-	rt2800_rfcsr_write(rt2x00dev, 30, rfcsr);
-
 	rt2800_rfcsr_read(rt2x00dev, 23, &rfcsr);
 	rt2x00_set_field8(&rfcsr, RFCSR23_FREQ_OFFSET, rt2x00dev->freq_offset);
 	rt2800_rfcsr_write(rt2x00dev, 23, rfcsr);

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox