Files
Linux/include/drm
Daniel Vetter ea497bb920 drm: rework delayed connector cleanup in connector_iter
PROBE_DEFER also uses system_wq to reprobe drivers, which means when
that again fails, and we try to flush the overall system_wq (to get
all the delayed connectore cleanup work_struct completed), we
deadlock.

Fix this by using just a single cleanup work, so that we can only
flush that one and don't block on anything else. That means a free
list plus locking, a standard pattern.

v2:
- Correctly free connectors only on last ref. Oops (Chris).
- use llist_head/node (Chris).

v3
- Add init_llist_head (Chris).

Fixes: a703c55004 ("drm: safely free connectors from connector_iter")
Fixes: 613051dac4 ("drm: locking&new iterators for connector_list")
Cc: Ben Widawsky <[email protected]>
Cc: Dave Airlie <[email protected]>
Cc: Chris Wilson <[email protected]>
Cc: Sean Paul <[email protected]>
Cc: <[email protected]> # v4.11+: 613051dac4 ("drm: locking&new iterators for connector_list"
Cc: <[email protected]> # v4.11+
Cc: Daniel Vetter <[email protected]>
Cc: Jani Nikula <[email protected]>
Cc: Gustavo Padovan <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Javier Martinez Canillas <[email protected]>
Cc: Shuah Khan <[email protected]>
Cc: Guillaume Tucker <[email protected]>
Cc: Mark Brown <[email protected]>
Cc: Kevin Hilman <[email protected]>
Cc: Matt Hart <[email protected]>
Cc: Thierry Escande <[email protected]>
Cc: Tomeu Vizoso <[email protected]>
Cc: Enric Balletbo i Serra <[email protected]>
Tested-by: Marek Szyprowski <[email protected]>
Reviewed-by: Chris Wilson <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2017-12-13 22:59:00 +01:00
..
2017-03-24 09:36:06 +01:00
2017-08-11 10:47:17 +02:00
2017-06-14 12:10:22 +10:00
2017-05-27 15:39:28 -04:00
2017-06-01 08:02:14 +02:00
2017-06-01 08:02:14 +02:00
2017-03-09 16:18:02 +01:00
2017-10-25 16:31:29 +10:00
…