2014-10-02 11:57:32

by Janusz Dziedzic

[permalink] [raw]
Subject: [PATCH] ath10k: don't create bssid peer for ibss

It's not really necessary to create bssid peer for
bssid. Self-address peer is sufficient.

This prevents some firmware revisions from crashing.

Signed-off-by: Janusz Dziedzic <[email protected]>
---
drivers/net/wireless/ath/ath10k/mac.c | 28 ++++++++++------------------
1 file changed, 10 insertions(+), 18 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index e3d2a9e..1fbbf8c 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -1052,14 +1052,6 @@ static void ath10k_control_ibss(struct ath10k_vif *arvif,
if (is_zero_ether_addr(arvif->bssid))
return;

- ret = ath10k_peer_delete(arvif->ar, arvif->vdev_id,
- arvif->bssid);
- if (ret) {
- ath10k_warn(ar, "failed to delete IBSS BSSID peer %pM for vdev %d: %d\n",
- arvif->bssid, arvif->vdev_id, ret);
- return;
- }
-
memset(arvif->bssid, 0, ETH_ALEN);

return;
@@ -3178,17 +3170,17 @@ static void ath10k_bss_info_changed(struct ieee80211_hw *hw,
if (changed & BSS_CHANGED_BSSID &&
vif->type != NL80211_IFTYPE_AP) {
if (!is_zero_ether_addr(info->bssid)) {
- ath10k_dbg(ar, ATH10K_DBG_MAC,
- "mac vdev %d create peer %pM\n",
- arvif->vdev_id, info->bssid);
-
- ret = ath10k_peer_create(ar, arvif->vdev_id,
- info->bssid);
- if (ret)
- ath10k_warn(ar, "failed to add peer %pM for vdev %d when changing bssid: %i\n",
- info->bssid, arvif->vdev_id, ret);
-
if (vif->type == NL80211_IFTYPE_STATION) {
+ ath10k_dbg(ar, ATH10K_DBG_MAC,
+ "mac vdev %d create peer %pM\n",
+ arvif->vdev_id, info->bssid);
+
+ ret = ath10k_peer_create(ar, arvif->vdev_id,
+ info->bssid);
+ if (ret)
+ ath10k_warn(ar, "failed to add peer %pM for vdev %d when changing bssid: %i\n",
+ info->bssid, arvif->vdev_id,
+ ret);
/*
* this is never erased as we it for crypto key
* clearing; this is FW requirement
--
1.9.1



2014-10-04 01:06:28

by Chun-Yeow Yeoh

[permalink] [raw]
Subject: Re: [PATCH] ath10k: don't create bssid peer for ibss

On Thu, Oct 2, 2014 at 7:56 PM, Janusz Dziedzic
<[email protected]> wrote:
> It's not really necessary to create bssid peer for
> bssid. Self-address peer is sufficient.
>
> This prevents some firmware revisions from crashing.
>

Which firmware? AFAIK, only firmware version 636 supports adhoc, right?

---
Chun-Yeow

2014-10-07 06:39:35

by Janusz Dziedzic

[permalink] [raw]
Subject: Re: [PATCH] ath10k: don't create bssid peer for ibss

On 4 October 2014 03:06, Yeoh Chun-Yeow <[email protected]> wrote:
> On Thu, Oct 2, 2014 at 7:56 PM, Janusz Dziedzic
> <[email protected]> wrote:
>> It's not really necessary to create bssid peer for
>> bssid. Self-address peer is sufficient.
>>
>> This prevents some firmware revisions from crashing.
>>
>
> Which firmware? AFAIK, only firmware version 636 supports adhoc, right?
>
Yes, this is for 636.

BR
Janusz

2014-10-08 10:21:53

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath10k: don't create bssid peer for ibss

Janusz Dziedzic <[email protected]> writes:

> It's not really necessary to create bssid peer for
> bssid. Self-address peer is sufficient.
>
> This prevents some firmware revisions from crashing.
>
> Signed-off-by: Janusz Dziedzic <[email protected]>

Thanks, applied.

--
Kalle Valo