qcacld-3.0: Fix wrong MBSSID information for VDEV UP command

VDEV UP command doesn't include right MBSSID information, it will
cause data stall issue and so on.

Fix is to provide right MBSSID information with VDEV UP command.

Change-Id: I0201722c14dee1b01b8dacc7e3095301fb02fd3a
CRs-Fixed: 2434405
此提交包含在:
hqu
2019-05-14 20:17:28 +08:00
提交者 nshrivas
父節點 ab8f08d867
當前提交 bcacd8416b
共有 2 個檔案被更改,包括 56 行新增0 行删除

查看文件

@@ -147,6 +147,27 @@ bool mlme_get_cac_required(struct wlan_objmgr_vdev *vdev);
QDF_STATUS QDF_STATUS
mlme_set_cac_required(struct wlan_objmgr_vdev *vdev, bool val); mlme_set_cac_required(struct wlan_objmgr_vdev *vdev, bool val);
/**
* mlme_set_mbssid_info() - save mbssid info
* @vdev: vdev pointer
* @mbssid_info: mbssid info
*
* Return: QDF_STATUS
*/
QDF_STATUS
mlme_set_mbssid_info(struct wlan_objmgr_vdev *vdev,
struct scan_mbssid_info *mbssid_info);
/**
* mlme_get_mbssid_info() - get mbssid info
* @vdev: vdev pointer
* @mbss_11ax: mbss 11ax info
*
* Return: None
*/
void mlme_get_mbssid_info(struct wlan_objmgr_vdev *vdev,
struct vdev_mlme_mbss_11ax *mbss_11ax);
/** /**
* mlme_is_vdev_in_beaconning_mode() - check if vdev is beaconing mode * mlme_is_vdev_in_beaconning_mode() - check if vdev is beaconing mode
* @vdev_opmode: vdev opmode * @vdev_opmode: vdev opmode

查看文件

@@ -752,6 +752,41 @@ bool mlme_get_cac_required(struct wlan_objmgr_vdev *vdev)
return mlme_priv->cac_required_for_new_channel; return mlme_priv->cac_required_for_new_channel;
} }
QDF_STATUS mlme_set_mbssid_info(struct wlan_objmgr_vdev *vdev,
struct scan_mbssid_info *mbssid_info)
{
struct vdev_mlme_obj *vdev_mlme;
struct vdev_mlme_mbss_11ax *mbss_11ax;
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
if (!vdev_mlme) {
mlme_legacy_err("vdev component object is NULL");
return QDF_STATUS_E_FAILURE;
}
mbss_11ax = &vdev_mlme->mgmt.mbss_11ax;
mbss_11ax->profile_idx = mbssid_info->profile_num;
mbss_11ax->profile_num = mbssid_info->profile_count;
qdf_mem_copy(mbss_11ax->trans_bssid,
mbssid_info->trans_bssid, QDF_MAC_ADDR_SIZE);
return QDF_STATUS_SUCCESS;
}
void mlme_get_mbssid_info(struct wlan_objmgr_vdev *vdev,
struct vdev_mlme_mbss_11ax *mbss_11ax)
{
struct vdev_mlme_obj *vdev_mlme;
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
if (!vdev_mlme) {
mlme_legacy_err("vdev component object is NULL");
return;
}
mbss_11ax = &vdev_mlme->mgmt.mbss_11ax;
}
/** /**
* vdevmgr_mlme_ext_hdl_create () - Create mlme legacy priv object * vdevmgr_mlme_ext_hdl_create () - Create mlme legacy priv object
* @vdev_mlme: vdev mlme object * @vdev_mlme: vdev mlme object