Merge "msm: ipa: fix memory leak on QMI"

This commit is contained in:
Linux Build Service Account 2016-09-10 23:41:01 -07:00 committed by Gerrit - the friendly Code Review server
commit 885abe4b27
2 changed files with 52 additions and 44 deletions

View file

@ -2394,19 +2394,21 @@ 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);
kfree(resp); kfree(resp);
return; return;
} }
}
} }
/** /**
@ -2454,19 +2456,21 @@ 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);
kfree(resp); kfree(resp);
return; return;
} }
}
} }
/** /**

View file

@ -2467,19 +2467,21 @@ 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);
kfree(resp); kfree(resp);
return; return;
} }
}
} }
/** /**
@ -2527,19 +2529,21 @@ 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);
kfree(resp); kfree(resp);
return; return;
} }
}
} }
/** /**