[SRU Xenial][RESEND][PATCH] UBUNTU: SAUCE: Redpine: fix for firmware assert upon assoc timeout

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[SRU Xenial][RESEND][PATCH] UBUNTU: SAUCE: Redpine: fix for firmware assert upon assoc timeout

Siva Rebbagondla-2
From: Siva Rebbagondla <[hidden email]>

BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1804360

When Association timeout happens and station tries to scan, observed below
firmware assert.

Root cause: When association starts, driver is sending station add peer
notify to firmware but when Association timeout happens, driver is not
sending station peer delete to Firmware. Hence, FW is going into DEEP SLEEP
in associated state, which causes below Firmware assert.

Fix: sending station delete peer notify when assoc timeout happens

...skipping...
wlan0: authenticate with ac:a3:1e:a1:1e:85
wlan0: send auth to ac:a3:1e:a1:1e:85 (try 1/3)
wlan0: authenticated
wlan0: associate with ac:a3:1e:a1:1e:85 (try 1/3)
wlan0: associate with ac:a3:1e:a1:1e:85 (try 2/3)
wlan0: associate with ac:a3:1e:a1:1e:85 (try 3/3)
wlan0: association with ac:a3:1e:a1:1e:85 timed out
ven_rsi_91x: rsi_disable_ps: Cannot accept disable PS in PS_NONE state
ven_rsi_91x: rsi_interrupt_handler: ==> FIRMWARE Assert <==
ven_rsi_91x: rsi_interrupt_handler: Firmware Status is 0xa
IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

Signed-off-by: Siva Rebbagondla <[hidden email]>
---
 ubuntu/rsi/rsi_91x_mac80211.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/ubuntu/rsi/rsi_91x_mac80211.c b/ubuntu/rsi/rsi_91x_mac80211.c
index 696802f..78702ff 100644
--- a/ubuntu/rsi/rsi_91x_mac80211.c
+++ b/ubuntu/rsi/rsi_91x_mac80211.c
@@ -2687,7 +2687,24 @@ out:
  return status;
 }
 
