2021-12-12 07:13:08

by Miaoqian Lin

[permalink] [raw]
Subject: [PATCH] soc: ti: Fix NULL vs IS_ERR() checking in dma_init

Since devm_ioremap_resource() function return error pointers.
The pktdma_get_regs() function does not return NULL, It return error
pointers too. Using IS_ERR() to check the return value to fix this.

Signed-off-by: Miaoqian Lin <[email protected]>
---
drivers/soc/ti/knav_dma.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/soc/ti/knav_dma.c b/drivers/soc/ti/knav_dma.c
index 591d14ebcb11..9f82cf906949 100644
--- a/drivers/soc/ti/knav_dma.c
+++ b/drivers/soc/ti/knav_dma.c
@@ -646,31 +646,31 @@ static int dma_init(struct device_node *cloud, struct device_node *dma_node)
}

dma->reg_global = pktdma_get_regs(dma, node, 0, &size);
- if (!dma->reg_global)
- return -ENODEV;
+ if (IS_ERR(dma->reg_global))
+ return PTR_ERR(dma->reg_global);
if (size < sizeof(struct reg_global)) {
dev_err(kdev->dev, "bad size %pa for global regs\n", &size);
return -ENODEV;
}

dma->reg_tx_chan = pktdma_get_regs(dma, node, 1, &size);
- if (!dma->reg_tx_chan)
- return -ENODEV;
+ if (IS_ERR(dma->reg_tx_cha))
+ return PTR_ERR(dma->reg_tx_cha);

max_tx_chan = size / sizeof(struct reg_chan);
dma->reg_rx_chan = pktdma_get_regs(dma, node, 2, &size);
- if (!dma->reg_rx_chan)
- return -ENODEV;
+ if (IS_ERR(dma->reg_rx_chan))
+ return PTR_ERR(dma->reg_rx_chan);

max_rx_chan = size / sizeof(struct reg_chan);
dma->reg_tx_sched = pktdma_get_regs(dma, node, 3, &size);
- if (!dma->reg_tx_sched)
- return -ENODEV;
+ if (IS_ERR(dma->reg_tx_sched))
+ return PTR_ERR(dma->reg_tx_sched);

max_tx_sched = size / sizeof(struct reg_tx_sched);
dma->reg_rx_flow = pktdma_get_regs(dma, node, 4, &size);
- if (!dma->reg_rx_flow)
- return -ENODEV;
+ if (IS_ERR(dma->reg_rx_flow))
+ return PTR_ERR(dma->reg_rx_flow);

max_rx_flow = size / sizeof(struct reg_rx_flow);
dma->rx_priority = DMA_PRIO_DEFAULT;
--
2.17.1



2021-12-13 15:59:51

by Nishanth Menon

[permalink] [raw]
Subject: Re: [PATCH] soc: ti: Fix NULL vs IS_ERR() checking in dma_init

On 07:13-20211212, Miaoqian Lin wrote:
> Since devm_ioremap_resource() function return error pointers.
> The pktdma_get_regs() function does not return NULL, It return error
> pointers too. Using IS_ERR() to check the return value to fix this.

Thanks.. but..
>
> Signed-off-by: Miaoqian Lin <[email protected]>
> ---
> drivers/soc/ti/knav_dma.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/soc/ti/knav_dma.c b/drivers/soc/ti/knav_dma.c
> index 591d14ebcb11..9f82cf906949 100644
> --- a/drivers/soc/ti/knav_dma.c
> +++ b/drivers/soc/ti/knav_dma.c
> @@ -646,31 +646,31 @@ static int dma_init(struct device_node *cloud, struct device_node *dma_node)
> }

[...]

>
> dma->reg_tx_chan = pktdma_get_regs(dma, node, 1, &size);
> - if (!dma->reg_tx_chan)
> - return -ENODEV;
> + if (IS_ERR(dma->reg_tx_cha))
> + return PTR_ERR(dma->reg_tx_cha);

