From 5f0efb94fa2ed9bf01fd9dd4f387a5a1803b6a1c Mon Sep 17 00:00:00 2001 From: Fabio Baltieri Date: Thu, 31 Aug 2023 22:17:18 +0000 Subject: [PATCH] modem: modem_chat,modem_cmux: fix mismatched CONTAINER_OF Add a missing k_work_delayable_from_work to go from k_work to k_work_delayable. Signed-off-by: Fabio Baltieri --- drivers/modem/modem_cellular.c | 3 ++- subsys/modem/modem_chat.c | 12 ++++++++---- subsys/modem/modem_cmux.c | 18 ++++++++++++------ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/drivers/modem/modem_cellular.c b/drivers/modem/modem_cellular.c index be77e9ae439..b72adcafc6f 100644 --- a/drivers/modem/modem_cellular.c +++ b/drivers/modem/modem_cellular.c @@ -354,8 +354,9 @@ static void modem_cellular_stop_timer(struct modem_cellular_data *data) static void modem_cellular_timeout_handler(struct k_work *item) { + struct k_work_delayable *dwork = k_work_delayable_from_work(item); struct modem_cellular_data *data = - CONTAINER_OF(item, struct modem_cellular_data, timeout_work); + CONTAINER_OF(dwork, struct modem_cellular_data, timeout_work); modem_cellular_delegate_event(data, MODEM_CELLULAR_EVENT_TIMEOUT); } diff --git a/subsys/modem/modem_chat.c b/subsys/modem/modem_chat.c index f603cfbefed..27f958dc7b5 100644 --- a/subsys/modem/modem_chat.c +++ b/subsys/modem/modem_chat.c @@ -165,7 +165,8 @@ static void modem_chat_script_run_handler(struct k_work *item) static void modem_chat_script_timeout_handler(struct k_work *item) { - struct modem_chat *chat = CONTAINER_OF(item, struct modem_chat, script_timeout_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_chat *chat = CONTAINER_OF(dwork, struct modem_chat, script_timeout_work); /* Abort script */ modem_chat_script_stop(chat, MODEM_CHAT_SCRIPT_RESULT_TIMEOUT); @@ -274,7 +275,8 @@ static uint16_t modem_chat_script_chat_get_send_timeout(struct modem_chat *chat) static void modem_chat_script_send_handler(struct k_work *item) { - struct modem_chat *chat = CONTAINER_OF(item, struct modem_chat, script_send_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_chat *chat = CONTAINER_OF(dwork, struct modem_chat, script_send_work); uint16_t timeout; /* Validate script running */ @@ -308,7 +310,8 @@ static void modem_chat_script_send_handler(struct k_work *item) static void modem_chat_script_send_timeout_handler(struct k_work *item) { - struct modem_chat *chat = CONTAINER_OF(item, struct modem_chat, script_send_timeout_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_chat *chat = CONTAINER_OF(dwork, struct modem_chat, script_send_timeout_work); /* Validate script is currently running */ if (chat->script == NULL) { @@ -644,7 +647,8 @@ static void modem_chat_process_bytes(struct modem_chat *chat) static void modem_chat_process_handler(struct k_work *item) { - struct modem_chat *chat = CONTAINER_OF(item, struct modem_chat, process_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_chat *chat = CONTAINER_OF(dwork, struct modem_chat, process_work); int ret; /* Fill work buffer */ diff --git a/subsys/modem/modem_cmux.c b/subsys/modem/modem_cmux.c index cd45d7f5752..d91514d6178 100644 --- a/subsys/modem/modem_cmux.c +++ b/subsys/modem/modem_cmux.c @@ -667,7 +667,8 @@ static void modem_cmux_process_received_byte(struct modem_cmux *cmux, uint8_t by static void modem_cmux_receive_handler(struct k_work *item) { - struct modem_cmux *cmux = CONTAINER_OF(item, struct modem_cmux, receive_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_cmux *cmux = CONTAINER_OF(dwork, struct modem_cmux, receive_work); uint8_t buf[16]; int ret; @@ -688,7 +689,8 @@ static void modem_cmux_receive_handler(struct k_work *item) static void modem_cmux_transmit_handler(struct k_work *item) { - struct modem_cmux *cmux = CONTAINER_OF(item, struct modem_cmux, transmit_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_cmux *cmux = CONTAINER_OF(dwork, struct modem_cmux, transmit_work); uint8_t *reserved; uint32_t reserved_size; int ret; @@ -721,7 +723,8 @@ static void modem_cmux_transmit_handler(struct k_work *item) static void modem_cmux_connect_handler(struct k_work *item) { - struct modem_cmux *cmux = CONTAINER_OF(item, struct modem_cmux, connect_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_cmux *cmux = CONTAINER_OF(dwork, struct modem_cmux, connect_work); cmux->state = MODEM_CMUX_STATE_CONNECTING; @@ -740,7 +743,8 @@ static void modem_cmux_connect_handler(struct k_work *item) static void modem_cmux_disconnect_handler(struct k_work *item) { - struct modem_cmux *cmux = CONTAINER_OF(item, struct modem_cmux, disconnect_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_cmux *cmux = CONTAINER_OF(dwork, struct modem_cmux, disconnect_work); struct modem_cmux_command *command; uint8_t data[2]; @@ -828,7 +832,8 @@ struct modem_pipe_api modem_cmux_dlci_pipe_api = { static void modem_cmux_dlci_open_handler(struct k_work *item) { - struct modem_cmux_dlci *dlci = CONTAINER_OF(item, struct modem_cmux_dlci, open_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_cmux_dlci *dlci = CONTAINER_OF(dwork, struct modem_cmux_dlci, open_work); dlci->state = MODEM_CMUX_DLCI_STATE_OPENING; @@ -847,7 +852,8 @@ static void modem_cmux_dlci_open_handler(struct k_work *item) static void modem_cmux_dlci_close_handler(struct k_work *item) { - struct modem_cmux_dlci *dlci = CONTAINER_OF(item, struct modem_cmux_dlci, close_work); + struct k_work_delayable *dwork = k_work_delayable_from_work(item); + struct modem_cmux_dlci *dlci = CONTAINER_OF(dwork, struct modem_cmux_dlci, close_work); struct modem_cmux *cmux = dlci->cmux; dlci->state = MODEM_CMUX_DLCI_STATE_CLOSING;