fix bug when hotplugging a monitor causes oops
This commit is contained in:
parent
1de259a791
commit
be4655a040
41
0001-config-udev-ignore-change-on-drm-devices.patch
Normal file
41
0001-config-udev-ignore-change-on-drm-devices.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From 6d9beff6ce231527dfd59e896c6cf3730555121a Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@gmail.com>
|
||||
Date: Thu, 13 Sep 2012 18:44:06 +1000
|
||||
Subject: [PATCH] config/udev: ignore change on drm devices
|
||||
|
||||
for input devices we handle change like remove/add, but for
|
||||
drm devices we get change events when we hotplug outputs,
|
||||
so lets just ignore change at this level, and let the drivers
|
||||
handle it. We may in the future want to route driver udev
|
||||
from here instead.
|
||||
|
||||
Reported-by: Timo Aaltonen <timo.aaltonen@canonical.com>
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
config/udev.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/config/udev.c b/config/udev.c
|
||||
index c2d00bb..454838f 100644
|
||||
--- a/config/udev.c
|
||||
+++ b/config/udev.c
|
||||
@@ -300,9 +300,15 @@ wakeup_handler(pointer data, int err, pointer read_mask)
|
||||
return;
|
||||
action = udev_device_get_action(udev_device);
|
||||
if (action) {
|
||||
- if (!strcmp(action, "add") || !strcmp(action, "change")) {
|
||||
+ if (!strcmp(action, "add")) {
|
||||
device_removed(udev_device);
|
||||
device_added(udev_device);
|
||||
+ } else if (!strcmp(action, "change")) {
|
||||
+ /* ignore change for the drm devices */
|
||||
+ if (strcmp(udev_device_get_subsystem(udev_device), "drm")) {
|
||||
+ device_removed(udev_device);
|
||||
+ device_added(udev_device);
|
||||
+ }
|
||||
}
|
||||
else if (!strcmp(action, "remove"))
|
||||
device_removed(udev_device);
|
||||
--
|
||||
1.7.10.2
|
||||
|
Loading…
Reference in New Issue
Block a user