aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-device.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mm-device.c b/src/mm-device.c
index 3e2e46f6..9c2a6e25 100644
--- a/src/mm-device.c
+++ b/src/mm-device.c
@@ -96,6 +96,11 @@ device_find_probe_with_device (MMDevice *self,
for (l = self->priv->port_probes; l; l = g_list_next (l)) {
MMPortProbe *probe = MM_PORT_PROBE (l->data);
+ if ( g_udev_device_has_property (udev_port, "DEVPATH_OLD")
+ && g_str_has_suffix (g_udev_device_get_sysfs_path (mm_port_probe_peek_port (probe)),
+ g_udev_device_get_property (udev_port, "DEVPATH_OLD")))
+ return probe;
+
if (g_str_equal (g_udev_device_get_sysfs_path (mm_port_probe_peek_port (probe)),
g_udev_device_get_sysfs_path (udev_port)))
return probe;
@@ -107,6 +112,11 @@ device_find_probe_with_device (MMDevice *self,
for (l = self->priv->ignored_port_probes; l; l = g_list_next (l)) {
MMPortProbe *probe = MM_PORT_PROBE (l->data);
+ if ( g_udev_device_has_property (udev_port, "DEVPATH_OLD")
+ && g_str_has_suffix (g_udev_device_get_sysfs_path (mm_port_probe_peek_port (probe)),
+ g_udev_device_get_property (udev_port, "DEVPATH_OLD")))
+ return probe;
+
if (g_str_equal (g_udev_device_get_sysfs_path (mm_port_probe_peek_port (probe)),
g_udev_device_get_sysfs_path (udev_port)))
return probe;