aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Schrock <steve.schrock@getcruise.com>2024-04-19 16:44:52 +0000
committerDenis Kenzior <denkenz@gmail.com>2024-04-22 09:24:32 -0500
commit39b7437a004461f104f9e28372a6e73e126239ec (patch)
tree940354bfd96cda4770d806b84ed2913657f17fc6
parent279b04c15127499e52532ac08d947d45a48605e6 (diff)
downloadofono-39b7437a004461f104f9e28372a6e73e126239ec.tar.gz
qmi: Eliminate atomic ref counting
This code is single-threaded so there is no need to use atomics. While here simplify qmi_service_ref.
-rw-r--r--drivers/qmimodem/qmi.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/qmimodem/qmi.c b/drivers/qmimodem/qmi.c
index 7f91b57d1..0811eaf2f 100644
--- a/drivers/qmimodem/qmi.c
+++ b/drivers/qmimodem/qmi.c
@@ -2660,10 +2660,8 @@ bool qmi_service_create(struct qmi_device *device,
struct qmi_service *qmi_service_ref(struct qmi_service *service)
{
- if (!service)
- return NULL;
-
- __sync_fetch_and_add(&service->ref_count, 1);
+ if (service)
+ service->ref_count++;
return service;
}
@@ -2676,7 +2674,7 @@ void qmi_service_unref(struct qmi_service *service)
if (!service)
return;
- if (__sync_sub_and_fetch(&service->ref_count, 1))
+ if (--service->ref_count)
return;
device = service->device;