mirror of git://git.sysmocom.de/ofono
qmi_device_shutdown allocated a new orphaned data structure and kicked off a timeout to wait for the shutdown to complete. The logic was quite racy, but the main issue was that the timeouts could not be canceled when the underlying qmi_device object was destroyed. This resulted in crashes. This patch switches to first-past-the-gate mechanism. Since only the modem driver should be issuing a qmi_device_shutdown call, this should not be a limitation. The shutdown source is then tracked on the qmi_device object itself and is canceled when the qmi_device object is freed. As an added bonus, the shutdown_destroy callback should now actually function. Before it was simply never called. |
||
---|---|---|
.. | ||
common.h | ||
ctl.h | ||
devinfo.c | ||
dms.h | ||
gprs-context.c | ||
gprs.c | ||
location-reporting.c | ||
nas.h | ||
network-registration.c | ||
pds.h | ||
qmi.c | ||
qmi.h | ||
qmimodem.c | ||
qmimodem.h | ||
radio-settings.c | ||
sim-legacy.c | ||
sim.c | ||
sms.c | ||
uim.h | ||
ussd.c | ||
util.h | ||
voicecall.c | ||
wda.h | ||
wds.h | ||
wms.h |