ahci: Set upper 32-bit registers to zero

If the HBA supports 64-bit addressing, the registers may contain
non-zero values, for example after reboot as a leftover from the
OS driving the adapter.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Ladi Prosek <lprosek@redhat.com>
(cherry picked from commit 106543deb447c4005f9a9845f1f43a72547f6209)
diff --git a/src/hw/ahci.c b/src/hw/ahci.c
index 261a7d2..2eee192 100644
--- a/src/hw/ahci.c
+++ b/src/hw/ahci.c
@@ -361,6 +361,11 @@
 
     ahci_port_writel(ctrl, pnr, PORT_LST_ADDR, (u32)port->list);
     ahci_port_writel(ctrl, pnr, PORT_FIS_ADDR, (u32)port->fis);
+    if (ctrl->caps & HOST_CAP_64) {
+        ahci_port_writel(ctrl, pnr, PORT_LST_ADDR_HI, 0);
+        ahci_port_writel(ctrl, pnr, PORT_FIS_ADDR_HI, 0);
+    }
+
     return port;
 }