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
Bu işleme şunda yer alıyor:
Rakesh Pillai
2019-10-24 06:44:11 +05:30
işlemeyi yapan: nshrivas
ebeveyn b3518aff5c
işleme 534a143d8f
7 değiştirilmiş dosya ile 123 ekleme ve 1 silme

Dosyayı Görüntüle

@@ -671,6 +671,14 @@ typedef bool (*ol_txrx_tx_flow_control_is_pause_fp)(void *osif_dev);
*/
typedef QDF_STATUS(*ol_txrx_rx_fp)(void *osif_dev, qdf_nbuf_t msdu_list);
/**
* ol_txrx_rx_flush_fp - receive function to hand batches of data
* frames from txrx to OS shim
* @osif_dev: handle to the OSIF virtual device object
* @vdev_id: vdev_if of the packets to be flushed
*/
typedef QDF_STATUS(*ol_txrx_rx_flush_fp)(void *osif_dev, uint8_t vdev_id);
/**
* ol_txrx_rx_gro_flush_ind - function to send GRO flush indication to stack
* for a given RX Context Id.
@@ -832,6 +840,7 @@ struct ol_txrx_ops {
struct {
ol_txrx_rx_fp rx;
ol_txrx_rx_fp rx_stack;
ol_txrx_rx_flush_fp rx_flush;
ol_txrx_rx_gro_flush_ind_fp rx_gro_flush;
ol_txrx_rx_check_wai_fp wai_check;
ol_txrx_rx_mon_fp mon;