On 03/20/2017 07:08 PM, Michael Roth wrote: > From: Ladi Prosek <lpro...@redhat.com> > > The AHCI emulation code supports 64-bit addressing and should advertise this > fact in the Host Capabilities register. Both Linux and Windows drivers test > this bit to decide if the upper 32 bits of various registers may be written > to, and at least some versions of Windows have a bug where DMA is attempted > with an address above 4GB but, in the absence of HOST_CAP_64, the upper 32 > bits are left unititialized which leads to a memory corruption. > > [Maintainer edit: > > This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1411105, > which affects Windows Server 2008 SP2 in some cases.] > > Signed-off-by: Ladi Prosek <lpro...@redhat.com> > Message-id: 1484305370-6220-1-git-send-email-lpro...@redhat.com > [Amended commit message --js] > Signed-off-by: John Snow <js...@redhat.com> > > (cherry picked from commit 98cb5dccb192b0082626080890dac413473573c6) > Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> > --- > hw/ide/ahci.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c > index 3c19bda..6a17acf 100644 > --- a/hw/ide/ahci.c > +++ b/hw/ide/ahci.c > @@ -488,7 +488,7 @@ static void ahci_reg_init(AHCIState *s) > s->control_regs.cap = (s->ports - 1) | > (AHCI_NUM_COMMAND_SLOTS << 8) | > (AHCI_SUPPORTED_SPEED_GEN1 << > AHCI_SUPPORTED_SPEED) | > - HOST_CAP_NCQ | HOST_CAP_AHCI; > + HOST_CAP_NCQ | HOST_CAP_AHCI | HOST_CAP_64; > > s->control_regs.impl = (1 << s->ports) - 1; > >
A reminder that if this is backported to 2.8.1, that you will need to include the relevant seaBIOS fixes as well. Otherwise, rebooting under that firmware breaks! --js