* [bug report] mtd: rawnand: cadence: use dma_map_resource for sdma address
@ 2025-02-13 7:13 Dan Carpenter
2025-02-13 7:33 ` Rabara, Niravkumar L
0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2025-02-13 7:13 UTC (permalink / raw)
To: Niravkumar L Rabara; +Cc: linux-mtd
Hello Niravkumar L Rabara,
This is a semi-automatic email about new static checker warnings.
Commit d76d22b5096c ("mtd: rawnand: cadence: use dma_map_resource for
sdma address") from Feb 10, 2025, leads to the following Smatch
complaint:
drivers/mtd/nand/raw/cadence-nand-controller.c:2982 cadence_nand_remove()
warn: variable dereferenced before check 'cdns_ctrl->dmac' (see line 2975)
drivers/mtd/nand/raw/cadence-nand-controller.c
2974 cadence_nand_chips_cleanup(cdns_ctrl);
2975 dma_unmap_resource(cdns_ctrl->dmac->device->dev, cdns_ctrl->io.iova_dma,
^^^^^^^^^^^^^^^
The patch adds an unchecked dereference
2976 cdns_ctrl->io.size, DMA_BIDIRECTIONAL, 0);
2977 cadence_nand_irq_cleanup(cdns_ctrl->irq, cdns_ctrl);
2978 kfree(cdns_ctrl->buf);
2979 dma_free_coherent(cdns_ctrl->dev, sizeof(struct cadence_nand_cdma_desc),
2980 cdns_ctrl->cdma_desc, cdns_ctrl->dma_cdma_desc);
2981
2982 if (cdns_ctrl->dmac)
^^^^^^^^^^^^^^^
But the old code assumed ->dmac could be NULL
2983 dma_release_channel(cdns_ctrl->dmac);
2984 }
regards,
dan carpenter
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 3+ messages in thread* RE: [bug report] mtd: rawnand: cadence: use dma_map_resource for sdma address
2025-02-13 7:13 [bug report] mtd: rawnand: cadence: use dma_map_resource for sdma address Dan Carpenter
@ 2025-02-13 7:33 ` Rabara, Niravkumar L
2025-02-13 9:50 ` Dan Carpenter
0 siblings, 1 reply; 3+ messages in thread
From: Rabara, Niravkumar L @ 2025-02-13 7:33 UTC (permalink / raw)
To: Dan Carpenter; +Cc: linux-mtd@lists.infradead.org
Hi Dan,
> -----Original Message-----
> From: Dan Carpenter <dan.carpenter@linaro.org>
> Sent: Thursday, 13 February, 2025 3:13 PM
> To: Rabara, Niravkumar L <niravkumar.l.rabara@intel.com>
> Cc: linux-mtd@lists.infradead.org
> Subject: [bug report] mtd: rawnand: cadence: use dma_map_resource for
> sdma address
>
> Hello Niravkumar L Rabara,
>
> This is a semi-automatic email about new static checker warnings.
>
> Commit d76d22b5096c ("mtd: rawnand: cadence: use dma_map_resource for
> sdma address") from Feb 10, 2025, leads to the following Smatch
> complaint:
>
> drivers/mtd/nand/raw/cadence-nand-controller.c:2982
> cadence_nand_remove()
> warn: variable dereferenced before check 'cdns_ctrl->dmac' (see line 2975)
>
> drivers/mtd/nand/raw/cadence-nand-controller.c
> 2974 cadence_nand_chips_cleanup(cdns_ctrl);
> 2975 dma_unmap_resource(cdns_ctrl->dmac->device->dev,
> cdns_ctrl->io.iova_dma,
> ^^^^^^^^^^^^^^^ The patch adds an unchecked
> dereference
>
> 2976 cdns_ctrl->io.size, DMA_BIDIRECTIONAL, 0);
> 2977 cadence_nand_irq_cleanup(cdns_ctrl->irq, cdns_ctrl);
> 2978 kfree(cdns_ctrl->buf);
> 2979 dma_free_coherent(cdns_ctrl->dev, sizeof(struct
> cadence_nand_cdma_desc),
> 2980 cdns_ctrl->cdma_desc, cdns_ctrl-
> >dma_cdma_desc);
> 2981
> 2982 if (cdns_ctrl->dmac)
> ^^^^^^^^^^^^^^^
> But the old code assumed ->dmac could be NULL
>
> 2983 dma_release_channel(cdns_ctrl->dmac);
> 2984 }
>
I missed this.
I will add a NULL check before the dma_unmap_resource()
if (cdns_ctrl->dmac)
dma_unmap_resource(cdns_ctrl->dmac->device->dev, cdns_ctrl->io.iova_dma,
cdns_ctrl->io.size, DMA_BIDIRECTIONAL, 0);
Shall I submit a new version of this patch?
Do I need to include any additional tag or info?
Thanks,
Nirav
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [bug report] mtd: rawnand: cadence: use dma_map_resource for sdma address
2025-02-13 7:33 ` Rabara, Niravkumar L
@ 2025-02-13 9:50 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2025-02-13 9:50 UTC (permalink / raw)
To: Rabara, Niravkumar L; +Cc: linux-mtd@lists.infradead.org
On Thu, Feb 13, 2025 at 07:33:49AM +0000, Rabara, Niravkumar L wrote:
>
> I missed this.
> I will add a NULL check before the dma_unmap_resource()
>
> if (cdns_ctrl->dmac)
> dma_unmap_resource(cdns_ctrl->dmac->device->dev, cdns_ctrl->io.iova_dma,
> cdns_ctrl->io.size, DMA_BIDIRECTIONAL, 0);
>
> Shall I submit a new version of this patch?
> Do I need to include any additional tag or info?
I don't really know how it's handled in mtd.
Generally, I would send a patch just to fix the bug. You would want to
have a Fixes tag and a Reported-by tag. Some subsystems fold fixes into
the original commit before sending and some don't. Either way, the
maintainer can figure it out.
regards,
dan carpenter
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-02-13 9:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-13 7:13 [bug report] mtd: rawnand: cadence: use dma_map_resource for sdma address Dan Carpenter
2025-02-13 7:33 ` Rabara, Niravkumar L
2025-02-13 9:50 ` Dan Carpenter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox