diff mbox series

[net] net: ipa: terminate message handler arrays

Message ID 20210312151249.481395-1-elder@linaro.org
State New
Headers show
Series [net] net: ipa: terminate message handler arrays | expand

Commit Message

Alex Elder March 12, 2021, 3:12 p.m. UTC
When a QMI handle is initialized, an array of message handler
structures is provided, defining how any received message should
be handled based on its type and message ID.  The QMI core code
traverses this array when a message arrives and calls the function
associated with the (type, msg_id) found in the array.

The array is supposed to be terminated with an empty (all zero)
entry though.  Without it, an unsupported message will cause
the QMI core code to go past the end of the array.

Fix this bug, by properly terminating the message handler arrays
provided when QMI handles are set up by the IPA driver.

Fixes: 530f9216a9537 ("soc: qcom: ipa: AP/modem communications")
Reported-by: Sujit Kautkar <sujitka@chromium.org>
Signed-off-by: Alex Elder <elder@linaro.org>

---
 drivers/net/ipa/ipa_qmi.c | 2 ++
 1 file changed, 2 insertions(+)

-- 
2.27.0

Comments

Bjorn Andersson March 12, 2021, 4:58 p.m. UTC | #1
On Fri 12 Mar 09:12 CST 2021, Alex Elder wrote:

> When a QMI handle is initialized, an array of message handler

> structures is provided, defining how any received message should

> be handled based on its type and message ID.  The QMI core code

> traverses this array when a message arrives and calls the function

> associated with the (type, msg_id) found in the array.

> 

> The array is supposed to be terminated with an empty (all zero)

> entry though.  Without it, an unsupported message will cause

> the QMI core code to go past the end of the array.

> 

> Fix this bug, by properly terminating the message handler arrays

> provided when QMI handles are set up by the IPA driver.

> 


Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>


Regards,
Bjorn

> Fixes: 530f9216a9537 ("soc: qcom: ipa: AP/modem communications")

> Reported-by: Sujit Kautkar <sujitka@chromium.org>

> Signed-off-by: Alex Elder <elder@linaro.org>

> ---

>  drivers/net/ipa/ipa_qmi.c | 2 ++

>  1 file changed, 2 insertions(+)

> 

> diff --git a/drivers/net/ipa/ipa_qmi.c b/drivers/net/ipa/ipa_qmi.c

> index 2fc64483f2753..e594bf3b600f0 100644

> --- a/drivers/net/ipa/ipa_qmi.c

> +++ b/drivers/net/ipa/ipa_qmi.c

> @@ -249,6 +249,7 @@ static const struct qmi_msg_handler ipa_server_msg_handlers[] = {

>  		.decoded_size	= IPA_QMI_DRIVER_INIT_COMPLETE_REQ_SZ,

>  		.fn		= ipa_server_driver_init_complete,

>  	},

> +	{ },

>  };

>  

>  /* Handle an INIT_DRIVER response message from the modem. */

> @@ -269,6 +270,7 @@ static const struct qmi_msg_handler ipa_client_msg_handlers[] = {

>  		.decoded_size	= IPA_QMI_INIT_DRIVER_RSP_SZ,

>  		.fn		= ipa_client_init_driver,

>  	},

> +	{ },

>  };

>  

>  /* Return a pointer to an init modem driver request structure, which contains

> -- 

> 2.27.0

>
patchwork-bot+netdevbpf@kernel.org March 13, 2021, 10:30 p.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (refs/heads/master):

On Fri, 12 Mar 2021 09:12:48 -0600 you wrote:
> When a QMI handle is initialized, an array of message handler

> structures is provided, defining how any received message should

> be handled based on its type and message ID.  The QMI core code

> traverses this array when a message arrives and calls the function

> associated with the (type, msg_id) found in the array.

> 

> The array is supposed to be terminated with an empty (all zero)

> entry though.  Without it, an unsupported message will cause

> the QMI core code to go past the end of the array.

> 

> [...]


Here is the summary with links:
  - [net] net: ipa: terminate message handler arrays
    https://git.kernel.org/netdev/net/c/3a9ef3e11c5d

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/drivers/net/ipa/ipa_qmi.c b/drivers/net/ipa/ipa_qmi.c
index 2fc64483f2753..e594bf3b600f0 100644
--- a/drivers/net/ipa/ipa_qmi.c
+++ b/drivers/net/ipa/ipa_qmi.c
@@ -249,6 +249,7 @@  static const struct qmi_msg_handler ipa_server_msg_handlers[] = {
 		.decoded_size	= IPA_QMI_DRIVER_INIT_COMPLETE_REQ_SZ,
 		.fn		= ipa_server_driver_init_complete,
 	},
+	{ },
 };
 
 /* Handle an INIT_DRIVER response message from the modem. */
@@ -269,6 +270,7 @@  static const struct qmi_msg_handler ipa_client_msg_handlers[] = {
 		.decoded_size	= IPA_QMI_INIT_DRIVER_RSP_SZ,
 		.fn		= ipa_client_init_driver,
 	},
+	{ },
 };
 
 /* Return a pointer to an init modem driver request structure, which contains