aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-12-01 21:40:00 +0100
committerAleksander Morgado <aleksander@aleksander.es>2021-12-01 22:12:06 +0100
commite9f254ba3f923248efffe4fd458dc5e5469e0f73 (patch)
tree5ed09a56757a24697ea86fb3fde844d640a9cd7a
parent558a681fc804d89f17d8e6cf9a2270618e8d3442 (diff)
udev: avoid [0-9]* as shell globbing patterns
The udev rules expect matches based on shell globbing pattern, not based on regex. This means that "[0-9]*" doesn't mean "zero or more digits", it actually means "one digit and zero or more other characters". So, avoid the regex like match, even if it worked for us, because it didn't mean what we thought it meant, plus, it breaks our custom udev rules processing logic, in which we convert the input patterns into real regex expressions. See https://bbs.archlinux.org/viewtopic.php?pid=1415916#p1415916 While at it, also make sure that the wildcard matching is done exclusively for prefix and suffix matches, never in the middle of a string, or our custom rules parser would not match correctly.
-rw-r--r--plugins/qcom-soc/77-mm-qcom-soc.rules8
-rw-r--r--src/80-mm-candidate.rules2
2 files changed, 5 insertions, 5 deletions
diff --git a/plugins/qcom-soc/77-mm-qcom-soc.rules b/plugins/qcom-soc/77-mm-qcom-soc.rules
index 6511bf20..9719f96f 100644
--- a/plugins/qcom-soc/77-mm-qcom-soc.rules
+++ b/plugins/qcom-soc/77-mm-qcom-soc.rules
@@ -24,17 +24,17 @@ ENV{ID_MM_QCOM_SOC}="1"
ENV{ID_MM_PHYSDEV_UID}="qcom-soc"
# port type hints for the rpmsgexport-ed ports
-SUBSYSTEM=="rpmsg", ATTR{name}=="DATA[0-9]*_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
-SUBSYSTEM=="rpmsg", ATTR{name}=="DATA[0-9]", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
+SUBSYSTEM=="rpmsg", ATTR{name}=="DATA*", ATTR{name}=="*_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
+SUBSYSTEM=="rpmsg", ATTR{name}=="DATA*", ATTR{name}!="*_CNTL", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
# ignore every other port without explicit hints
SUBSYSTEM=="rpmsg", ENV{ID_MM_PORT_TYPE_QMI}!="1", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}!="1", ENV{ID_MM_PORT_IGNORE}="1"
# explicitly ignore ports intended for USB tethering (DATA40, DATA40_CNTL)
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA40*", ENV{ID_MM_PORT_IGNORE}="1"
-KERNEL=="rmnet_usb[0-9]*", ENV{ID_MM_PORT_IGNORE}="1"
+KERNEL=="rmnet_usb*", ENV{ID_MM_PORT_IGNORE}="1"
# flag all rpmsg ports under this plugin as candidate
-KERNEL=="rpmsg[0-9]*", SUBSYSTEM=="rpmsg", ENV{ID_MM_CANDIDATE}="1"
+KERNEL=="rpmsg*", SUBSYSTEM=="rpmsg", ENV{ID_MM_CANDIDATE}="1"
LABEL="mm_qcom_soc_end"
diff --git a/src/80-mm-candidate.rules b/src/80-mm-candidate.rules
index 2688092b..905dcee3 100644
--- a/src/80-mm-candidate.rules
+++ b/src/80-mm-candidate.rules
@@ -15,7 +15,7 @@ KERNEL=="rfcomm*", DEVPATH=="*/virtual/*", GOTO="mm_candidate_end"
SUBSYSTEM=="tty", ENV{ID_MM_CANDIDATE}="1"
SUBSYSTEM=="net", ENV{ID_MM_CANDIDATE}="1"
-KERNEL=="cdc-wdm[0-9]*", SUBSYSTEM=="usbmisc", ENV{ID_MM_CANDIDATE}="1"
+KERNEL=="cdc-wdm*", SUBSYSTEM=="usbmisc", ENV{ID_MM_CANDIDATE}="1"
# WWAN subsystem port handling
# - All USB devices ignored for now, only PCI devices expected