[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170830133112.btbsmgbm2clz4767@8bytes.org>
Date: Wed, 30 Aug 2017 15:31:12 +0200
From: Joerg Roedel <joro@...tes.org>
To: Filippo Sironi <sironi@...zon.de>
Cc: iommu@...ts.linux-foundation.org, linux-kernel@...r.kernel.org,
David Woodhouse <dwmw@...zon.co.uk>,
David Woodhouse <dwmw2@...radead.org>
Subject: Re: [PATCH] intel-iommu: Don't be too aggressive when clearing one
context entry
Hi Filippo,
please change the subject to:
iommu/vt-d: Don't be too aggressive when clearing one context entry
to follow the convention used in the iommu-tree. Another comment below.
On Mon, Aug 28, 2017 at 04:16:29PM +0200, Filippo Sironi wrote:
> static void domain_context_clear_one(struct intel_iommu *iommu, u8 bus, u8 devfn)
> {
> + unsigned long flags;
> + struct context_entry *context;
> + u16 did_old;
> +
> if (!iommu)
> return;
>
> + spin_lock_irqsave(&iommu->lock, flags);
> + context = iommu_context_addr(iommu, bus, devfn, 0);
> + if (!context) {
> + spin_unlock_irqrestore(&iommu->lock, flags);
> + return;
> + }
> + did_old = context_domain_id(context);
> + spin_unlock_irqrestore(&iommu->lock, flags);
> clear_context_table(iommu, bus, devfn);
This function is the only caller of clear_context_table(), which does
similar things (like fetching the context-entry) as you are adding
above.
So you can either make clear_context_table() return the old domain-id
so that you don't need to do it here, or you get rid of the function
entirely and add the context_clear_entry() and __iommu_flush_cache()
calls into this code-path.
Regards,
Joerg
Powered by blists - more mailing lists