qcacmn: Replace wlan_cm_roam_resp struct with wlan_cm_connect_resp
Structure wlan_cm_roam_resp and wlan_cm_connect_resp are identical structures and in current code these structures are used for connect and reassoc functionalities with different functions as these are identical structures and only one structure can be used to reduce the duplication of the code. To address this code duplication issue replace wlan_cm_roam_resp structure with wlan_cm_connect_resp. Change-Id: I90949c25f46acd2fa78cebb70c9a04f0718b90c4 CRs-Fixed: 2875232
This commit is contained in:

committed by
snandini

parent
6c6f067b65
commit
ad9b0c99d0
@@ -183,22 +183,6 @@ typedef QDF_STATUS (*osif_cm_set_hlp_data_cb)(struct net_device *dev,
|
||||
struct wlan_cm_connect_resp *rsp);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* typedef osif_cm_reassoc_comp_cb - Reassoc complete callback
|
||||
* @vdev: vdev pointer
|
||||
* @rsp: Reassoc response
|
||||
* @type: indicates update type
|
||||
*
|
||||
* This callback indicates reassoc complete to the legacy module
|
||||
*
|
||||
* Context: Any context.
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
typedef QDF_STATUS
|
||||
(*osif_cm_reassoc_comp_cb)(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_roam_resp *rsp,
|
||||
enum osif_cb_type type);
|
||||
|
||||
/**
|
||||
* typedef osif_cm_disconnect_comp_cb: Disonnect complete callback
|
||||
* @vdev: vdev pointer
|
||||
@@ -261,19 +245,18 @@ void osif_cm_unlink_bss(struct wlan_objmgr_vdev *vdev,
|
||||
|
||||
/**
|
||||
* osif_cm_ops: connection manager legacy callbacks
|
||||
* osif_cm_connect_comp_cb: callback for connect complete to legacy
|
||||
* @osif_cm_connect_comp_cb: callback for connect complete to legacy
|
||||
* modules
|
||||
* osif_cm_disconnect_comp_cb: callback for disconnect complete to
|
||||
* @osif_cm_disconnect_comp_cb: callback for disconnect complete to
|
||||
* legacy modules
|
||||
* osif_cm_reassoc_comp_cb: callback for reassoc complete to legacy
|
||||
* modules
|
||||
* osif_cm_netif_queue_ctrl_cb: callback to legacy module to take
|
||||
* @osif_cm_netif_queue_ctrl_cb: callback to legacy module to take
|
||||
* actions on netif queue
|
||||
* @save_gtk_cb : callback to legacy module to save gtk
|
||||
* @set_hlp_data_cb: callback to legacy module to save hlp data
|
||||
*/
|
||||
struct osif_cm_ops {
|
||||
osif_cm_connect_comp_cb connect_complete_cb;
|
||||
osif_cm_disconnect_comp_cb disconnect_complete_cb;
|
||||
osif_cm_reassoc_comp_cb reassoc_complete_cb;
|
||||
#ifdef CONN_MGR_ADV_FEATURE
|
||||
osif_cm_netif_queue_ctrl_cb netif_queue_control_cb;
|
||||
#endif
|
||||
@@ -299,22 +282,6 @@ QDF_STATUS osif_cm_connect_comp_ind(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_resp *rsp,
|
||||
enum osif_cb_type type);
|
||||
|
||||
/**
|
||||
* osif_cm_reassoc_comp_ind() - Function to indicate reassoc
|
||||
* complete to legacy module
|
||||
* @vdev: vdev pointer
|
||||
* @rsp: Roam response
|
||||
* @type: indicates update type
|
||||
*
|
||||
* This function indicates connect complete to the legacy module
|
||||
*
|
||||
* Context: Any context.
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS osif_cm_reassoc_comp_ind(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_roam_resp *rsp,
|
||||
enum osif_cb_type type);
|
||||
|
||||
/**
|
||||
* osif_cm_disconnect_comp_ind() - Function to indicate disconnect
|
||||
* complete to legacy module
|
||||
|
@@ -30,18 +30,9 @@
|
||||
#include "wlan_cfg80211_scan.h"
|
||||
|
||||
#ifdef CONN_MGR_ADV_FEATURE
|
||||
/**
|
||||
* osif_cm_get_assoc_req_ie_data() - Get the assoc req IE offset and length
|
||||
* if valid assoc req is present
|
||||
* @assoc_req: assoc req info
|
||||
* @ie_data_len: IE date length to be calculated
|
||||
* @ie_data_ptr: IE data pointer to be calculated
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void osif_cm_get_assoc_req_ie_data(struct element_info *assoc_req,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr)
|
||||
void osif_cm_get_assoc_req_ie_data(struct element_info *assoc_req,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr)
|
||||
{
|
||||
/* Validate IE and length */
|
||||
if (!assoc_req->len || !assoc_req->ptr ||
|
||||
@@ -52,18 +43,9 @@ static void osif_cm_get_assoc_req_ie_data(struct element_info *assoc_req,
|
||||
*ie_data_ptr = assoc_req->ptr + WLAN_ASSOC_REQ_IES_OFFSET;
|
||||
}
|
||||
|
||||
/**
|
||||
* osif_cm_get_assoc_rsp_ie_data() - Get the assoc resp IE offset and length
|
||||
* if valid assoc req is present
|
||||
* @assoc_req: assoc req info
|
||||
* @ie_data_len: IE date length to be calculated
|
||||
* @ie_data_ptr: IE data pointer to be calculated
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void osif_cm_get_assoc_rsp_ie_data(struct element_info *assoc_rsp,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr)
|
||||
void osif_cm_get_assoc_rsp_ie_data(struct element_info *assoc_rsp,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr)
|
||||
{
|
||||
/* Validate IE and length */
|
||||
if (!assoc_rsp->len || !assoc_rsp->ptr ||
|
||||
@@ -76,17 +58,17 @@ static void osif_cm_get_assoc_rsp_ie_data(struct element_info *assoc_rsp,
|
||||
|
||||
#else
|
||||
|
||||
static void osif_cm_get_assoc_req_ie_data(struct element_info *assoc_req,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr)
|
||||
void osif_cm_get_assoc_req_ie_data(struct element_info *assoc_req,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr)
|
||||
{
|
||||
*ie_data_len = assoc_req->len;
|
||||
*ie_data_ptr = assoc_req->ptr;
|
||||
}
|
||||
|
||||
static void osif_cm_get_assoc_rsp_ie_data(struct element_info *assoc_rsp,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr)
|
||||
void osif_cm_get_assoc_rsp_ie_data(struct element_info *assoc_rsp,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr)
|
||||
{
|
||||
*ie_data_len = assoc_rsp->len;
|
||||
*ie_data_ptr = assoc_rsp->ptr;
|
||||
@@ -111,20 +93,21 @@ osif_validate_connect_and_reset_src_id(struct vdev_osif_priv *osif_priv,
|
||||
struct wlan_cm_connect_resp *rsp)
|
||||
{
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
/*
|
||||
* Send to kernel only if last osif cookie match and
|
||||
* source is CM_OSIF_CONNECT or CM_OSIF_CFG_CONNECT with failure
|
||||
* else drop. If cookie match reset the cookie and source.
|
||||
* Do not send to kernel if last osif cookie doesnt match or
|
||||
* or source is CM_OSIF_CFG_CONNECT with success status.
|
||||
* If cookie matches reset the cookie and source.
|
||||
*/
|
||||
qdf_spinlock_acquire(&osif_priv->cm_info.cmd_id_lock);
|
||||
if (rsp->cm_id != osif_priv->cm_info.last_id ||
|
||||
(osif_priv->cm_info.last_source != CM_OSIF_CONNECT &&
|
||||
!(osif_priv->cm_info.last_source == CM_OSIF_CFG_CONNECT &&
|
||||
QDF_IS_STATUS_ERROR(rsp->connect_status)))) {
|
||||
osif_debug("Ignore as cm_id(0x%x)/src(%d) didn't match stored cm_id(0x%x)/src(%d)",
|
||||
(osif_priv->cm_info.last_source == CM_OSIF_CFG_CONNECT &&
|
||||
QDF_IS_STATUS_SUCCESS(rsp->connect_status))) {
|
||||
osif_debug("Ignore as cm_id(0x%x)/src(%d) != cm_id(0x%x)/src(%d) OR source is CFG connect with status %d",
|
||||
rsp->cm_id, CM_OSIF_CONNECT,
|
||||
osif_priv->cm_info.last_id,
|
||||
osif_priv->cm_info.last_source);
|
||||
osif_priv->cm_info.last_source,
|
||||
rsp->connect_status);
|
||||
status = QDF_STATUS_E_INVAL;
|
||||
goto rel_lock;
|
||||
}
|
||||
@@ -567,13 +550,13 @@ QDF_STATUS osif_connect_handler(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_osif_priv *osif_priv = wlan_vdev_get_ospriv(vdev);
|
||||
QDF_STATUS status;
|
||||
|
||||
osif_nofl_info("%s(vdevid-%d): " QDF_MAC_ADDR_FMT " Connect with " QDF_MAC_ADDR_FMT " SSID \"%.*s\" is %s cm_id 0x%x cm_reason %d status_code %d",
|
||||
osif_nofl_info("%s(vdevid-%d): " QDF_MAC_ADDR_FMT " Connect with " QDF_MAC_ADDR_FMT " SSID \"%.*s\" is %s cm_id 0x%x cm_reason %d status_code %d is_reassoc %d",
|
||||
osif_priv->wdev->netdev->name, rsp->vdev_id,
|
||||
QDF_MAC_ADDR_REF(wlan_vdev_mlme_get_macaddr(vdev)),
|
||||
QDF_MAC_ADDR_REF(rsp->bssid.bytes),
|
||||
rsp->ssid.length, rsp->ssid.ssid,
|
||||
rsp->connect_status ? "FAILURE" : "SUCCESS", rsp->cm_id,
|
||||
rsp->reason, rsp->status_code);
|
||||
rsp->reason, rsp->status_code, rsp->is_reassoc);
|
||||
|
||||
osif_check_and_unlink_bss(vdev, osif_priv, rsp);
|
||||
|
||||
@@ -584,7 +567,10 @@ QDF_STATUS osif_connect_handler(struct wlan_objmgr_vdev *vdev,
|
||||
}
|
||||
|
||||
osif_cm_connect_comp_ind(vdev, rsp, OSIF_PRE_USERSPACE_UPDATE);
|
||||
osif_indcate_connect_results(vdev, osif_priv, rsp);
|
||||
if (rsp->is_reassoc)
|
||||
osif_indicate_reassoc_results(vdev, osif_priv, rsp);
|
||||
else
|
||||
osif_indcate_connect_results(vdev, osif_priv, rsp);
|
||||
osif_cm_connect_comp_ind(vdev, rsp, OSIF_POST_USERSPACE_UPDATE);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
@@ -29,67 +29,94 @@
|
||||
#include <wlan_cfg80211.h>
|
||||
#include <wlan_cfg80211_scan.h>
|
||||
|
||||
static QDF_STATUS
|
||||
osif_validate_reassoc_and_reset_src_id(struct vdev_osif_priv *osif_priv,
|
||||
wlan_cm_id cm_id)
|
||||
{
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
qdf_spinlock_acquire(&osif_priv->cm_info.cmd_id_lock);
|
||||
if (cm_id != osif_priv->cm_info.last_id) {
|
||||
osif_debug("Ignore as cm_id(%d) didn't match stored cm_id(%d)",
|
||||
cm_id, osif_priv->cm_info.last_id);
|
||||
status = QDF_STATUS_E_INVAL;
|
||||
goto rel_lock;
|
||||
}
|
||||
osif_cm_reset_id_and_src_no_lock(osif_priv);
|
||||
|
||||
rel_lock:
|
||||
qdf_spinlock_release(&osif_priv->cm_info.cmd_id_lock);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
#ifdef CONN_MGR_ADV_FEATURE
|
||||
static void osif_indicate_reassoc_results(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_osif_priv *osif_priv,
|
||||
struct wlan_cm_roam_resp *rsp)
|
||||
#ifdef WLAN_FEATURE_FILS_SK
|
||||
static inline void osif_update_fils_hlp_data(struct net_device *dev,
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_resp *rsp)
|
||||
{
|
||||
/*
|
||||
* To notify kernel on connection completion
|
||||
*/
|
||||
if (rsp->connect_ies.fils_ie && rsp->connect_ies.fils_ie->hlp_data_len)
|
||||
osif_cm_set_hlp_data(dev, vdev, rsp);
|
||||
}
|
||||
#else
|
||||
static void osif_indicate_reassoc_results(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_osif_priv *osif_priv,
|
||||
struct wlan_cm_roam_resp *rsp)
|
||||
{}
|
||||
static inline void osif_update_fils_hlp_data(struct net_device *dev,
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_resp *rsp)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS osif_reassoc_handler(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_roam_resp *rsp)
|
||||
/**
|
||||
* osif_roamed_ind() - send roamed indication to cfg80211
|
||||
* @dev: network device
|
||||
* @bss: cfg80211 roamed bss pointer
|
||||
* @req_ie: IEs used in reassociation request
|
||||
* @req_ie_len: Length of the @req_ie
|
||||
* @resp_ie: IEs received in successful reassociation response
|
||||
* @resp_ie_len: Length of @resp_ie
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
#if defined CFG80211_ROAMED_API_UNIFIED || \
|
||||
(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0))
|
||||
static void osif_roamed_ind(struct net_device *dev, struct cfg80211_bss *bss,
|
||||
const uint8_t *req_ie,
|
||||
size_t req_ie_len, const uint8_t *resp_ie,
|
||||
size_t resp_ie_len)
|
||||
{
|
||||
struct vdev_osif_priv *osif_priv = wlan_vdev_get_ospriv(vdev);
|
||||
QDF_STATUS status;
|
||||
enum wlan_cm_source source;
|
||||
struct cfg80211_roam_info info = {0};
|
||||
|
||||
osif_nofl_info("%s(vdevid-%d): " QDF_MAC_ADDR_FMT " Roam with " QDF_MAC_ADDR_FMT " SSID \"%.*s\" is %s cm_id %d cm_reason %d status_code %d",
|
||||
osif_priv->wdev->netdev->name, rsp->vdev_id,
|
||||
QDF_MAC_ADDR_REF(wlan_vdev_mlme_get_macaddr(vdev)),
|
||||
QDF_MAC_ADDR_REF(rsp->bssid.bytes),
|
||||
rsp->ssid.length, rsp->ssid.ssid,
|
||||
rsp->reassoc_status ? "FAILURE" : "SUCCESS", rsp->cm_id,
|
||||
rsp->reason, rsp->status_code);
|
||||
source = osif_priv->cm_info.last_source;
|
||||
status = osif_validate_reassoc_and_reset_src_id(osif_priv, rsp->cm_id);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
osif_cm_reassoc_comp_ind(vdev, rsp, OSIF_NOT_HANDLED);
|
||||
return status;
|
||||
}
|
||||
|
||||
osif_cm_reassoc_comp_ind(vdev, rsp, OSIF_PRE_USERSPACE_UPDATE);
|
||||
osif_indicate_reassoc_results(vdev, osif_priv, rsp);
|
||||
osif_cm_reassoc_comp_ind(vdev, rsp, OSIF_POST_USERSPACE_UPDATE);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
info.bss = bss;
|
||||
info.req_ie = req_ie;
|
||||
info.req_ie_len = req_ie_len;
|
||||
info.resp_ie = resp_ie;
|
||||
info.resp_ie_len = resp_ie_len;
|
||||
cfg80211_roamed(dev, &info, GFP_KERNEL);
|
||||
}
|
||||
#else
|
||||
static inline void osif_roamed_ind(struct net_device *dev,
|
||||
struct cfg80211_bss *bss,
|
||||
const uint8_t *req_ie, size_t req_ie_len,
|
||||
const uint8_t *resp_ie,
|
||||
size_t resp_ie_len)
|
||||
{
|
||||
cfg80211_roamed_bss(dev, bss, req_ie, req_ie_len, resp_ie, resp_ie_len,
|
||||
GFP_KERNEL);
|
||||
}
|
||||
#endif
|
||||
|
||||
void osif_indicate_reassoc_results(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_osif_priv *osif_priv,
|
||||
struct wlan_cm_connect_resp *rsp)
|
||||
{
|
||||
struct net_device *dev = osif_priv->wdev->netdev;
|
||||
size_t req_len = 0;
|
||||
const uint8_t *req_ie = NULL;
|
||||
size_t rsp_len = 0;
|
||||
const uint8_t *rsp_ie = NULL;
|
||||
struct cfg80211_bss *bss;
|
||||
struct ieee80211_channel *chan;
|
||||
|
||||
if (QDF_IS_STATUS_ERROR(rsp->connect_status))
|
||||
return;
|
||||
|
||||
chan = ieee80211_get_channel(osif_priv->wdev->wiphy,
|
||||
rsp->freq);
|
||||
bss = wlan_cfg80211_get_bss(osif_priv->wdev->wiphy, chan,
|
||||
rsp->bssid.bytes, rsp->ssid.ssid,
|
||||
rsp->ssid.length);
|
||||
if (!bss)
|
||||
osif_warn("not able to find bss");
|
||||
osif_cm_get_assoc_req_ie_data(&rsp->connect_ies.assoc_req,
|
||||
&req_len, &req_ie);
|
||||
osif_cm_get_assoc_rsp_ie_data(&rsp->connect_ies.assoc_rsp,
|
||||
&rsp_len, &rsp_ie);
|
||||
osif_roamed_ind(dev, bss, req_ie, req_len, rsp_ie, rsp_len);
|
||||
|
||||
osif_cm_save_gtk(vdev, rsp);
|
||||
|
||||
/* Add osif_send_roam_auth_event (wlan_hdd_send_roam_auth_event) */
|
||||
|
||||
osif_update_fils_hlp_data(dev, vdev, rsp);
|
||||
}
|
||||
#endif
|
||||
|
@@ -43,6 +43,32 @@
|
||||
QDF_STATUS osif_disconnect_handler(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *rsp);
|
||||
|
||||
/**
|
||||
* osif_cm_get_assoc_req_ie_data() - Get the assoc req IE offset and length
|
||||
* if valid assoc req is present
|
||||
* @assoc_req: assoc req info
|
||||
* @ie_data_len: IE date length to be calculated
|
||||
* @ie_data_ptr: IE data pointer to be calculated
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void osif_cm_get_assoc_req_ie_data(struct element_info *assoc_req,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr);
|
||||
|
||||
/**
|
||||
* osif_cm_get_assoc_rsp_ie_data() - Get the assoc resp IE offset and length
|
||||
* if valid assoc req is present
|
||||
* @assoc_req: assoc req info
|
||||
* @ie_data_len: IE date length to be calculated
|
||||
* @ie_data_ptr: IE data pointer to be calculated
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void osif_cm_get_assoc_rsp_ie_data(struct element_info *assoc_rsp,
|
||||
size_t *ie_data_len,
|
||||
const uint8_t **ie_data_ptr);
|
||||
|
||||
/**
|
||||
* osif_connect_handler() - API to send connect response to kernel
|
||||
* @vdev: vdev pointer
|
||||
@@ -56,18 +82,28 @@ QDF_STATUS osif_disconnect_handler(struct wlan_objmgr_vdev *vdev,
|
||||
QDF_STATUS osif_connect_handler(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_resp *rsp);
|
||||
|
||||
#ifdef CONN_MGR_ADV_FEATURE
|
||||
/**
|
||||
* osif_reassoc_handler() - API to send reassoc response to kernel
|
||||
* osif_indicate_reassoc_results() - API to send reassoc response to kernel
|
||||
* @vdev: vdev pointer
|
||||
* @rsp: Connection manager reassoc response
|
||||
* @osif_priv: OS private structure of vdev
|
||||
* @rsp: Connection manager response
|
||||
*
|
||||
* The API is used to send reassoc response to kernel
|
||||
*
|
||||
* Context: Any context.
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS osif_reassoc_handler(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_roam_resp *rsp);
|
||||
void osif_indicate_reassoc_results(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_osif_priv *osif_priv,
|
||||
struct wlan_cm_connect_resp *rsp);
|
||||
#else
|
||||
static inline void
|
||||
osif_indicate_reassoc_results(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_osif_priv *osif_priv,
|
||||
struct wlan_cm_connect_resp *rsp)
|
||||
{}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* osif_failed_candidate_handler() - API to indicate individual candidate
|
||||
|
@@ -198,20 +198,6 @@ osif_cm_connect_complete_cb(struct wlan_objmgr_vdev *vdev,
|
||||
return osif_connect_handler(vdev, rsp);
|
||||
}
|
||||
|
||||
/**
|
||||
* osif_cm_reassoc_complete_cb() - Reassoc complete callback
|
||||
* @vdev: vdev pointer
|
||||
* @rsp: Reassoc response
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static QDF_STATUS
|
||||
osif_cm_reassoc_complete_cb(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_roam_resp *rsp)
|
||||
{
|
||||
return osif_reassoc_handler(vdev, rsp);
|
||||
}
|
||||
|
||||
/**
|
||||
* osif_cm_failed_candidate_cb() - Callback to indicate failed candidate
|
||||
* @vdev: vdev pointer
|
||||
@@ -332,7 +318,6 @@ static struct mlme_cm_ops cm_ops = {
|
||||
.mlme_cm_update_id_and_src_cb = osif_cm_update_id_and_src_cb,
|
||||
.mlme_cm_disconnect_complete_cb = osif_cm_disconnect_complete_cb,
|
||||
.mlme_cm_disconnect_start_cb = osif_cm_disconnect_start_cb,
|
||||
.mlme_cm_reassoc_complete_cb = osif_cm_reassoc_complete_cb,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -402,21 +387,6 @@ QDF_STATUS osif_cm_connect_comp_ind(struct wlan_objmgr_vdev *vdev,
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS osif_cm_reassoc_comp_ind(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_roam_resp *rsp,
|
||||
enum osif_cb_type type)
|
||||
{
|
||||
osif_cm_reassoc_comp_cb cb = NULL;
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if (osif_cm_legacy_ops)
|
||||
cb = osif_cm_legacy_ops->reassoc_complete_cb;
|
||||
if (cb)
|
||||
ret = cb(vdev, rsp, type);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS osif_cm_disconnect_comp_ind(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *rsp,
|
||||
enum osif_cb_type type)
|
||||
|
Reference in New Issue
Block a user