mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
qcacmn: Handle NULL objects properly
handle qdf_nbuf_unshare failure cases and NULL peer in pn_error handler properly. Change-Id: I9d271bed512a7e84a16d2b6c5b34f13235fc54e9 CRs-Fixed: 2221457
This commit is contained in:
parent
659fecb9fc
commit
bc62989ce4
2 changed files with 21 additions and 8 deletions
|
|
@ -191,6 +191,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
|
|||
|
||||
rxdma_ring_entry = hal_srng_src_get_next(dp_soc->hal_soc,
|
||||
rxdma_srng);
|
||||
qdf_assert_always(rxdma_ring_entry);
|
||||
|
||||
next = (*desc_list)->next;
|
||||
|
||||
|
|
@ -385,6 +386,18 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
|
|||
return false;
|
||||
|
||||
nbuf = qdf_nbuf_unshare(nbuf);
|
||||
if (!nbuf) {
|
||||
DP_STATS_INC_PKT(sa_peer,
|
||||
rx.intra_bss.fail,
|
||||
1,
|
||||
len);
|
||||
/* return true even though the pkt is
|
||||
* not forwarded. Basically skb_unshare
|
||||
* failed and we want to continue with
|
||||
* next nbuf.
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!dp_tx_send(sa_peer->vdev, nbuf)) {
|
||||
|
|
|
|||
|
|
@ -348,18 +348,18 @@ dp_rx_pn_error_handle(struct dp_soc *soc, void *ring_desc,
|
|||
/*
|
||||
* TODO: Check for peer specific policies & set peer_pn_policy
|
||||
*/
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"discard rx due to PN error for peer %pK "
|
||||
"(%02x:%02x:%02x:%02x:%02x:%02x)\n",
|
||||
peer,
|
||||
peer->mac_addr.raw[0], peer->mac_addr.raw[1],
|
||||
peer->mac_addr.raw[2], peer->mac_addr.raw[3],
|
||||
peer->mac_addr.raw[4], peer->mac_addr.raw[5]);
|
||||
|
||||
}
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
"Packet received with PN error");
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"discard rx due to PN error for peer %pK "
|
||||
"(%02x:%02x:%02x:%02x:%02x:%02x)\n",
|
||||
peer,
|
||||
peer->mac_addr.raw[0], peer->mac_addr.raw[1],
|
||||
peer->mac_addr.raw[2], peer->mac_addr.raw[3],
|
||||
peer->mac_addr.raw[4], peer->mac_addr.raw[5]);
|
||||
|
||||
/* No peer PN policy -- definitely drop */
|
||||
if (!peer_pn_policy)
|
||||
rx_bufs_used = dp_rx_msdus_drop(soc, ring_desc,
|
||||
|
|
|
|||
Loading…
Reference in a new issue