Merge "msm: ipa: fix memory leak on QMI"
This commit is contained in:
commit
885abe4b27
2 changed files with 52 additions and 44 deletions
|
@ -2394,12 +2394,15 @@ static void rmnet_ipa_get_stats_and_update(bool reset)
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ipa_qmi_get_data_stats(&req, resp);
|
rc = ipa_qmi_get_data_stats(&req, resp);
|
||||||
|
if (rc) {
|
||||||
|
IPAWANERR("ipa_qmi_get_data_stats failed: %d\n", rc);
|
||||||
|
kfree(resp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!rc) {
|
|
||||||
memset(&msg_meta, 0, sizeof(struct ipa_msg_meta));
|
memset(&msg_meta, 0, sizeof(struct ipa_msg_meta));
|
||||||
msg_meta.msg_type = IPA_TETHERING_STATS_UPDATE_STATS;
|
msg_meta.msg_type = IPA_TETHERING_STATS_UPDATE_STATS;
|
||||||
msg_meta.msg_len =
|
msg_meta.msg_len = sizeof(struct ipa_get_data_stats_resp_msg_v01);
|
||||||
sizeof(struct ipa_get_data_stats_resp_msg_v01);
|
|
||||||
rc = ipa2_send_msg(&msg_meta, resp, rmnet_ipa_free_msg);
|
rc = ipa2_send_msg(&msg_meta, resp, rmnet_ipa_free_msg);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
IPAWANERR("ipa2_send_msg failed: %d\n", rc);
|
IPAWANERR("ipa2_send_msg failed: %d\n", rc);
|
||||||
|
@ -2407,7 +2410,6 @@ static void rmnet_ipa_get_stats_and_update(bool reset)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tethering_stats_poll_queue() - Stats polling function
|
* tethering_stats_poll_queue() - Stats polling function
|
||||||
|
@ -2454,12 +2456,15 @@ static void rmnet_ipa_get_network_stats_and_update(void)
|
||||||
req.mux_id_list[0] = ipa_rmnet_ctx.metered_mux_id;
|
req.mux_id_list[0] = ipa_rmnet_ctx.metered_mux_id;
|
||||||
|
|
||||||
rc = ipa_qmi_get_network_stats(&req, resp);
|
rc = ipa_qmi_get_network_stats(&req, resp);
|
||||||
|
if (rc) {
|
||||||
|
IPAWANERR("ipa_qmi_get_network_stats failed %d\n", rc);
|
||||||
|
kfree(resp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!rc) {
|
|
||||||
memset(&msg_meta, 0, sizeof(struct ipa_msg_meta));
|
memset(&msg_meta, 0, sizeof(struct ipa_msg_meta));
|
||||||
msg_meta.msg_type = IPA_TETHERING_STATS_UPDATE_NETWORK_STATS;
|
msg_meta.msg_type = IPA_TETHERING_STATS_UPDATE_NETWORK_STATS;
|
||||||
msg_meta.msg_len =
|
msg_meta.msg_len = sizeof(struct ipa_get_apn_data_stats_resp_msg_v01);
|
||||||
sizeof(struct ipa_get_apn_data_stats_resp_msg_v01);
|
|
||||||
rc = ipa2_send_msg(&msg_meta, resp, rmnet_ipa_free_msg);
|
rc = ipa2_send_msg(&msg_meta, resp, rmnet_ipa_free_msg);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
IPAWANERR("ipa2_send_msg failed: %d\n", rc);
|
IPAWANERR("ipa2_send_msg failed: %d\n", rc);
|
||||||
|
@ -2467,7 +2472,6 @@ static void rmnet_ipa_get_network_stats_and_update(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rmnet_ipa_poll_tethering_stats() - Tethering stats polling IOCTL handler
|
* rmnet_ipa_poll_tethering_stats() - Tethering stats polling IOCTL handler
|
||||||
|
|
|
@ -2467,12 +2467,15 @@ static void rmnet_ipa_get_stats_and_update(void)
|
||||||
req.ipa_stats_type = QMI_IPA_STATS_TYPE_PIPE_V01;
|
req.ipa_stats_type = QMI_IPA_STATS_TYPE_PIPE_V01;
|
||||||
|
|
||||||
rc = ipa3_qmi_get_data_stats(&req, resp);
|
rc = ipa3_qmi_get_data_stats(&req, resp);
|
||||||
|
if (rc) {
|
||||||
|
IPAWANERR("ipa3_qmi_get_data_stats failed: %d\n", rc);
|
||||||
|
kfree(resp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!rc) {
|
|
||||||
memset(&msg_meta, 0, sizeof(struct ipa_msg_meta));
|
memset(&msg_meta, 0, sizeof(struct ipa_msg_meta));
|
||||||
msg_meta.msg_type = IPA_TETHERING_STATS_UPDATE_STATS;
|
msg_meta.msg_type = IPA_TETHERING_STATS_UPDATE_STATS;
|
||||||
msg_meta.msg_len =
|
msg_meta.msg_len = sizeof(struct ipa_get_data_stats_resp_msg_v01);
|
||||||
sizeof(struct ipa_get_data_stats_resp_msg_v01);
|
|
||||||
rc = ipa_send_msg(&msg_meta, resp, rmnet_ipa_free_msg);
|
rc = ipa_send_msg(&msg_meta, resp, rmnet_ipa_free_msg);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
IPAWANERR("ipa_send_msg failed: %d\n", rc);
|
IPAWANERR("ipa_send_msg failed: %d\n", rc);
|
||||||
|
@ -2480,7 +2483,6 @@ static void rmnet_ipa_get_stats_and_update(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tethering_stats_poll_queue() - Stats polling function
|
* tethering_stats_poll_queue() - Stats polling function
|
||||||
|
@ -2527,12 +2529,15 @@ static void rmnet_ipa_get_network_stats_and_update(void)
|
||||||
req.mux_id_list[0] = ipa3_rmnet_ctx.metered_mux_id;
|
req.mux_id_list[0] = ipa3_rmnet_ctx.metered_mux_id;
|
||||||
|
|
||||||
rc = ipa3_qmi_get_network_stats(&req, resp);
|
rc = ipa3_qmi_get_network_stats(&req, resp);
|
||||||
|
if (rc) {
|
||||||
|
IPAWANERR("ipa3_qmi_get_network_stats failed: %d\n", rc);
|
||||||
|
kfree(resp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!rc) {
|
|
||||||
memset(&msg_meta, 0, sizeof(struct ipa_msg_meta));
|
memset(&msg_meta, 0, sizeof(struct ipa_msg_meta));
|
||||||
msg_meta.msg_type = IPA_TETHERING_STATS_UPDATE_NETWORK_STATS;
|
msg_meta.msg_type = IPA_TETHERING_STATS_UPDATE_NETWORK_STATS;
|
||||||
msg_meta.msg_len =
|
msg_meta.msg_len = sizeof(struct ipa_get_apn_data_stats_resp_msg_v01);
|
||||||
sizeof(struct ipa_get_apn_data_stats_resp_msg_v01);
|
|
||||||
rc = ipa_send_msg(&msg_meta, resp, rmnet_ipa_free_msg);
|
rc = ipa_send_msg(&msg_meta, resp, rmnet_ipa_free_msg);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
IPAWANERR("ipa_send_msg failed: %d\n", rc);
|
IPAWANERR("ipa_send_msg failed: %d\n", rc);
|
||||||
|
@ -2540,7 +2545,6 @@ static void rmnet_ipa_get_network_stats_and_update(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rmnet_ipa3_poll_tethering_stats() - Tethering stats polling IOCTL handler
|
* rmnet_ipa3_poll_tethering_stats() - Tethering stats polling IOCTL handler
|
||||||
|
|
Loading…
Add table
Reference in a new issue