modes: Retry GETCONNECTOR if a hotplug event occurs between the two ioctls
authorPeter Clifton <pcjc2@cam.ac.uk>
Wed, 6 Jan 2010 20:44:11 +0000 (20:44 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 6 Jan 2010 23:46:14 +0000 (23:46 +0000)
commit04f90a44709a48fb932ea954011cb551659bf246
tree176627a39a18bff8df8be844e4c479effd19613a
parente6c136ca7a4c54457b48be1aec2be024b3e4a28d
modes: Retry GETCONNECTOR if a hotplug event occurs between the two ioctls

If the available modes changes between the two GETCONNECTOR ioctls, that
caused the kernel to skip filling one array and led to a crash (as the size
of the allocated and initialised block of memory differed from the reported
size, and might be NULL if no modes were present at first).

This bug manifest its self on my machine due to spurious false positive
detections of a connected TV-out.

Fixes: http://bugs.freedesktop.org/show_bug.cgi?id=25912
       Crash whilst probing modes

Based upon the similar fixes for the GETRESOURCES ioctls by Chris Wilson,
in the following commits:

    commit e6c136ca7a4c54457b48be1aec2be024b3e4a28d
    commit 85fb3e55fdb7af9b5f59c1ec0f15d1950e601b05
    commit d1308f4fe7f94aae51ca9f70947aea8e09597f37

Signed-off-by: Peter Clifton <pcjc2@cam.ac.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
xf86drmMode.c