Re: [PATCH] iommu/vt-d: gracefully handle DMAR units with no supported address widths

Greg KH
2021-01-20T17:05:14Z

On Wed, Jan 20, 2021 at 03:55:05PM +0000, David Woodhouse wrote:
> On Wed, 2021-01-20 at 13:06 +0100, Greg KH wrote:
> > On Wed, Jan 20, 2021 at 09:42:43AM +0000, David Woodhouse wrote:
> > > On Thu, 2020-09-24 at 15:08 +0100, David Woodhouse wrote:
> > > > From: David Woodhouse <dwmw@amazon.co.uk>
> > > >
> > > > Instead of bailing out completely, such a unit can still be used for
> > > > interrupt remapping.
> > > >
> > > > Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> > >
> > > Could we have this for stable too please, along with the trivial
> > > subsequent fixup. They are:
> > >
> > > c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units with no supported address widths")
> > > 9def3b1a07c4 ("iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built")
> > >
> > > They apply fairly straightforwardly when backported; let me know if you
> > > want us to send patches.
> >
> > What stable kernel(s) do you want this in? The above patches are
> > already in 5.10.
>
> It's a fairly simple bug fix, to still use a given IOMMU for interrupt
> remapping even if it can't be used for DMA mapping.
>
> Those features are somewhat orthogonal, and it was wrong for the kernel
> to bail out on the IOMMU hardware completely.
>
> The interrupt remapping support is what's required for Intel boxes (or
> VMs) to run with more than 255 CPUs. It should be fairly simple to fix
> the same bug at least as far back as 4.14.

I tried applying these to 5.4, 4.19, and 4.14, and they all fail to
build:

drivers/iommu/dmar.c: In function ‘free_iommu’:
drivers/iommu/dmar.c:1140:35: error: ‘struct intel_iommu’ has no member named ‘drhd’
1140 | if (intel_iommu_enabled && !iommu->drhd->ignored) {
| ^~

So if you could provide a working set of patches backported, I will be
glad to queue them up.

thanks,

greg k-h