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@xxxxxxxxxxxx> > > > > > > > > Instead of bailing out completely, such a unit can still be used for > > > > interrupt remapping. > > > > > > > > Signed-off-by: David Woodhouse <dwmw@xxxxxxxxxxxx> > > > > > > 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