qcacmn: Detect if host sends out reorder queue remove cmd
We are suspecting that peer_rx_reorder_queue_remove_cmd is causing drop of ARP response frames from REO by the FW. This may cause drop of ping packets. Add a check in the function to detect if its being called. Change-Id: I368aa8155830e8e6fadccfaf9ab5bfbfc8bfdd35 CRs-Fixed: 2254858
This commit is contained in:
@@ -663,6 +663,21 @@ static QDF_STATUS convert_host_peer_id_to_target_id_tlv(
|
|||||||
*targ_paramid = peer_param_id;
|
*targ_paramid = peer_param_id;
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* crash_on_send_peer_rx_reorder_queue_remove_cmd() - crash on reorder queue cmd
|
||||||
|
*
|
||||||
|
* On MCL side, we are suspecting this cmd to trigger drop of ARP
|
||||||
|
* response frames from REO by the FW. This function causes a crash if this
|
||||||
|
* command is sent out by the host, so we can track this issue. Ideally no one
|
||||||
|
* should be calling this API from the MCL side
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
static void crash_on_send_peer_rx_reorder_queue_remove_cmd(void)
|
||||||
|
{
|
||||||
|
QDF_BUG(0);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
static QDF_STATUS convert_host_peer_id_to_target_id_tlv(
|
static QDF_STATUS convert_host_peer_id_to_target_id_tlv(
|
||||||
uint32_t *targ_paramid,
|
uint32_t *targ_paramid,
|
||||||
@@ -753,6 +768,12 @@ static QDF_STATUS convert_host_peer_id_to_target_id_tlv(
|
|||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void crash_on_send_peer_rx_reorder_queue_remove_cmd(void)
|
||||||
|
{
|
||||||
|
/* No-OP */
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
/**
|
/**
|
||||||
* send_peer_param_cmd_tlv() - set peer parameter in fw
|
* send_peer_param_cmd_tlv() - set peer parameter in fw
|
||||||
@@ -944,6 +965,8 @@ QDF_STATUS send_peer_rx_reorder_queue_remove_cmd_tlv(wmi_unified_t wmi,
|
|||||||
wmi_buf_t buf;
|
wmi_buf_t buf;
|
||||||
int32_t len = sizeof(*cmd);
|
int32_t len = sizeof(*cmd);
|
||||||
|
|
||||||
|
crash_on_send_peer_rx_reorder_queue_remove_cmd();
|
||||||
|
|
||||||
buf = wmi_buf_alloc(wmi, len);
|
buf = wmi_buf_alloc(wmi, len);
|
||||||
if (!buf) {
|
if (!buf) {
|
||||||
WMI_LOGP("%s: wmi_buf_alloc failed", __func__);
|
WMI_LOGP("%s: wmi_buf_alloc failed", __func__);
|
||||||
|
Reference in New Issue
Block a user