modemmanager: fix device unplug handling
authorAleksander Morgado <aleksander@aleksander.es>
Wed, 20 Nov 2019 11:49:11 +0000 (12:49 +0100)
committerAleksander Morgado <aleksander@aleksander.es>
Wed, 27 Nov 2019 08:28:10 +0000 (09:28 +0100)
commita684cdbab0495e133e9155f33a16c866986187cf
tree18a0d019f1693192c8af8d265abe049bf8313a06
parentcc4ee2fd3c7ce84ec90c60778caf46bf4342f7d0
modemmanager: fix device unplug handling

When a USB modem device is unplugged, we had to do two different
things: first, cleanup the sysfs cache; and second, set interface as
unavailable.

Those two things were never being done properly due to several
different issues:

 * The parent sysfs path retrieval logic relies on checking for which
 sysfs path has the vid/pid files. This logic obviously only works
 when the device is available, and cannot be used on e.g. removal
 events.

 * The command to cleanup the modem wait status from the sysfs cache
 was not removing the previous state properly, because the sysfs path
 variable wasn't escaped properly for the sed command.

This patch handles those issues in order to have a proper device
removal handling, by making sure the sysfs path is properly escaped in
the sed command, and by introducing a new hotplug script that runs
when the full USB device is removed.

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
net/modemmanager/Makefile
net/modemmanager/files/25-modemmanager-usb [new file with mode: 0644]
net/modemmanager/files/modemmanager.common