Hi Breno, On Tue, Aug 13, 2024 at 09:12:53AM GMT, Breno Leitao wrote: > 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 > in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 1282, name: kssif0010 > preempt_count: 0, expected: 0 > RCU nest depth: 0, expected: 0 > irq event stamp: 0 > > 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. > > Co-developed-by: Michael van der Westhuizen <rmikey@xxxxxxxx> > Signed-off-by: Michael van der Westhuizen <rmikey@xxxxxxxx> > Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx> > Reviewed-by: Dmitry Osipenko <digetx@xxxxxxxxx> > Reviewed-by: Andy Shevchenko <andy@xxxxxxxxxx> merged to i2c/i2c-host-fixes. Thanks, Andi