[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DB6PR04MB32219685985135A408F39FFB88250@DB6PR04MB3221.eurprd04.prod.outlook.com>
Date: Mon, 27 Nov 2017 04:15:55 +0000
From: Peng Fan <peng.fan@....com>
To: "hch@....de" <hch@....de>,
"m.szyprowski@...sung.com" <m.szyprowski@...sung.com>,
"robin.murphy@....com" <robin.murphy@....com>,
"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"robh+dt@...nel.org" <robh+dt@...nel.org>,
"frowand.list@...il.com" <frowand.list@...il.com>
CC: "iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"van.freenix@...il.com" <van.freenix@...il.com>
Subject: RE: [RFC 1/2] of: reserved_mem: check return value of_dma_configure
> -----Original Message-----
> From: Peng Fan
> Sent: Sunday, November 26, 2017 9:14 PM
> To: hch@....de; m.szyprowski@...sung.com; robin.murphy@....com;
> gregkh@...uxfoundation.org; robh+dt@...nel.org; frowand.list@...il.com
> Cc: iommu@...ts.linux-foundation.org; linux-kernel@...r.kernel.org;
> devicetree@...r.kernel.org; van.freenix@...il.com; Peng Fan
> <peng.fan@....com>
> Subject: [RFC 1/2] of: reserved_mem: check return value of_dma_configure
>
> In commit <7b07cbefb6>("iommu: of: Handle IOMMU lookup failure with
> deferred probing or error"), there is possibility that of_dma_configure may fail.
> So in of_reserved_mem_device_init_by_idx,
> also need to propagate the return value of_dma_configure to caller, when
> need to use reserved memory for a device which needs iommu.
Seems my understanding is wrong, with iommu enabled, reserved memory will not be used
for devices with memory-region. Please still help review RFC 2/2.
Thanks,
Peng.
>
> Signed-off-by: Peng Fan <peng.fan@....com>
> ---
> drivers/of/of_reserved_mem.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
> index 22b75c82e377..61523819b50e 100644
> --- a/drivers/of/of_reserved_mem.c
> +++ b/drivers/of/of_reserved_mem.c
> @@ -357,9 +357,12 @@ int of_reserved_mem_device_init_by_idx(struct
> device *dev,
> /* ensure that dma_ops is set for virtual devices
> * using reserved memory
> */
> - of_dma_configure(dev, np);
> -
> - dev_info(dev, "assigned reserved memory node %s\n", rmem-
> >name);
> + ret = of_dma_configure(dev, np);
> + if (ret)
> + of_reserved_mem_device_release(dev);
> + else
> + dev_info(dev, "assigned reserved memory node %s\n",
> + rmem->name);
> } else {
> kfree(rd);
> }
> --
> 2.14.1
Powered by blists - more mailing lists