On Thu, 18 Sep 2025 22:55:47 +0200
Cédric Le Goater <c...@redhat.com> wrote:

> Alex, Peter,
> 
> On 1/10/19 00:10, Alex Williamson wrote:
> > A kernel bug was introduced in v4.15 via commit 71a7d3d78e3c which
> > adds a test for address space wrap-around in the vfio DMA unmap path.
> > Unfortunately due to overflow, the kernel detects an unmap of the last
> > page in the 64-bit address space as a wrap-around.  In QEMU, a Q35
> > guest with VT-d emulation and guest IOMMU enabled will attempt to make
> > such an unmap request during VM system reset, triggering an error:
> > 
> >    qemu-kvm: VFIO_UNMAP_DMA: -22
> >    qemu-kvm: vfio_dma_unmap(0x561f059948f0, 0xfef00000, 0xffffffff01100000) 
> > = -22 (Invalid argument)
> > 
> > Here the IOVA start address (0xfef00000) and the size parameter
> > (0xffffffff01100000) add to exactly 2^64, triggering the bug.  A
> > kernel fix is queued for the Linux v5.0 release to address this.
> > 
> > This patch implements a workaround to retry the unmap, excluding the
> > final page of the range when we detect an unmap failing which matches
> > the requirements for this issue.  This is expected to be a safe and
> > complete workaround as the VT-d address space does not extend to the
> > full 64-bit space and therefore the last page should never be mapped.
> > 
> > This workaround can be removed once all kernels with this bug are
> > sufficiently deprecated.  
> 
> Have we waited long enough ? what does "sufficiently deprecated" mean ?
> Is it related to the linux stable updates ?

It was fixed in Linux v5.0 and I believe the oldest LTS kernel is v5.4.
Therefore I don't think that upstream QEMU really needs to continue to
carry this.  v4.20 was the current upstream kernel when this was
introduced into QEMU.  Thanks,

Alex


Reply via email to