On Fri, Jul 21, 2017 at 04:59:08PM +0800, Baoquan He wrote: > AMD pointed out it's unsafe to update the device-table while iommu > is enabled. It turns out that device-table pointer update is split > up into two 32bit writes in the IOMMU hardware. So updating it while > the IOMMU is enabled could have some nasty side effects. > > The only way to work around this is to allocate the device-table below > 4GB if translation is pre-enabled in kdump kernel. If allocation failed, > still use the old one.
Not only for the kdump kernel. The old device table must also be below 4GB so that its pointer can be updated with a 32bit write. If the old table is above 4GB you still need the second write to zero the upper parts of the pointer in hardware. _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu