Index: /trunk/src/VBox/Devices/Bus/DevIommuAmd.cpp
===================================================================
--- /trunk/src/VBox/Devices/Bus/DevIommuAmd.cpp	(revision 86879)
+++ /trunk/src/VBox/Devices/Bus/DevIommuAmd.cpp	(revision 86880)
@@ -3045,5 +3045,13 @@
                 /** @todo IOMMU: Split large pages into 4K IOTLB entries and add to IOTLB cache. */
 
+                /* If translation is disabled for this device (root paging mode is 0), we're done. */
+                if (WalkResult.cShift == 0)
+                {
+                    *pGCPhysSpa = uIova;
+                    break;
+                }
+
                 /* Store the translated base address before continuing to check permissions for any more pages. */
+                Assert(WalkResult.cShift >= X86_PAGE_4K_SHIFT);
                 if (cbRemaining == cbAccess)
                 {