Did you mean reg_tx_chan instead of reg_tx_cha ?


--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D)/Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D

2021-12-14 01:56:05

by Miaoqian Lin

[permalink] [raw]
Subject: [PATCH v2] soc: ti: Fix NULL vs IS_ERR() checking in dma_init

Since devm_ioremap_resource() function return error pointers.
The pktdma_get_regs() function does not return NULL, It return error
pointers too. Using IS_ERR() to check the return value to fix this.
---
Changes in v2:
fix wrong variable name.
---
Signed-off-by: Miaoqian Lin <[email protected]>
---
drivers/soc/ti/knav_dma.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/soc/ti/knav_dma.c b/drivers/soc/ti/knav_dma.c
index 591d14ebcb11..700d8eecd8c4 100644
--- a/drivers/soc/ti/knav_dma.c
+++ b/drivers/soc/ti/knav_dma.c
@@ -646,31 +646,31 @@ static int dma_init(struct device_node *cloud, struct device_node *dma_node)
}

dma->reg_global = pktdma_get_regs(dma, node, 0, &size);
- if (!dma->reg_global)
- return -ENODEV;
+ if (IS_ERR(dma->reg_global))
+ return PTR_ERR(dma->reg_global);
if (size < sizeof(struct reg_global)) {
dev_err(kdev->dev, "bad size %pa for global regs\n", &size);
return -ENODEV;
}

dma->reg_tx_chan = pktdma_get_regs(dma, node, 1, &size);
- if (!dma->reg_tx_chan)
- return -ENODEV;
+ if (IS_ERR(dma->reg_tx_chan))
+ return PTR_ERR(dma->reg_tx_chan);

max_tx_chan = size / sizeof(struct reg_chan);
dma->reg_rx_chan = pktdma_get_regs(dma, node, 2, &size);
- if (!dma->reg_rx_chan)
- return -ENODEV;
+ if (IS_ERR(dma->reg_rx_chan))
+ return PTR_ERR(dma->reg_rx_chan);

max_rx_chan = size / sizeof(struct reg_chan);
dma->reg_tx_sched = pktdma_get_regs(dma, node, 3, &size);
- if (!dma->reg_tx_sched)
- return -ENODEV;
+ if (IS_ERR(dma->reg_tx_sched))
+ return PTR_ERR(dma->reg_tx_sched);

max_tx_sched = size / sizeof(struct reg_tx_sched);
dma->reg_rx_flow = pktdma_get_regs(dma, node, 4, &size);
- if (!dma->reg_rx_flow)
- return -ENODEV;
+ if (IS_ERR(dma->reg_rx_flow))
+ return PTR_ERR(dma->reg_rx_flow);

max_rx_flow = size / sizeof(struct reg_rx_flow);
dma->rx_priority = DMA_PRIO_DEFAULT;
--
2.17.1


2021-12-16 12:46:58

by Nishanth Menon

[permalink] [raw]
Subject: Re: [PATCH v2] soc: ti: Fix NULL vs IS_ERR() checking in dma_init

Hi Miaoqian Lin,

On Tue, 14 Dec 2021 01:55:44 +0000, Miaoqian Lin wrote:
> Since devm_ioremap_resource() function return error pointers.
> The pktdma_get_regs() function does not return NULL, It return error
> pointers too. Using IS_ERR() to check the return value to fix this.
>
>

I have applied the following to branch ti-drivers-soc-next on [1].
Thank you!

[1/1] soc: ti: Fix NULL vs IS_ERR() checking in dma_init
commit: 1bb0b8b195d821d009bae61248da14f2b17bd44a

Side note: For future reference, I had to fixup your patch for $subject (added
knav_dma) and the usage of --- diffstat section to indicate changes or version
history - see updated patch in [2].

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
[2] https://gist.github.com/nmenon/e6464f84bbcd63a25a7011fd4dbc85ba
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D)/Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D