Merge "diag: Free the read workqueue structure to avoid memory leak"

This commit is contained in:
Linux Build Service Account 2017-07-28 00:21:12 -07:00 committed by Gerrit - the friendly Code Review server
commit 96e98ab9bb

View file

@ -375,8 +375,10 @@ static void diag_glink_notify_rx_work_fn(struct work_struct *work)
struct diag_glink_read_work, work);
struct diag_glink_info *glink_info = read_work->glink_info;
if (!glink_info || !glink_info->hdl)
if (!glink_info || !glink_info->hdl) {
kfree(read_work);
return;
}
diagfwd_channel_read_done(glink_info->fwd_ctxt,
(unsigned char *)(read_work->ptr_read_done),
@ -388,6 +390,7 @@ static void diag_glink_notify_rx_work_fn(struct work_struct *work)
"diag: Rx done for packet %pK of len: %d periph: %d ch: %d\n",
read_work->ptr_rx_done, (int)read_work->ptr_read_size,
glink_info->peripheral, glink_info->type);
kfree(read_work);
}
static void diag_glink_notify_rx(void *hdl, const void *priv,
@ -411,6 +414,7 @@ static void diag_glink_notify_rx(void *hdl, const void *priv,
if (!read_work) {
DIAG_LOG(DIAG_DEBUG_PERIPHERALS,
"diag: Could not allocate read_work\n");
glink_rx_done(glink_info->hdl, ptr, true);
return;
}