diff options
author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-01-19 17:29:55 +0100 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-02-28 16:58:25 +0100 |
commit | 84850f63d36d85116e29b4877bcade44e105ebbf (patch) | |
tree | acfe25d7d290089ef293b65f71aea964a7f391ec | |
parent | 9540ed9f1bcbc85f198ee8b9550b068ebb7dfdb1 (diff) | |
download | hardware_replicant_libsamsung-ril-84850f63d36d85116e29b4877bcade44e105ebbf.tar.gz hardware_replicant_libsamsung-ril-84850f63d36d85116e29b4877bcade44e105ebbf.tar.bz2 hardware_replicant_libsamsung-ril-84850f63d36d85116e29b4877bcade44e105ebbf.zip |
ipc: ipc_rfs_loop: be more verbose about loop failures
This enables to distinguish different kind of loop failures.
The loop handler comes directly from libsamsung-ipc device
drivers, which in turn wrap the vendor kernel interfaces.
Given that there is some possible variation between the way
that the .loop implementations behaves, it's a good idea to
add prints to understand better what is going on in case of
issues.
With the development of a new set of kernel drivers and
libsamsung-ipc device driver for Replicant 11, we had a
situation where that code was triggered.
Note that, at the time of writing, we are not (yet) aware
of any behavior difference with the different .loop
implementations, but it would be worth checking if they all
behave in the same way.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rw-r--r-- | ipc.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -1013,12 +1013,22 @@ int ipc_rfs_loop(struct ril_client *client) eventfd_t event; int rc; - if (client == NULL || client->data == NULL) + if (client == NULL) { + RIL_LOGE("%s client is NULL", client->name); return -1; + } else if (client->data == NULL) { + RIL_LOGE("%s client data is NULL", client->name); + return -1; + } data = (struct ipc_rfs_data *) client->data; - if (data->ipc_client == NULL || data->event_fd < 0) + if (data->ipc_client == NULL) { + RIL_LOGE("%s data ipc_client is NULL", client->name); return -1; + } else if (data->event_fd < 0) { + RIL_LOGE("%s data event_fd < 0", client->name); + return -1; + } memset(&fds, 0, sizeof(fds)); fds.fds = (int *) &fds_array; |