В ядре Linux устранена следующая уязвимость:
Accel/amdxdna: исправлена мертвая блокировка приостановки и возобновления работы. Когда приложение выдает запрос IOCTL во время автоматической приостановки,
может возникнуть тупик. Путь запроса содержит dev_lock, а затем вызывает
pm_runtime_resume_and_get(), который ожидает завершения текущей приостановки.
полный.
Тем временем обратный вызов приостановки пытается получить dev_lock.
и блокируется, что приводит к взаимоблокировке. Исправьте это, отпустив dev_lock перед вызовом pm_runtime_resume_and_get().
и повторное получение его после завершения вызова. Также приобретите dev_lock в
возобновите обратный вызов, чтобы обеспечить согласованность блокировки.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: accel/amdxdna: Fix dead lock for suspend and resume When an application issues a query IOCTL while auto suspend is running, a deadlock can occur. The query path holds dev_lock and then calls pm_runtime_resume_and_get(), which waits for the ongoing suspend to complete. Meanwhile, the suspend callback attempts to acquire dev_lock and blocks, resulting in a deadlock. Fix this by releasing dev_lock before calling pm_runtime_resume_and_get() and reacquiring it after the call completes. Also acquire dev_lock in the resume callback to keep the locking consistent.