From bd540b1cd094af4a94b7037e9c041a29ccc0a9f3 Mon Sep 17 00:00:00 2001 From: Jingxiang Ge Date: Wed, 13 Mar 2019 14:58:52 +0800 Subject: [PATCH] qcacld-3.0: Get wlan op mode from vdev for pktlog To avoid using qcacld code in cmn, when getting wlan op mode, using op mode info from vdev rather adapter. Change-Id: If8432aae12800884e3a4567d99319afcdfa9d1f5 CRs-Fixed: 2412315 --- core/dp/txrx/ol_rx.c | 8 ++++--- core/dp/txrx/ol_tx_send.c | 19 +++++++++++---- core/wma/inc/wma.h | 10 ++++---- core/wma/src/wma_mgmt.c | 49 +++++++++++++++++++++++++-------------- 4 files changed, 56 insertions(+), 30 deletions(-) diff --git a/core/dp/txrx/ol_rx.c b/core/dp/txrx/ol_rx.c index 7dc3322beffe..5e89e039de16 100644 --- a/core/dp/txrx/ol_rx.c +++ b/core/dp/txrx/ol_rx.c @@ -1541,9 +1541,9 @@ void ol_rx_pkt_dump_call( ol_txrx_pdev_handle pdev; struct ol_txrx_peer_t *peer = NULL; ol_txrx_pktdump_cb packetdump_cb; + void *soc = cds_get_context(QDF_MODULE_ID_SOC); pdev = cds_get_context(QDF_MODULE_ID_TXRX); - if (!pdev) { ol_txrx_err("pdev is NULL"); return; @@ -1556,8 +1556,10 @@ void ol_rx_pkt_dump_call( } packetdump_cb = pdev->ol_rx_packetdump_cb; - if (packetdump_cb) - packetdump_cb(msdu, status, peer->vdev->vdev_id, RX_DATA_PKT); + if (packetdump_cb && + wlan_op_mode_sta == peer->vdev->opmode) + packetdump_cb(soc, (struct cdp_vdev *)peer->vdev, + msdu, status, RX_DATA_PKT); } #endif diff --git a/core/dp/txrx/ol_tx_send.c b/core/dp/txrx/ol_tx_send.c index f49b58e217f4..1371370338d8 100644 --- a/core/dp/txrx/ol_tx_send.c +++ b/core/dp/txrx/ol_tx_send.c @@ -759,7 +759,10 @@ ol_tx_completion_handler(ol_txrx_pdev_handle pdev, struct ol_tx_desc_t *tx_desc; uint32_t byte_cnt = 0; qdf_nbuf_t netbuf; +#if !defined(REMOVE_PKT_LOG) ol_txrx_pktdump_cb packetdump_cb; + void *soc = cds_get_context(QDF_MODULE_ID_SOC); +#endif uint32_t is_tx_desc_freed = 0; struct htt_tx_compl_ind_append_tx_tstamp *txtstamp_list = NULL; u_int32_t *msg_word = (u_int32_t *)msg; @@ -810,12 +813,15 @@ ol_tx_completion_handler(ol_txrx_pdev_handle pdev, status); ol_tx_update_ack_count(tx_desc, status); +#if !defined(REMOVE_PKT_LOG) if (tx_desc->pkt_type != OL_TX_FRM_TSO) { packetdump_cb = pdev->ol_tx_packetdump_cb; if (packetdump_cb) - packetdump_cb(netbuf, status, - tx_desc->vdev_id, TX_DATA_PKT); + packetdump_cb(soc, + (struct cdp_vdev *)tx_desc->vdev, + netbuf, status, TX_DATA_PKT); } +#endif DPTRACE(qdf_dp_trace_ptr(netbuf, QDF_DP_TRACE_FREE_PACKET_PTR_RECORD, @@ -1032,7 +1038,10 @@ ol_tx_single_completion_handler(ol_txrx_pdev_handle pdev, { struct ol_tx_desc_t *tx_desc; qdf_nbuf_t netbuf; +#if !defined(REMOVE_PKT_LOG) ol_txrx_pktdump_cb packetdump_cb; + void *soc = cds_get_context(QDF_MODULE_ID_SOC); +#endif tx_desc = ol_tx_desc_find_check(pdev, tx_desc_id); if (tx_desc == NULL) { @@ -1047,10 +1056,12 @@ ol_tx_single_completion_handler(ol_txrx_pdev_handle pdev, /* Do one shot statistics */ TXRX_STATS_UPDATE_TX_STATS(pdev, status, 1, qdf_nbuf_len(netbuf)); +#if !defined(REMOVE_PKT_LOG) packetdump_cb = pdev->ol_tx_packetdump_cb; if (packetdump_cb) - packetdump_cb(netbuf, status, - tx_desc->vdev->vdev_id, TX_MGMT_PKT); + packetdump_cb(soc, (struct cdp_vdev *)tx_desc->vdev, + netbuf, status, TX_MGMT_PKT); +#endif if (OL_TX_DESC_NO_REFS(tx_desc)) { ol_tx_desc_frame_free_nonstd(pdev, tx_desc, diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h index 9b81d10db4e6..7a485d6ac364 100644 --- a/core/wma/inc/wma.h +++ b/core/wma/inc/wma.h @@ -425,8 +425,6 @@ typedef void (*txFailIndCallback)(uint8_t *peer_mac, uint8_t seqNo); -typedef void (*tp_wma_packetdump_cb)(qdf_nbuf_t netbuf, - uint8_t status, uint8_t vdev_id, uint8_t type); /** * enum wma_rx_exec_ctx - wma rx execution context @@ -1212,8 +1210,8 @@ typedef struct { bool fw_timeout_crash; bool sub_20_support; bool is_dfs_offloaded; - tp_wma_packetdump_cb wma_mgmt_tx_packetdump_cb; - tp_wma_packetdump_cb wma_mgmt_rx_packetdump_cb; + ol_txrx_pktdump_cb wma_mgmt_tx_packetdump_cb; + ol_txrx_pktdump_cb wma_mgmt_rx_packetdump_cb; bool rcpi_enabled; tSirLLStatsResults *link_stats_results; uint64_t tx_fail_cnt; @@ -1958,8 +1956,8 @@ QDF_STATUS wma_start_oem_data_req(tp_wma_handle wma_handle, QDF_STATUS wma_enable_disable_caevent_ind(tp_wma_handle wma_handle, uint8_t val); void wma_register_packetdump_callback( - tp_wma_packetdump_cb wma_mgmt_tx_packetdump_cb, - tp_wma_packetdump_cb wma_mgmt_rx_packetdump_cb); + ol_txrx_pktdump_cb wma_mgmt_tx_packetdump_cb, + ol_txrx_pktdump_cb wma_mgmt_rx_packetdump_cb); void wma_deregister_packetdump_callback(void); void wma_update_sta_inactivity_timeout(tp_wma_handle wma, struct sme_sta_inactivity_timeout *sta_inactivity_timer); diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c index 5ac98ac16f2c..f362e50ddcf9 100644 --- a/core/wma/src/wma_mgmt.c +++ b/core/wma/src/wma_mgmt.c @@ -3248,9 +3248,13 @@ static int wma_process_mgmt_tx_completion(tp_wma_handle wma_handle, { struct wlan_objmgr_pdev *pdev; qdf_nbuf_t buf = NULL; - uint8_t vdev_id = 0; QDF_STATUS ret; - tp_wma_packetdump_cb packetdump_cb; +#if !defined(REMOVE_PKT_LOG) + uint8_t vdev_id = 0; + struct cdp_vdev *txrx_vdev; + ol_txrx_pktdump_cb packetdump_cb; + void *soc = cds_get_context(QDF_MODULE_ID_SOC); +#endif if (wma_handle == NULL) { WMA_LOGE("%s: wma handle is NULL", __func__); @@ -3267,15 +3271,19 @@ static int wma_process_mgmt_tx_completion(tp_wma_handle wma_handle, } buf = mgmt_txrx_get_nbuf(pdev, desc_id); - vdev_id = mgmt_txrx_get_vdev_id(pdev, desc_id); + if (buf) wma_mgmt_unmap_buf(wma_handle, buf); +#if !defined(REMOVE_PKT_LOG) + vdev_id = mgmt_txrx_get_vdev_id(pdev, desc_id); + txrx_vdev = wma_find_vdev_by_id(wma_handle, vdev_id); packetdump_cb = wma_handle->wma_mgmt_tx_packetdump_cb; if (packetdump_cb) - packetdump_cb(buf, QDF_STATUS_SUCCESS, - vdev_id, TX_MGMT_PKT); + packetdump_cb(soc, txrx_vdev, + buf, QDF_STATUS_SUCCESS, TX_MGMT_PKT); +#endif ret = mgmt_txrx_tx_completion_handler(pdev, desc_id, status, NULL); @@ -4028,7 +4036,11 @@ int wma_form_rx_packet(qdf_nbuf_t buf, int status; tp_wma_handle wma_handle = (tp_wma_handle) cds_get_context(QDF_MODULE_ID_WMA); - tp_wma_packetdump_cb packetdump_cb; +#if !defined(REMOVE_PKT_LOG) + ol_txrx_pktdump_cb packetdump_cb; + void *soc = cds_get_context(QDF_MODULE_ID_SOC); + struct cdp_vdev *txrx_vdev; +#endif static uint8_t limit_prints_invalid_len = RATE_LIMIT - 1; static uint8_t limit_prints_load_unload = RATE_LIMIT - 1; static uint8_t limit_prints_recovery = RATE_LIMIT - 1; @@ -4199,13 +4211,16 @@ int wma_form_rx_packet(qdf_nbuf_t buf, return -EINVAL; } +#if !defined(REMOVE_PKT_LOG) packetdump_cb = wma_handle->wma_mgmt_rx_packetdump_cb; + txrx_vdev = wma_find_vdev_by_id(wma_handle, + rx_pkt->pkt_meta.session_id); if ((mgt_type == IEEE80211_FC0_TYPE_MGT && - mgt_subtype != MGMT_SUBTYPE_BEACON) && - packetdump_cb) - packetdump_cb(rx_pkt->pkt_buf, QDF_STATUS_SUCCESS, - rx_pkt->pkt_meta.session_id, RX_MGMT_PKT); - + mgt_subtype != MGMT_SUBTYPE_BEACON) && + packetdump_cb) + packetdump_cb(soc, txrx_vdev, rx_pkt->pkt_buf, + QDF_STATUS_SUCCESS, RX_MGMT_PKT); +#endif return 0; } @@ -4453,8 +4468,8 @@ QDF_STATUS wma_register_mgmt_frm_client(void) /** * wma_register_packetdump_callback() - stores tx and rx mgmt packet dump * callback handler - * @wma_mgmt_tx_packetdump_cb: tx mgmt packetdump cb - * @wma_mgmt_rx_packetdump_cb: rx mgmt packetdump cb + * @tx_cb: tx mgmt packetdump cb + * @rx_cb: rx mgmt packetdump cb * * This function is used to store tx and rx mgmt. packet dump callback * @@ -4462,8 +4477,8 @@ QDF_STATUS wma_register_mgmt_frm_client(void) * */ void wma_register_packetdump_callback( - tp_wma_packetdump_cb wma_mgmt_tx_packetdump_cb, - tp_wma_packetdump_cb wma_mgmt_rx_packetdump_cb) + ol_txrx_pktdump_cb tx_cb, + ol_txrx_pktdump_cb rx_cb) { tp_wma_handle wma_handle = cds_get_context(QDF_MODULE_ID_WMA); @@ -4472,8 +4487,8 @@ void wma_register_packetdump_callback( return; } - wma_handle->wma_mgmt_tx_packetdump_cb = wma_mgmt_tx_packetdump_cb; - wma_handle->wma_mgmt_rx_packetdump_cb = wma_mgmt_rx_packetdump_cb; + wma_handle->wma_mgmt_tx_packetdump_cb = tx_cb; + wma_handle->wma_mgmt_rx_packetdump_cb = rx_cb; } /**