qcacmn: fix TX packet logging issue

Packet logging buffer is only 2048 bytes, if copy non-linear
TX packet with skb->len (like TSO) which is likely > 2048,
this will lead to skb panic as packet logging buffer can not
accommodate it.

Only support TX packet logging with single linear buffer.

Change-Id: I1d15f9ab80fcc1720fdb3f7fe8c89e7f5e3c0a79
CRs-Fixed: 3242090
这个提交包含在:
Jinwei Chen
2022-07-13 06:41:53 -07:00
提交者 Madan Koyyalamudi
父节点 38b8236ddc
当前提交 694a2eb657
修改 2 个文件,包含 6 行新增2 行删除

查看文件

@@ -3775,6 +3775,7 @@ dp_get_peer_telemetry_stats(struct cdp_soc_t *soc_hdl, uint8_t *addr,
* dp_tx_send_pktlog() - send tx packet log
* @soc: soc handle
* @pdev: pdev handle
* @tx_desc: TX software descriptor
* @nbuf: nbuf
* @status: status of tx packet
*
@@ -3785,11 +3786,13 @@ dp_get_peer_telemetry_stats(struct cdp_soc_t *soc_hdl, uint8_t *addr,
*/
static inline
void dp_tx_send_pktlog(struct dp_soc *soc, struct dp_pdev *pdev,
struct dp_tx_desc_s *tx_desc,
qdf_nbuf_t nbuf, enum qdf_dp_tx_rx_status status)
{
ol_txrx_pktdump_cb packetdump_cb = pdev->dp_tx_packetdump_cb;
if (qdf_unlikely(packetdump_cb)) {
if (qdf_unlikely(packetdump_cb) &&
dp_tx_frm_std == tx_desc->frm_type) {
packetdump_cb((ol_txrx_soc_handle)soc, pdev->pdev_id,
QDF_NBUF_CB_TX_VDEV_CTX(nbuf),
nbuf, status, QDF_TX_DATA_PKT);
@@ -3823,6 +3826,7 @@ void dp_rx_send_pktlog(struct dp_soc *soc, struct dp_pdev *pdev,
#else
static inline
void dp_tx_send_pktlog(struct dp_soc *soc, struct dp_pdev *pdev,
struct dp_tx_desc_s *tx_desc,
qdf_nbuf_t nbuf, enum qdf_dp_tx_rx_status status)
{
}