+static void rsi_mac80211_event_callback(struct ieee80211_hw *hw,
+ struct ieee80211_vif *vif,
+ const struct ieee80211_event *event)
+{
+ struct rsi_hw *adapter = hw->priv;
+ struct rsi_common *common = adapter->priv;
+ struct ieee80211_bss_conf *bss = &adapter->vifs[0]->bss_conf;
 
+ if (event->type == MLME_EVENT && event->u.mlme.data == ASSOC_EVENT &&
+    event->u.mlme.status == MLME_TIMEOUT) {
+ ven_rsi_dbg(ERR_ZONE, "%s: ASSOC Timeout: reason = %d\n",
+    __func__, event->u.mlme.reason);
+ rsi_send_sta_notify_frame(common, STA_OPMODE,
+  STA_DISCONNECTED,
+  bss->bssid, bss->qos,
+  bss->aid, 0);
+ }
+}
 
 static struct ieee80211_ops mac80211_ops = {
  .tx = rsi_mac80211_tx,
@@ -2722,6 +2739,7 @@ static struct ieee80211_ops mac80211_ops = {
 #endif
  .remain_on_channel = rsi_mac80211_roc,
  .cancel_remain_on_channel = rsi_mac80211_cancel_roc,
+ .event_callback = rsi_mac80211_event_callback,
 };
 
 /**
--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU Xenial][RESEND][PATCH] UBUNTU: SAUCE: Redpine: fix for firmware assert upon assoc timeout

Wen-chien Jesse Sung
Acked-By: Wen-chien Jesse Sung <[hidden email]>


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU Xenial][RESEND][PATCH] UBUNTU: SAUCE: Redpine: fix for firmware assert upon assoc timeout

Shrirang Bagul
In reply to this post by Siva Rebbagondla-2
On Wed, 2018-11-21 at 12:07 +0530, Siva Rebbagondla wrote:

> From: Siva Rebbagondla <[hidden email]>
>
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1804360
>
> When Association timeout happens and station tries to scan, observed below
> firmware assert.
>
> Root cause: When association starts, driver is sending station add peer
> notify to firmware but when Association timeout happens, driver is not
> sending station peer delete to Firmware. Hence, FW is going into DEEP SLEEP
> in associated state, which causes below Firmware assert.
>
> Fix: sending station delete peer notify when assoc timeout happens
>
> ...skipping...
> wlan0: authenticate with ac:a3:1e:a1:1e:85
> wlan0: send auth to ac:a3:1e:a1:1e:85 (try 1/3)
> wlan0: authenticated
> wlan0: associate with ac:a3:1e:a1:1e:85 (try 1/3)
> wlan0: associate with ac:a3:1e:a1:1e:85 (try 2/3)
> wlan0: associate with ac:a3:1e:a1:1e:85 (try 3/3)
> wlan0: association with ac:a3:1e:a1:1e:85 timed out
> ven_rsi_91x: rsi_disable_ps: Cannot accept disable PS in PS_NONE state
> ven_rsi_91x: rsi_interrupt_handler: ==> FIRMWARE Assert <==
> ven_rsi_91x: rsi_interrupt_handler: Firmware Status is 0xa
> IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
>
> Signed-off-by: Siva Rebbagondla <[hidden email]>
Acked-By: Shrirang Bagul <[hidden email]>


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

APPLIED/cmnt: [SRU Xenial][RESEND][PATCH] UBUNTU: SAUCE: Redpine: fix for firmware assert upon assoc timeout

Kleber Souza
In reply to this post by Siva Rebbagondla-2
On 11/21/18 7:37 AM, Siva Rebbagondla wrote:
> From: Siva Rebbagondla <[hidden email]>
>
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1804360

Hi Siva,


Please add the BugLink reference in the following format:

BugLink: https://bugs.launchpad.net/bugs/<bug number>


I have fixed it this time when applying the patch.

>
> When Association timeout happens and station tries to scan, observed below
> firmware assert.
>
> Root cause: When association starts, driver is sending station add peer
> notify to firmware but when Association timeout happens, driver is not
> sending station peer delete to Firmware. Hence, FW is going into DEEP SLEEP
> in associated state, which causes below Firmware assert.
>
> Fix: sending station delete peer notify when assoc timeout happens
>
> ...skipping...
> wlan0: authenticate with ac:a3:1e:a1:1e:85
> wlan0: send auth to ac:a3:1e:a1:1e:85 (try 1/3)
> wlan0: authenticated
> wlan0: associate with ac:a3:1e:a1:1e:85 (try 1/3)
> wlan0: associate with ac:a3:1e:a1:1e:85 (try 2/3)
> wlan0: associate with ac:a3:1e:a1:1e:85 (try 3/3)
> wlan0: association with ac:a3:1e:a1:1e:85 timed out
> ven_rsi_91x: rsi_disable_ps: Cannot accept disable PS in PS_NONE state
> ven_rsi_91x: rsi_interrupt_handler: ==> FIRMWARE Assert <==
> ven_rsi_91x: rsi_interrupt_handler: Firmware Status is 0xa
> IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
>
> Signed-off-by: Siva Rebbagondla <[hidden email]>
> ---
>  ubuntu/rsi/rsi_91x_mac80211.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
>
> diff --git a/ubuntu/rsi/rsi_91x_mac80211.c b/ubuntu/rsi/rsi_91x_mac80211.c
> index 696802f..78702ff 100644
> --- a/ubuntu/rsi/rsi_91x_mac80211.c
> +++ b/ubuntu/rsi/rsi_91x_mac80211.c
> @@ -2687,7 +2687,24 @@ out:
>   return status;
>  }
>  
> +static void rsi_mac80211_event_callback(struct ieee80211_hw *hw,
> + struct ieee80211_vif *vif,
> + const struct ieee80211_event *event)
> +{
> + struct rsi_hw *adapter = hw->priv;
> + struct rsi_common *common = adapter->priv;
> + struct ieee80211_bss_conf *bss = &adapter->vifs[0]->bss_conf;
>  
> + if (event->type == MLME_EVENT && event->u.mlme.data == ASSOC_EVENT &&
> +    event->u.mlme.status == MLME_TIMEOUT) {
> + ven_rsi_dbg(ERR_ZONE, "%s: ASSOC Timeout: reason = %d\n",
> +    __func__, event->u.mlme.reason);
> + rsi_send_sta_notify_frame(common, STA_OPMODE,
> +  STA_DISCONNECTED,
> +  bss->bssid, bss->qos,
> +  bss->aid, 0);
> + }
> +}
>  
>  static struct ieee80211_ops mac80211_ops = {
>   .tx = rsi_mac80211_tx,
> @@ -2722,6 +2739,7 @@ static struct ieee80211_ops mac80211_ops = {
>  #endif
>   .remain_on_channel = rsi_mac80211_roc,
>   .cancel_remain_on_channel = rsi_mac80211_cancel_roc,
> + .event_callback = rsi_mac80211_event_callback,
>  };
>  
>  /**

Applied to xenial/master-next branch.

Thanks,
Kleber


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team