Re: [PATCH] x86/iommu: Fix two minimal issues in check_iommu_entries()

From: Zhenzhong Duan
Date: Wed Jan 06 2021 - 21:52:27 EST


On Tue, Jan 5, 2021 at 3:04 AM Konrad Rzeszutek Wilk
<konrad.wilk@xxxxxxxxxx> wrote:
>
> On Wed, Dec 23, 2020 at 02:24:12PM +0800, Zhenzhong Duan wrote:
> > check_iommu_entries() checks for cyclic dependency in iommu entries
> > and fixes the cyclic dependency by setting x->depend to NULL. But
> > this repairing isn't correct if q is in front of p, there will be
> > "EXECUTION ORDER INVALID!" report following. Fix it by NULLing
> > whichever in the front.
> >
> > The second issue is about the report of exectuion order reverse,
> > the order is reversed incorrectly in the report, fix it.
>
> Heya!
>
> When you debugged this, did you by any chance save the
> serial logs and the debug logs to double-check it?

Hi Konrad,

The iommu_table_entry is sorted by sort_iommu_table() and
check_iommu_entries() finds nothing abnormal,
so there is no related logs to check.

Sorry for my poor english, I'm not saying there is order reverse, even
if there is, it will be repaired by sort_iommu_table(). Then
check_iommu_entries() report nothing.
What I mean is about check_iommu_entries() itself, below printk isn't correct.

printk(KERN_ERR "EXECUTION ORDER INVALID! %pS should be called before %pS!\n",
p->detect, q->detect);

Should be:

printk(KERN_ERR "EXECUTION ORDER INVALID! %pS should be called before %pS!\n",
q->detect, p->detect);

Regards
Zhenzhong