Commit d33d260
rtmutex: Drop rt_mutex::wait_lock before scheduling
rt_mutex_handle_deadlock() is called with rt_mutex::wait_lock held. In the
good case it returns with the lock held and in the deadlock case it emits a
warning and goes into an endless scheduling loop with the lock held, which
triggers the 'scheduling in atomic' warning.
Unlock rt_mutex::wait_lock in the dead lock case before issuing the warning
and dropping into the schedule for ever loop.
[ tglx: Moved unlock before the WARN(), removed the pointless comment,
massaged changelog, added Fixes tag ]
Fixes: 3d5c934 ("rtmutex: Handle deadlock detection smarter")
Signed-off-by: Roland Xu <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Cc: [email protected]
Link: https://lore.kernel.org/all/ME0P300MB063599BEF0743B8FA339C2CECC802@ME0P300MB0635.AUSP300.PROD.OUTLOOK.COM1 parent 7c626ce commit d33d260
1 file changed
+5
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1644 | 1644 | | |
1645 | 1645 | | |
1646 | 1646 | | |
| 1647 | + | |
1647 | 1648 | | |
1648 | 1649 | | |
1649 | 1650 | | |
| |||
1656 | 1657 | | |
1657 | 1658 | | |
1658 | 1659 | | |
1659 | | - | |
1660 | | - | |
1661 | | - | |
| 1660 | + | |
| 1661 | + | |
1662 | 1662 | | |
| 1663 | + | |
1663 | 1664 | | |
1664 | 1665 | | |
1665 | 1666 | | |
| |||
1713 | 1714 | | |
1714 | 1715 | | |
1715 | 1716 | | |
1716 | | - | |
| 1717 | + | |
1717 | 1718 | | |
1718 | 1719 | | |
1719 | 1720 | | |
| |||
0 commit comments