(In reply to comment #24)
> I even tried this in ironlake_panel_vdd_work() before it locks
> mode_config.mutex:
>
> if (mutex_is_locked(&dev->mode_config.mutex))
> mutex_unlock(&dev->mode_config.mutex);
>
> I know that's not atomic. But, in case of the bug it runs into the if-clause
> (so, the mutex is locked) and gives a warning about an unbalanced unlock.
> Then it moves on and ironlake_panel_vdd_work() gets stuck when trying to
> lock mode_config.mutex.
Hmm, I was expecting that the warning would be from along the path that was already holding the lock. Is that so? Can you please attach the dmesg with this hack applied?
(In reply to comment #24) panel_vdd_ work() before it locks is_locked( &dev->mode_ config. mutex)) &dev->mode_ config. mutex); panel_vdd_ work() gets stuck when trying to
> I even tried this in ironlake_
> mode_config.mutex:
>
> if (mutex_
> mutex_unlock(
>
> I know that's not atomic. But, in case of the bug it runs into the if-clause
> (so, the mutex is locked) and gives a warning about an unbalanced unlock.
> Then it moves on and ironlake_
> lock mode_config.mutex.
Hmm, I was expecting that the warning would be from along the path that was already holding the lock. Is that so? Can you please attach the dmesg with this hack applied?