qcacmn: Update htc_endpoint only for htt tx endpoint

Update htc_endpoint only for htt tx endpoint to avoid
double freeing of Tx Queue packets as it will be
freed in htt_htc_misc_pkt_pool_free.
Rename htc_endpoint to htc_htt_tx_endpoint to reflect
it's appropriate use.

Change-Id: I736ba08505acc829eb15be30538553dd945695f6
CRs-Fixed: 1006498
This commit is contained in:
Nirav Shah
2016-04-21 14:18:43 +05:30
committed by Gerrit - the friendly Code Review server
parent c5dc5f291c
commit d7f9159cf2
5 changed files with 9 additions and 13 deletions

View File

@@ -430,7 +430,7 @@ void hif_get_hw_info(struct hif_opaque_softc *scn, u32 *version, u32 *revision,
void hif_disable_isr(struct hif_opaque_softc *scn); void hif_disable_isr(struct hif_opaque_softc *scn);
void hif_reset_soc(struct hif_opaque_softc *scn); void hif_reset_soc(struct hif_opaque_softc *scn);
void hif_save_htc_htt_config_endpoint(struct hif_opaque_softc *hif_ctx, void hif_save_htc_htt_config_endpoint(struct hif_opaque_softc *hif_ctx,
int htc_endpoint); int htc_htt_tx_endpoint);
struct hif_opaque_softc *hif_open(qdf_device_t qdf_ctx, uint32_t mode, struct hif_opaque_softc *hif_open(qdf_device_t qdf_ctx, uint32_t mode,
enum qdf_bus_type bus_type, enum qdf_bus_type bus_type,
struct hif_driver_state_callbacks *cbk); struct hif_driver_state_callbacks *cbk);

View File

@@ -1588,9 +1588,9 @@ void hif_send_buffer_cleanup_on_pipe(struct HIF_CE_pipe_info *pipe_info)
* by checking whether it's the endpoint * by checking whether it's the endpoint
* which they are queued in. * which they are queued in.
*/ */
if (id == scn->htc_endpoint) if (id == scn->htc_htt_tx_endpoint)
return; return;
/* Indicate the completion to higer /* Indicate the completion to higher
* layer to free the buffer */ * layer to free the buffer */
hif_state->msg_callbacks_current. hif_state->msg_callbacks_current.
txCompletionHandler(hif_state-> txCompletionHandler(hif_state->

View File

@@ -333,14 +333,14 @@ qdf_size_t init_buffer_count(qdf_size_t maxSize)
} }
/** /**
* hif_save_htc_htt_config_endpoint(): * hif_save_htc_htt_config_endpoint() - save htt_tx_endpoint
* hif_save_htc_htt_config_endpoint * @hif_ctx: hif context
* @htc_endpoint: htc_endpoint * @htc_htt_tx_endpoint: htt_tx_endpoint
* *
* Return: void * Return: void
*/ */
void hif_save_htc_htt_config_endpoint(struct hif_opaque_softc *hif_ctx, void hif_save_htc_htt_config_endpoint(struct hif_opaque_softc *hif_ctx,
int htc_endpoint) int htc_htt_tx_endpoint)
{ {
struct hif_softc *scn = HIF_GET_SOFTC(hif_ctx); struct hif_softc *scn = HIF_GET_SOFTC(hif_ctx);
@@ -350,7 +350,7 @@ void hif_save_htc_htt_config_endpoint(struct hif_opaque_softc *hif_ctx,
return; return;
} }
scn->htc_endpoint = htc_endpoint; scn->htc_htt_tx_endpoint = htc_htt_tx_endpoint;
} }
/** /**

View File

@@ -140,7 +140,7 @@ struct hif_softc {
int linkstate_vote; int linkstate_vote;
bool fastpath_mode_on; bool fastpath_mode_on;
atomic_t tasklet_from_intr; atomic_t tasklet_from_intr;
int htc_endpoint; int htc_htt_tx_endpoint;
qdf_dma_addr_t mem_pa; qdf_dma_addr_t mem_pa;
bool athdiag_procfs_inited; bool athdiag_procfs_inited;
#ifdef FEATURE_NAPI #ifdef FEATURE_NAPI

View File

@@ -332,10 +332,6 @@ A_STATUS htc_connect_service(HTC_HANDLE HTCHandle,
} while (false); } while (false);
if (HTT_SERVICE_GROUP == (pConnectReq->service_id >> 8))
hif_save_htc_htt_config_endpoint(target->hif_dev,
assignedEndpoint);
AR_DEBUG_PRINTF(ATH_DEBUG_TRC, ("-htc_connect_service\n")); AR_DEBUG_PRINTF(ATH_DEBUG_TRC, ("-htc_connect_service\n"));
return status; return status;