qcacmn: Check for tx desc leak or corruption
Tx descriptor is not being freed and put back in tx desc pool for a long time. As a result, system is not going into suspended state. To find this descriptor, during dp_bus_suspend and dp_runtime_suspend, parse through the descriptor pool to check for any descriptors not freed for a long and trigger self recovery when found. Change-Id: Id97c5c8537c9bec922f4e254b5bf094505ee61ff CRs-Fixed: 3109868
This commit is contained in:

committed by
Madan Koyyalamudi

parent
d3e9c9ca97
commit
940984c6a6
@@ -942,4 +942,40 @@ bool dp_tx_pkt_tracepoints_enabled(void)
|
||||
qdf_trace_dp_tx_comp_udp_pkt_enabled() ||
|
||||
qdf_trace_dp_tx_comp_pkt_enabled());
|
||||
}
|
||||
|
||||
#ifdef DP_TX_TRACKING
|
||||
/**
|
||||
* dp_tx_desc_set_timestamp() - set timestamp in tx descriptor
|
||||
* @tx_desc - tx descriptor
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline
|
||||
void dp_tx_desc_set_timestamp(struct dp_tx_desc_s *tx_desc)
|
||||
{
|
||||
tx_desc->timestamp = qdf_system_ticks();
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_tx_desc_check_corruption() - Verify magic pattern in tx descriptor
|
||||
* @tx_desc: tx descriptor
|
||||
*
|
||||
* Check for corruption in tx descriptor, if magic pattern is not matching
|
||||
* trigger self recovery
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void dp_tx_desc_check_corruption(struct dp_tx_desc_s *tx_desc);
|
||||
#else
|
||||
static inline
|
||||
void dp_tx_desc_set_timestamp(struct dp_tx_desc_s *tx_desc)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
void dp_tx_desc_check_corruption(struct dp_tx_desc_s *tx_desc)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user