qcacmn: Add support to flush rx packets for a vdev
When a particular vdev is deleted, the corresponding rx packets which have been queued to the rx thread are not flushed. Hence when such packets are submitted to the network stack, the dev for this skb will be invalid, since we have already freed the adapter. Flush out the packets in the rx thread queues, before deleting the vdev. CRs-Fixed: 2543392 Change-Id: I2490d0f5ce965f62152613a17a59232521ca058f
Este cometimento está contido em:

cometido por
nshrivas

ascendente
b3518aff5c
cometimento
534a143d8f
@@ -4869,6 +4869,7 @@ static void dp_vdev_register_wifi3(struct cdp_vdev *vdev_handle,
|
||||
vdev->ctrl_vdev = ctrl_vdev;
|
||||
vdev->osif_rx = txrx_ops->rx.rx;
|
||||
vdev->osif_rx_stack = txrx_ops->rx.rx_stack;
|
||||
vdev->osif_rx_flush = txrx_ops->rx.rx_flush;
|
||||
vdev->osif_gro_flush = txrx_ops->rx.rx_gro_flush;
|
||||
vdev->osif_rsim_rx_decap = txrx_ops->rx.rsim_rx_decap;
|
||||
vdev->osif_get_key = txrx_ops->get_key;
|
||||
@@ -5085,6 +5086,7 @@ static void dp_vdev_detach_wifi3(struct cdp_vdev *vdev_handle,
|
||||
|
||||
qdf_spin_lock_bh(&pdev->vdev_list_lock);
|
||||
dp_tx_vdev_detach(vdev);
|
||||
dp_rx_vdev_detach(vdev);
|
||||
/* remove the vdev from its parent pdev's list */
|
||||
TAILQ_REMOVE(&pdev->vdev_list, vdev, vdev_list_elem);
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador