qcacld-3.0: Modified osif Mic error handler support
Combined dp process mic error support for both SAP and STA interfaces into one API for DP component Change-Id: Ic78675d4bfdd5b5cc995505bcbf9862711c5ba24 CRs-Fixed: 3226471
This commit is contained in:

committed by
Madan Koyyalamudi

parent
b14d9ab822
commit
1986ba636a
@@ -20,6 +20,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "wlan_dp_main.h"
|
#include "wlan_dp_main.h"
|
||||||
#include "wlan_dp_public_struct.h"
|
#include "wlan_dp_public_struct.h"
|
||||||
#include "cfg_ucfg_api.h"
|
#include "cfg_ucfg_api.h"
|
||||||
@@ -648,11 +649,11 @@ __dp_process_mic_error(struct wlan_dp_intf *dp_intf)
|
|||||||
if ((dp_intf->device_mode == QDF_STA_MODE ||
|
if ((dp_intf->device_mode == QDF_STA_MODE ||
|
||||||
dp_intf->device_mode == QDF_P2P_CLIENT_MODE) &&
|
dp_intf->device_mode == QDF_P2P_CLIENT_MODE) &&
|
||||||
ucfg_cm_is_vdev_active(vdev))
|
ucfg_cm_is_vdev_active(vdev))
|
||||||
ops->osif_dp_process_sta_mic_error(dp_intf->mic_work.info,
|
ops->osif_dp_process_mic_error(dp_intf->mic_work.info,
|
||||||
vdev);
|
vdev);
|
||||||
else if (dp_intf->device_mode == QDF_SAP_MODE ||
|
else if (dp_intf->device_mode == QDF_SAP_MODE ||
|
||||||
dp_intf->device_mode == QDF_P2P_GO_MODE)
|
dp_intf->device_mode == QDF_P2P_GO_MODE)
|
||||||
ops->osif_dp_process_sap_mic_error(dp_intf->mic_work.info,
|
ops->osif_dp_process_mic_error(dp_intf->mic_work.info,
|
||||||
vdev);
|
vdev);
|
||||||
else
|
else
|
||||||
dp_err("Invalid interface type:%d", dp_intf->device_mode);
|
dp_err("Invalid interface type:%d", dp_intf->device_mode);
|
||||||
|
@@ -582,8 +582,7 @@ union wlan_tp_data {
|
|||||||
* @dp_napi_apply_throughput_policy:Callback to apply NAPI throughput policy
|
* @dp_napi_apply_throughput_policy:Callback to apply NAPI throughput policy
|
||||||
* @wlan_dp_display_tx_multiq_stats: Callback to display Tx Mulit queue stats
|
* @wlan_dp_display_tx_multiq_stats: Callback to display Tx Mulit queue stats
|
||||||
* @wlan_dp_display_netif_queue_history: Callback to display Netif queue history
|
* @wlan_dp_display_netif_queue_history: Callback to display Netif queue history
|
||||||
* @osif_dp_process_sta_mic_error: osif callback to process STA MIC error
|
* @osif_dp_process_mic_error: osif callback to process MIC error
|
||||||
* @osif_dp_process_sap_mic_error: osif callback to process SAP MIC error
|
|
||||||
* @dp_is_link_adapter: Callback API to check if adapter is link adapter
|
* @dp_is_link_adapter: Callback API to check if adapter is link adapter
|
||||||
* @os_if_dp_nud_stats_info: osif callback to print nud stats info
|
* @os_if_dp_nud_stats_info: osif callback to print nud stats info
|
||||||
* @dp_get_pause_map: Callback API to get pause map count
|
* @dp_get_pause_map: Callback API to get pause map count
|
||||||
@@ -662,9 +661,7 @@ struct wlan_dp_psoc_callbacks {
|
|||||||
uint8_t vdev_id);
|
uint8_t vdev_id);
|
||||||
void (*wlan_dp_display_netif_queue_history)(hdd_cb_handle context,
|
void (*wlan_dp_display_netif_queue_history)(hdd_cb_handle context,
|
||||||
enum qdf_stats_verbosity_level verb_lvl);
|
enum qdf_stats_verbosity_level verb_lvl);
|
||||||
void (*osif_dp_process_sta_mic_error)(struct dp_mic_error_info *info,
|
void (*osif_dp_process_mic_error)(struct dp_mic_error_info *info,
|
||||||
struct wlan_objmgr_vdev *vdev);
|
|
||||||
void (*osif_dp_process_sap_mic_error)(struct dp_mic_error_info *info,
|
|
||||||
struct wlan_objmgr_vdev *vdev);
|
struct wlan_objmgr_vdev *vdev);
|
||||||
bool (*dp_is_link_adapter)(hdd_cb_handle context, uint8_t vdev_id);
|
bool (*dp_is_link_adapter)(hdd_cb_handle context, uint8_t vdev_id);
|
||||||
void (*os_if_dp_nud_stats_info)(struct wlan_objmgr_vdev *vdev);
|
void (*os_if_dp_nud_stats_info)(struct wlan_objmgr_vdev *vdev);
|
||||||
|
@@ -1916,11 +1916,9 @@ void ucfg_dp_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
|
|||||||
cb_obj->osif_dp_send_tcp_param_update_event;
|
cb_obj->osif_dp_send_tcp_param_update_event;
|
||||||
dp_ctx->dp_ops.os_if_dp_nud_stats_info =
|
dp_ctx->dp_ops.os_if_dp_nud_stats_info =
|
||||||
cb_obj->os_if_dp_nud_stats_info;
|
cb_obj->os_if_dp_nud_stats_info;
|
||||||
dp_ctx->dp_ops.osif_dp_process_sta_mic_error =
|
dp_ctx->dp_ops.osif_dp_process_mic_error =
|
||||||
cb_obj->osif_dp_process_sta_mic_error;
|
cb_obj->osif_dp_process_mic_error;
|
||||||
dp_ctx->dp_ops.osif_dp_process_sap_mic_error =
|
}
|
||||||
cb_obj->osif_dp_process_sap_mic_error;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ucfg_dp_register_event_handler(struct wlan_objmgr_psoc *psoc,
|
void ucfg_dp_register_event_handler(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_dp_psoc_nb_ops *cb_obj)
|
struct wlan_dp_psoc_nb_ops *cb_obj)
|
||||||
|
@@ -299,14 +299,14 @@ static int osif_dp_get_net_dev_from_vdev(struct wlan_objmgr_vdev *vdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* osif_dp_process_sta_mic_error() - Indicate STA mic error to supplicant
|
* osif_dp_process_mic_error() - Indicate mic error to supplicant
|
||||||
* @info: MIC error information
|
* @info: MIC error information
|
||||||
* @vdev: vdev handle
|
* @vdev: vdev handle
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
osif_dp_process_sta_mic_error(struct dp_mic_error_info *info,
|
osif_dp_process_mic_error(struct dp_mic_error_info *info,
|
||||||
struct wlan_objmgr_vdev *vdev)
|
struct wlan_objmgr_vdev *vdev)
|
||||||
{
|
{
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
@@ -332,39 +332,6 @@ osif_dp_process_sta_mic_error(struct dp_mic_error_info *info,
|
|||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* osif_dp_process_sap_mic_error() - Indicate SAP mic error to supplicant
|
|
||||||
* @info: MIC error information
|
|
||||||
* @vdev: vdev handle
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
osif_dp_process_sap_mic_error(struct dp_mic_error_info *info,
|
|
||||||
struct wlan_objmgr_vdev *vdev)
|
|
||||||
{
|
|
||||||
struct net_device *dev;
|
|
||||||
int errno;
|
|
||||||
struct osif_vdev_sync *vdev_sync;
|
|
||||||
|
|
||||||
errno = osif_dp_get_net_dev_from_vdev(vdev, &dev);
|
|
||||||
if (errno) {
|
|
||||||
dp_err("failed to get netdev");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (osif_vdev_sync_op_start(dev, &vdev_sync))
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* inform mic failure to nl80211 */
|
|
||||||
cfg80211_michael_mic_failure(dev,
|
|
||||||
(uint8_t *)&info->ta_mac_addr,
|
|
||||||
info->multicast ?
|
|
||||||
NL80211_KEYTYPE_GROUP :
|
|
||||||
NL80211_KEYTYPE_PAIRWISE,
|
|
||||||
info->key_id,
|
|
||||||
info->tsc,
|
|
||||||
GFP_KERNEL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* osif_dp_get_arp_stats_event_handler() - ARP get stats event handler
|
* osif_dp_get_arp_stats_event_handler() - ARP get stats event handler
|
||||||
@@ -1247,10 +1214,9 @@ void os_if_dp_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
|
|||||||
cb_obj->osif_dp_send_tcp_param_update_event =
|
cb_obj->osif_dp_send_tcp_param_update_event =
|
||||||
osif_dp_send_tcp_param_update_event;
|
osif_dp_send_tcp_param_update_event;
|
||||||
cb_obj->os_if_dp_nud_stats_info = os_if_dp_nud_stats_info;
|
cb_obj->os_if_dp_nud_stats_info = os_if_dp_nud_stats_info;
|
||||||
cb_obj->osif_dp_process_sta_mic_error = osif_dp_process_sta_mic_error;
|
cb_obj->osif_dp_process_mic_error = osif_dp_process_mic_error;
|
||||||
cb_obj->osif_dp_process_sap_mic_error = osif_dp_process_sap_mic_error;
|
|
||||||
os_if_dp_register_txrx_callbacks(cb_obj);
|
os_if_dp_register_txrx_callbacks(cb_obj);
|
||||||
|
|
||||||
ucfg_dp_register_hdd_callbacks(psoc, cb_obj);
|
ucfg_dp_register_hdd_callbacks(psoc, cb_obj);
|
||||||
os_if_dp_register_event_handler(psoc);
|
os_if_dp_register_event_handler(psoc);
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user