diff mbox series

[v3] bus: mhi: core: Add missing checks for MMIO register entries

Message ID 1615315490-36017-1-git-send-email-bbhatt@codeaurora.org
State Accepted
Commit 8de5ad99414347ad08e6ebc2260be1d2e009cb9a
Headers show
Series [v3] bus: mhi: core: Add missing checks for MMIO register entries | expand

Commit Message

Bhaumik Bhatt March 9, 2021, 6:44 p.m. UTC
As per documentation, fields marked as (required) in an MHI
controller structure need to be populated by the controller driver
before calling mhi_register_controller(). Ensure all required
pointers and non-zero fields are present in the controller before
proceeding with the registration.

Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
---
 v3: removed fw_image as not all controllers require it
 v2: removed iova_start and iova_stop as they can be zero

 drivers/bus/mhi/core/init.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

Comments

Jeffrey Hugo March 9, 2021, 6:56 p.m. UTC | #1
On 3/9/2021 11:44 AM, Bhaumik Bhatt wrote:
> As per documentation, fields marked as (required) in an MHI
> controller structure need to be populated by the controller driver
> before calling mhi_register_controller(). Ensure all required
> pointers and non-zero fields are present in the controller before
> proceeding with the registration.
> 
> Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
> ---

Reviewed-by: Jeffrey Hugo <jhugo@codeaurora.org>
Manivannan Sadhasivam March 10, 2021, 1:51 p.m. UTC | #2
On Tue, Mar 09, 2021 at 10:44:50AM -0800, Bhaumik Bhatt wrote:
> As per documentation, fields marked as (required) in an MHI

> controller structure need to be populated by the controller driver

> before calling mhi_register_controller(). Ensure all required

> pointers and non-zero fields are present in the controller before

> proceeding with the registration.

> 

> Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>


Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>


Thanks,
Mani

> ---

>  v3: removed fw_image as not all controllers require it

>  v2: removed iova_start and iova_stop as they can be zero

> 

>  drivers/bus/mhi/core/init.c | 8 +++-----

>  1 file changed, 3 insertions(+), 5 deletions(-)

> 

> diff --git a/drivers/bus/mhi/core/init.c b/drivers/bus/mhi/core/init.c

> index 272f350..d8882b3 100644

> --- a/drivers/bus/mhi/core/init.c

> +++ b/drivers/bus/mhi/core/init.c

> @@ -879,12 +879,10 @@ int mhi_register_controller(struct mhi_controller *mhi_cntrl,

>  	u32 soc_info;

>  	int ret, i;

>  

> -	if (!mhi_cntrl)

> -		return -EINVAL;

> -

> -	if (!mhi_cntrl->runtime_get || !mhi_cntrl->runtime_put ||

> +	if (!mhi_cntrl || !mhi_cntrl->cntrl_dev || !mhi_cntrl->regs ||

> +	    !mhi_cntrl->runtime_get || !mhi_cntrl->runtime_put ||

>  	    !mhi_cntrl->status_cb || !mhi_cntrl->read_reg ||

> -	    !mhi_cntrl->write_reg || !mhi_cntrl->nr_irqs)

> +	    !mhi_cntrl->write_reg || !mhi_cntrl->nr_irqs || !mhi_cntrl->irq)

>  		return -EINVAL;

>  

>  	ret = parse_config(mhi_cntrl, config);

> -- 

> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

> a Linux Foundation Collaborative Project

>
Manivannan Sadhasivam March 10, 2021, 1:53 p.m. UTC | #3
On Tue, Mar 09, 2021 at 10:44:50AM -0800, Bhaumik Bhatt wrote:
> As per documentation, fields marked as (required) in an MHI

> controller structure need to be populated by the controller driver

> before calling mhi_register_controller(). Ensure all required

> pointers and non-zero fields are present in the controller before

> proceeding with the registration.

> 

> Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>


Applied to mhi-next!

Thanks,
Mani

> ---

>  v3: removed fw_image as not all controllers require it

>  v2: removed iova_start and iova_stop as they can be zero

> 

>  drivers/bus/mhi/core/init.c | 8 +++-----

>  1 file changed, 3 insertions(+), 5 deletions(-)

> 

> diff --git a/drivers/bus/mhi/core/init.c b/drivers/bus/mhi/core/init.c

> index 272f350..d8882b3 100644

> --- a/drivers/bus/mhi/core/init.c

> +++ b/drivers/bus/mhi/core/init.c

> @@ -879,12 +879,10 @@ int mhi_register_controller(struct mhi_controller *mhi_cntrl,

>  	u32 soc_info;

>  	int ret, i;

>  

> -	if (!mhi_cntrl)

> -		return -EINVAL;

> -

> -	if (!mhi_cntrl->runtime_get || !mhi_cntrl->runtime_put ||

> +	if (!mhi_cntrl || !mhi_cntrl->cntrl_dev || !mhi_cntrl->regs ||

> +	    !mhi_cntrl->runtime_get || !mhi_cntrl->runtime_put ||

>  	    !mhi_cntrl->status_cb || !mhi_cntrl->read_reg ||

> -	    !mhi_cntrl->write_reg || !mhi_cntrl->nr_irqs)

> +	    !mhi_cntrl->write_reg || !mhi_cntrl->nr_irqs || !mhi_cntrl->irq)

>  		return -EINVAL;

>  

>  	ret = parse_config(mhi_cntrl, config);

> -- 

> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

> a Linux Foundation Collaborative Project

>
patchwork-bot+linux-arm-msm@kernel.org May 26, 2021, 7:03 p.m. UTC | #4
Hello:

This patch was applied to qcom/linux.git (refs/heads/for-next):

On Tue,  9 Mar 2021 10:44:50 -0800 you wrote:
> As per documentation, fields marked as (required) in an MHI

> controller structure need to be populated by the controller driver

> before calling mhi_register_controller(). Ensure all required

> pointers and non-zero fields are present in the controller before

> proceeding with the registration.

> 

> Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>

> 

> [...]


Here is the summary with links:
  - [v3] bus: mhi: core: Add missing checks for MMIO register entries
    https://git.kernel.org/qcom/c/8de5ad994143

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/bus/mhi/core/init.c b/drivers/bus/mhi/core/init.c
index 272f350..d8882b3 100644
--- a/drivers/bus/mhi/core/init.c
+++ b/drivers/bus/mhi/core/init.c
@@ -879,12 +879,10 @@  int mhi_register_controller(struct mhi_controller *mhi_cntrl,
 	u32 soc_info;
 	int ret, i;
 
-	if (!mhi_cntrl)
-		return -EINVAL;
-
-	if (!mhi_cntrl->runtime_get || !mhi_cntrl->runtime_put ||
+	if (!mhi_cntrl || !mhi_cntrl->cntrl_dev || !mhi_cntrl->regs ||
+	    !mhi_cntrl->runtime_get || !mhi_cntrl->runtime_put ||
 	    !mhi_cntrl->status_cb || !mhi_cntrl->read_reg ||
-	    !mhi_cntrl->write_reg || !mhi_cntrl->nr_irqs)
+	    !mhi_cntrl->write_reg || !mhi_cntrl->nr_irqs || !mhi_cntrl->irq)
 		return -EINVAL;
 
 	ret = parse_config(mhi_cntrl, config);