From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>,
Wolfram Sang <wsa@the-dreams.de>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.9 13/13] i2c: rcar: cleanup DMA for all kinds of failure
Date: Tue, 30 Oct 2018 09:29:23 -0400 [thread overview]
Message-ID: <20181030132923.218124-13-sashal@kernel.org> (raw)
In-Reply-To: <20181030132923.218124-1-sashal@kernel.org>
From: Wolfram Sang <wsa+renesas@sang-engineering.com>
[ Upstream commit 31d86033a0749a0463ea654130b2de5c163154f1 ]
DMA needs to be cleaned up not only on timeout, but on all errors where
it has been setup before.
Fixes: 73e8b0528346 ("i2c: rcar: add DMA support")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/i2c/busses/i2c-rcar.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
index c7592fe30e6e..93b8069041bb 100644
--- a/drivers/i2c/busses/i2c-rcar.c
+++ b/drivers/i2c/busses/i2c-rcar.c
@@ -723,8 +723,12 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,
time_left = wait_event_timeout(priv->wait, priv->flags & ID_DONE,
num * adap->timeout);
- if (!time_left) {
+
+ /* cleanup DMA if it couldn't complete properly due to an error */
+ if (priv->dma_direction != DMA_NONE)
rcar_i2c_cleanup_dma(priv);
+
+ if (!time_left) {
rcar_i2c_init(priv);
ret = -ETIMEDOUT;
} else if (priv->flags & ID_NACK) {
--
2.17.1
prev parent reply other threads:[~2018-10-30 13:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-30 13:29 [PATCH AUTOSEL 4.9 01/13] bpf: do not blindly change rlimit in reuseport net selftest Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 02/13] Revert "perf tools: Fix PMU term format max value calculation" Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 03/13] xfrm: policy: use hlist rcu variants on insert Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 04/13] sparc: Fix single-pcr perf event counter management Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 05/13] sparc64: Make proc_id signed Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 06/13] sched/fair: Fix the min_vruntime update logic in dequeue_entity() Sasha Levin
2018-10-30 13:29 ` Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 07/13] perf cpu_map: Align cpu map synthesized events properly Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 08/13] x86/fpu: Remove second definition of fpu in __fpu__restore_sig() Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 09/13] net: qla3xxx: Remove overflowing shift statement Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 10/13] r8169: fix NAPI handling under high load Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 11/13] selftests: ftrace: Add synthetic event syntax testcase Sasha Levin
2018-10-30 13:29 ` [PATCH AUTOSEL 4.9 12/13] net: fix pskb_trim_rcsum_slow() with odd trim offset Sasha Levin
2018-10-30 13:29 ` Sasha Levin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181030132923.218124-13-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=wsa+renesas@sang-engineering.com \
--cc=wsa@the-dreams.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.