[Xenial SRU][PATCH] UBUNTU: SAUCE: Redpine: resolve wifi scan stop issue in stress tests

Shrirang Bagul shrirang.bagul at canonical.com
Mon Apr 23 05:36:29 UTC 2018


Hi Amit,

Looks like this patch slipped through the current SRU cycle, possibly because it was tagged with same message-ID as the firmware patch "[Xenial][PATCH] UBUNTU: linux-firmware: update firmware images
for Redpine 9113 chipset".
Unfortunately, it too late now for this cycle,  please resend this patch for SRU again, don't forget to add a 'RESEND' prefix to the subject. 

This will certainly delay the release of this feature to the customer.

To avoid such mishaps In future:
- Make sure patches for linux-firmware (firmware) package and linux (Xenial kernel) patches must have separate message-ID's, 
- Separate bugs must be filed against each of the packages, and
- Firmware patch must only include the BugLink to the bug in linux-firmware package; the same logic applies for the kernel SRU patch.

Thanks,
Shirang


On Wed, 2018-03-21 at 20:02 +0530, Amitkumar Karwar wrote:
> From: Sanjay Kumar Konduri <sanjay.konduri at redpinesignals.com>
> 
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1757435
> 
> We are disabling deep sleep before performing scan. In corner case,
> it's observed that probe request is downloaded to firmware before
> receiving deep sleep confirmation which leads to a scan stop issue
> 
> Race is resolved in this patch by waiting for the confirmation from
> firmware
> 
> Signed-off-by: Sanjay Kumar Konduri <sanjay.konduri at redpinesignals.com>
> Signed-off-by: Amitkumar Karwar <amit.karwar at redpinesignals.com>
> ---
>  ubuntu/rsi/rsi_91x_main.c | 1 +
>  ubuntu/rsi/rsi_91x_mgmt.c | 5 +++++
>  ubuntu/rsi/rsi_main.h     | 1 +
>  3 files changed, 7 insertions(+)
> 
> diff --git a/ubuntu/rsi/rsi_91x_main.c b/ubuntu/rsi/rsi_91x_main.c
> index 2350dbb61..49b98cd 100644
> --- a/ubuntu/rsi/rsi_91x_main.c
> +++ b/ubuntu/rsi/rsi_91x_main.c
> @@ -382,6 +382,7 @@ struct rsi_hw *ven_rsi_91x_init(void)
>  #ifdef CONFIG_HW_SCAN_OFFLOAD
>  	rsi_init_event(&common->chan_set_event);
>  	rsi_init_event(&common->probe_cfm_event);
> +	rsi_init_event(&common->mgmt_cfm_event);
>  	rsi_init_event(&common->chan_change_event);
>  	rsi_init_event(&common->cancel_hw_scan_event);
>  	common->scan_workqueue = 
> diff --git a/ubuntu/rsi/rsi_91x_mgmt.c b/ubuntu/rsi/rsi_91x_mgmt.c
> index 11b2046..58a9b69 100644
> --- a/ubuntu/rsi/rsi_91x_mgmt.c
> +++ b/ubuntu/rsi/rsi_91x_mgmt.c
> @@ -2407,6 +2407,8 @@ void rsi_scan_start(struct work_struct *work)
>  
>  	common->scan_in_prog = true;
>  	rsi_disable_ps(common->priv);
> +	rsi_reset_event(&common->mgmt_cfm_event);
> +	rsi_wait_event(&common->mgmt_cfm_event, msecs_to_jiffies(2000));
>  	
>  	for (ii =0; ii < scan_req->n_channels ; ii++) {
>  		if (common->iface_down)
> @@ -2470,6 +2472,8 @@ void rsi_scan_start(struct work_struct *work)
>  	del_timer(&common->scan_timer);
>  	common->scan_in_prog = false;
>  	rsi_enable_ps(common->priv);
> +	rsi_reset_event(&common->mgmt_cfm_event);
> +	rsi_wait_event(&common->mgmt_cfm_event, msecs_to_jiffies(2000));
>  #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0))
>  	info.aborted = false;
>  	ieee80211_scan_completed(common->priv->hw, &info);
> @@ -2693,6 +2697,7 @@ static int rsi_handle_ta_confirm(struct rsi_common *common, u8 *msg)
>  
>  	case WAKEUP_SLEEP_REQUEST:
>  		ven_rsi_dbg(INFO_ZONE, "Wakeup/Sleep confirmation.\n");
> +		rsi_set_event(&common->mgmt_cfm_event);
>  		return rsi_handle_ps_confirm(adapter, msg);
>  
>  	case BG_SCAN_PROBE_REQ:
> diff --git a/ubuntu/rsi/rsi_main.h b/ubuntu/rsi/rsi_main.h
> index 2aad124..027e9d9 100644
> --- a/ubuntu/rsi/rsi_main.h
> +++ b/ubuntu/rsi/rsi_main.h
> @@ -376,6 +376,7 @@ struct rsi_common {
>  	struct work_struct scan_work;
>  	struct rsi_event chan_set_event;
>  	struct rsi_event probe_cfm_event;
> +	struct rsi_event mgmt_cfm_event;
>  	struct rsi_event chan_change_event;
>  	struct rsi_event cancel_hw_scan_event;
>  	struct timer_list scan_timer;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20180423/6864eb47/attachment.sig>


More information about the kernel-team mailing list