summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-09-02 13:52:23 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-02 13:52:22 -0700
commit3fa0d6f138f6fda3bc1a1fc2ae3ed0dfb93d7518 (patch)
tree4daeac3b46a4ab9d535abaf0225c532dcc294e0c
parent0e34d5ec1c7a0f7b82451fea9d2db30bf2d852b4 (diff)
parentf0644715361abf12f4387084c1fe0f76a0c640ee (diff)
Merge "diag: Add error handler to free buffers when fwd fails"
-rw-r--r--drivers/char/diag/diagfwd_mhi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/char/diag/diagfwd_mhi.c b/drivers/char/diag/diagfwd_mhi.c
index b8ed216faaf6..f7b1e98f22b0 100644
--- a/drivers/char/diag/diagfwd_mhi.c
+++ b/drivers/char/diag/diagfwd_mhi.c
@@ -404,8 +404,11 @@ static void mhi_read_done_work_fn(struct work_struct *work)
* buffers here and do not forward them to the mux layer.
*/
if ((atomic_read(&(mhi_info->read_ch.opened)))) {
- diag_remote_dev_read_done(mhi_info->dev_id, buf,
+ err = diag_remote_dev_read_done(mhi_info->dev_id, buf,
result.bytes_xferd);
+ if (err)
+ mhi_buf_tbl_remove(mhi_info, TYPE_MHI_READ_CH,
+ buf, result.bytes_xferd);
} else {
mhi_buf_tbl_remove(mhi_info, TYPE_MHI_READ_CH, buf,
result.bytes_xferd);