[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e0700e76-c8c5-7052-cf17-81cc7ad76d04@deltatee.com>
Date: Fri, 23 Aug 2019 17:06:34 -0600
From: Logan Gunthorpe <logang@...tatee.com>
To: Nadav Amit <namit@...are.com>, Joerg Roedel <joro@...tes.org>
Cc: iommu@...ts.linux-foundation.org, linux-kernel@...r.kernel.org,
stable@...r.kernel.org, David Woodhouse <dwmw2@...radead.org>,
Jacob Pan <jacob.jun.pan@...ux.intel.com>
Subject: Re: [PATCH] iommu/vt-d: Fix wrong analysis whether devices share the
same bus
On 2019-08-20 2:53 a.m., Nadav Amit wrote:
> set_msi_sid_cb() is used to determine whether device aliases share the
> same bus, but it can provide false indications that aliases use the same
> bus when in fact they do not. The reason is that set_msi_sid_cb()
> assumes that pdev is fixed, while actually pci_for_each_dma_alias() can
> call fn() when pdev is set to a subordinate device.
>
> As a result, running an VM on ESX with VT-d emulation enabled can
> results in the log warning such as:
>
> DMAR: [INTR-REMAP] Request device [00:11.0] fault index 3b [fault reason 38] Blocked an interrupt request due to source-id verification failure
>
> This seems to cause additional ata errors such as:
> ata3.00: qc timeout (cmd 0xa1)
> ata3.00: failed to IDENTIFY (I/O error, err_mask=0x4)
>
> These timeouts also cause boot to be much longer and other errors.
>
> Fix it by checking comparing the alias with the previous one instead.
>
> Fixes: 3f0c625c6ae71 ("iommu/vt-d: Allow interrupts from the entire bus for aliased devices")
> Cc: stable@...r.kernel.org
> Cc: Logan Gunthorpe <logang@...tatee.com>
> Cc: David Woodhouse <dwmw2@...radead.org>
> Cc: Joerg Roedel <joro@...tes.org>
> Cc: Jacob Pan <jacob.jun.pan@...ux.intel.com>
> Signed-off-by: Nadav Amit <namit@...are.com>
This looks good to me.
Reviewed-by: Logan Gunthorpe <logang@...tatee.com>
Thanks!
Logan
Powered by blists - more mailing lists