[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3fa23318-6fa7-eba0-30b8-1fb71e6c327e@huawei.com>
Date: Tue, 6 Sep 2022 11:50:26 +0100
From: John Garry <john.garry@...wei.com>
To: Ethan Zhao <haifeng.zhao@...ux.intel.com>, <robin.murphy@....com>,
<joro@...tes.org>, <will@...nel.org>
CC: <iommu@...ts.linux.dev>, <linux-kernel@...r.kernel.org>,
<linuxarm@...wei.com>
Subject: Re: [PATCH v2 1/2] iova: Remove some magazine pointer NULL checks
On 06/09/2022 10:28, Ethan Zhao wrote:
Hi Ethan,
>> Signed-off-by: John Garry <john.garry@...wei.com>
>> Reviewed-by: Robin Murphy <robin.murphy@....com>
>> ---
>> drivers/iommu/iova.c | 7 ++-----
>> 1 file changed, 2 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c
>> index 47d1983dfa2a..580fdf669922 100644
>> --- a/drivers/iommu/iova.c
>> +++ b/drivers/iommu/iova.c
>> @@ -661,9 +661,6 @@ iova_magazine_free_pfns(struct iova_magazine *mag,
>> struct iova_domain *iovad)
>> unsigned long flags;
>> int i;
>> - if (!mag)
>> - return;
>> -
>
> iommu_probe_device
> ops->probe_finalize(dev);
> intel_iommu_probe_finalize
> iommu_setup_dma_ops
> iommu_dma_init_domain(domain, dma_base, dma_limit, dev)
> iova_domain_init_rcaches
> {
> ...
> cpu_rcache->loaded = iova_magazine_alloc(GFP_KERNEL);
> cpu_rcache->prev = iova_magazine_alloc(GFP_KERNEL);
> if (!cpu_rcache->loaded || !cpu_rcache->prev) {
> ret = -ENOMEM;
> goto out_err;
>
> Do you mean iova_magazine_alloc() is impossible to fail ?
No, iova_magazine_alloc() may fail and return NULL. But if it does then
we set iovad rcache pointer = NULL in the error path and don't use the
rcache.
However we have a !iovad->rcache check on the "fast" alloc but not
"insert". I need to check why that is again.
Thanks,
john
Powered by blists - more mailing lists