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
这个提交包含在:
@@ -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)
|
||||
{
|
||||
}
|
||||
|
在新工单中引用
屏蔽一个用户