qcacmn: Fix the use of the incorrect rx pkt tlv length
Currently the monitor mode processing assumes the rx pkt tlv to be consisting of RX_PACKET_HEADER tlv. This assumption is incorrect in case of sta+monitor mode, where the RX_PACKET_HDR tlv has not been subscribed. Due to the above incorrect assumption, a certain portion of the actual payload is being discarded, when the rx_pkt_hdr tlvs are stripped off from the received buffer. To mitigate this issue, use the rx_pkt_tlv length based on the tlvs which are enabled, and configured to the rxdma for reception. Change-Id: I8f29db85bbd50316e3c2073ae9a2e79fd724be05 CRs-Fixed: 3318038
Cette révision appartient à :

révisé par
Madan Koyyalamudi

Parent
31f0994955
révision
6271fe1a98
@@ -15362,8 +15362,12 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
|
||||
dp_soc_set_interrupt_mode(soc);
|
||||
if (soc->cdp_soc.ol_ops->get_con_mode &&
|
||||
soc->cdp_soc.ol_ops->get_con_mode() ==
|
||||
QDF_GLOBAL_MONITOR_MODE)
|
||||
QDF_GLOBAL_MONITOR_MODE) {
|
||||
is_monitor_mode = true;
|
||||
soc->curr_rx_pkt_tlv_size = soc->rx_mon_pkt_tlv_size;
|
||||
} else {
|
||||
soc->curr_rx_pkt_tlv_size = soc->rx_pkt_tlv_size;
|
||||
}
|
||||
|
||||
num_dp_msi = dp_get_num_msi_available(soc, soc->intr_mode);
|
||||
if (num_dp_msi < 0) {
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur