diff options
author | Steve Schrock <steve.schrock@getcruise.com> | 2024-03-18 13:37:48 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2024-03-18 16:17:02 -0500 |
commit | a703d1cc8e7edb4c3310b81f179936b547e06fdf (patch) | |
tree | 5d595be878cad07e75c6ec4965f465f368c056b7 | |
parent | 85c935720dbd1f33bb98ec32713f9eda40ec5bfc (diff) | |
download | ofono-a703d1cc8e7edb4c3310b81f179936b547e06fdf.tar.gz |
qmi: Allow QRTR services to be destroyed
QRTR services were never being destroyed because they were being
created with a reference count of 1 and immediately incrementing the
count to 2.
-rw-r--r-- | drivers/qmimodem/qmi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/qmimodem/qmi.c b/drivers/qmimodem/qmi.c index 9a7fc4a33..b92bcfa03 100644 --- a/drivers/qmimodem/qmi.c +++ b/drivers/qmimodem/qmi.c @@ -2581,7 +2581,8 @@ bool qmi_service_create_shared(struct qmi_device *device, uint16_t type, service = service_create(device, info, 0); l_hashmap_insert(device->service_list, L_UINT_TO_PTR(type_val), service); - } + } else + service = qmi_service_ref(service); data = l_new(struct service_create_shared_data, 1); @@ -2590,8 +2591,8 @@ bool qmi_service_create_shared(struct qmi_device *device, uint16_t type, data->func = func; data->user_data = user_data; data->destroy = destroy; + data->service = service; - data->service = qmi_service_ref(service); data->idle = l_idle_create(service_create_shared_reply, data, NULL); |