[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200324191217.1829-1-digetx@gmail.com>
Date: Tue, 24 Mar 2020 22:12:15 +0300
From: Dmitry Osipenko <digetx@...il.com>
To: Thierry Reding <thierry.reding@...il.com>,
Jonathan Hunter <jonathanh@...dia.com>,
Laxman Dewangan <ldewangan@...dia.com>,
Wolfram Sang <wsa@...-dreams.de>
Cc: linux-i2c@...r.kernel.org, linux-tegra@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v2 0/2] NVIDIA Tegra I2C synchronization correction
Hello,
Recently I found a way to reliably reproduce I2C timeouts that happen due
to improper synchronizations made by the I2C driver. It's quite easy to
reproduce the problem when memory is running on a lower freq + there is
some memory activity + CPU could get busy for a significant time. This
is the case when KASAN is enabled and CPU is busy while accessing FS via
NFS. This small series addresses the found problems.
Changelog:
v2: - The "Better handle case where CPU0 is busy for a long time" patch
now preserves the old behavior where completion is checked after
disabling the interrupt, preventing potential race-condition of
the completion awaiting vs interrupt syncing.
Dmitry Osipenko (2):
i2c: tegra: Better handle case where CPU0 is busy for a long time
i2c: tegra: Synchronize DMA before termination
drivers/i2c/busses/i2c-tegra.c | 36 ++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
--
2.25.1
Powered by blists - more mailing lists