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

Reply via email to