mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
qcacld-3.0: Fix race condition between tx traffic and peer deletion
A race condition has been observed between outgoing TX traffic and peer deletion when DUT has concurrent SAP(DBS) and STA sessions in 5G and 2G respectively and the peer connected to SAP moves away triggering peer deletion at DUT. Due to peer being deleted, the vdev corresponding to the peer is void which results in a crash in ol_tx_data function while trying to send Tx data. Fix crash by checking for a null vdev in ol_tx_data. CRs-Fixed: 1012681 Change-Id: Id0aab4b1f03ed24dfb55e09fa1a115edfdfcce84
This commit is contained in:
parent
fbaefe270f
commit
043efbd6ae
1 changed files with 9 additions and 1 deletions
|
|
@ -142,10 +142,18 @@ static inline uint8_t ol_tx_prepare_tso(ol_txrx_vdev_handle vdev,
|
|||
qdf_nbuf_t ol_tx_data(ol_txrx_vdev_handle vdev, qdf_nbuf_t skb)
|
||||
{
|
||||
void *qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
struct ol_txrx_pdev_t *pdev;
|
||||
qdf_nbuf_t ret;
|
||||
QDF_STATUS status;
|
||||
|
||||
if (qdf_unlikely(!vdev)) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_WARN,
|
||||
"%s:vdev is null", __func__);
|
||||
return skb;
|
||||
} else {
|
||||
pdev = vdev->pdev;
|
||||
}
|
||||
|
||||
if (qdf_unlikely(!pdev)) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_WARN,
|
||||
"%s:pdev is null", __func__);
|
||||
|
|
|
|||
Loading…
Reference in a new issue