diff options
| author | Breno Leitao <leitao@debian.org> | 2024-08-13 09:12:53 -0700 | 
|---|---|---|
| committer | Andi Shyti <andi.shyti@kernel.org> | 2024-08-15 00:22:28 +0200 | 
| commit | 14d069d92951a3e150c0a81f2ca3b93e54da913b (patch) | |
| tree | b6ff4778097685d9428510d318522be9f7cfe3f0 /net/unix/af_unix.c | |
| parent | 4e91fa1ef3ce6290b4c598e54b5eb6cf134fbec8 (diff) | |
i2c: tegra: Do not mark ACPI devices as irq safe
On ACPI machines, the tegra i2c module encounters an issue due to a
mutex being called inside a spinlock. This leads to the following bug:
	BUG: sleeping function called from invalid context at kernel/locking/mutex.c:585
	...
	Call trace:
	__might_sleep
	__mutex_lock_common
	mutex_lock_nested
	acpi_subsys_runtime_resume
	rpm_resume
	tegra_i2c_xfer
The problem arises because during __pm_runtime_resume(), the spinlock
&dev->power.lock is acquired before rpm_resume() is called. Later,
rpm_resume() invokes acpi_subsys_runtime_resume(), which relies on
mutexes, triggering the error.
To address this issue, devices on ACPI are now marked as not IRQ-safe,
considering the dependency of acpi_subsys_runtime_resume() on mutexes.
Fixes: bd2fdedbf2ba ("i2c: tegra: Add the ACPI support")
Cc: <stable@vger.kernel.org> # v5.17+
Co-developed-by: Michael van der Westhuizen <rmikey@meta.com>
Signed-off-by: Michael van der Westhuizen <rmikey@meta.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions
