On Tue, Sep 3, 2019 at 7:43 PM Fabio Estevam <festevam@xxxxxxxxx> wrote: > > Hi Andrey, > > On Tue, Sep 3, 2019 at 11:37 PM Andrey Smirnov <andrew.smirnov@xxxxxxxxx> wrote: > > > > Use devres to unmap memory and drop explicit de-initialization > > code. > > > > NOTE: There's no corresponding unmapping code in caam_jr_remove which > > seems like a resource leak. > > > > Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> > > Cc: Chris Healy <cphealy@xxxxxxxxx> > > Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > > Cc: Horia Geantă <horia.geanta@xxxxxxx> > > Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > > Cc: Iuliana Prodan <iuliana.prodan@xxxxxxx> > > Cc: linux-crypto@xxxxxxxxxxxxxxx > > Cc: linux-kernel@xxxxxxxxxxxxxxx > > --- > > drivers/crypto/caam/jr.c | 13 +++++++++---- > > 1 file changed, 9 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c > > index 417ad52615c6..7947d61a25cf 100644 > > --- a/drivers/crypto/caam/jr.c > > +++ b/drivers/crypto/caam/jr.c > > @@ -498,6 +498,7 @@ static int caam_jr_probe(struct platform_device *pdev) > > struct caam_job_ring __iomem *ctrl; > > struct caam_drv_private_jr *jrpriv; > > static int total_jobrs; > > + struct resource *r; > > int error; > > > > jrdev = &pdev->dev; > > @@ -513,9 +514,15 @@ static int caam_jr_probe(struct platform_device *pdev) > > nprop = pdev->dev.of_node; > > /* Get configuration properties from device tree */ > > /* First, get register page */ > > - ctrl = of_iomap(nprop, 0); > > + r = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > + if (!r) { > > + dev_err(jrdev, "platform_get_resource() failed\n"); > > + return -ENOMEM; > > + } > > + > > + ctrl = devm_ioremap(jrdev, r->start, resource_size(r)); > > It seems that using devm_platform_ioremap_resource() could make the > code even smaller. Unfortunately that function would do devm_ioremap_resource() under the hood and claim the ownership of the corresponding memory region. That's going to create a conflict with devm_of_iomap() used in "crypto: caam - use devres to unmap memory". Thanks, Andrey Smirnov