[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64
From: |
John Snow |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64 |
Date: |
Tue, 31 Jan 2017 07:56:04 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 |
On 01/16/2017 02:49 AM, Ladi Prosek wrote:
> On Fri, Jan 13, 2017 at 8:15 PM, John Snow <address@hidden> wrote:
>>
>>
>> On 01/13/2017 02:01 PM, Ladi Prosek wrote:
>>> On Fri, Jan 13, 2017 at 7:31 PM, John Snow <address@hidden> wrote:
>>>>
>>>>
>>>> On 01/13/2017 01:12 PM, Ladi Prosek wrote:
>>>>> On Fri, Jan 13, 2017 at 6:23 PM, John Snow <address@hidden> wrote:
>>>>>> On 01/13/2017 06:02 AM, Ladi Prosek wrote:
>>>>>>> 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.
>>>>>>>
>>>>>>> Signed-off-by: Ladi Prosek <address@hidden>
>>>>>>> ---
>>>>>>> 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;
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> Was this tested? What was the use case that prompted this patch, and do
>>>>>> you have a public bugzilla to point to?
>>>>>
>>>>> Sorry, I thought you were aware. Here's the BZ with details:
>>>>> https://bugzilla.redhat.com/show_bug.cgi?id=1411105
>>>>>
>>>>
>>>> It's for the public record :)
>>>>
>>>> I'm going to amend your commit message, OK?
>>>>
>>>> https://github.com/jnsnow/qemu/commit/f037be92fc0c4580b846134e0355a69d0eccd0d9
>>>
>>> Minor nit: the OS we know for sure is affected is Windows Server 2008,
>>> without the "R2". Thanks!
>>>
>>
>> I misunderstood. It looked like the initial report was for "SP2," though
>> I see you saying that the R2 version actually worked okay, but by
>> coincidence.
>>
>> I didn't think there *was* an "SP2," for Windows Server, so I
>> interpreted that to mean R2.
>>
>> So this only manifests with vanilla 2008?
>
> We know it manifests on 2008 SP2, which is very different from 2008
> R2. 2008 is the server variant of Vista, 2008 R2 is the server variant
> of Win7 (yay for marketing names!)
>
> I believe that 2008 SP2 32-bit is the only OS where it's been confirmed so
> far.
>
Thanks for clearing that up for me, I re-edited the commit message
upstream. If it looks OK, I'll likely merge this when I get back home
after FOSDEM.
--js
- [Qemu-block] [PATCH] ahci: advertise HOST_CAP_64, Ladi Prosek, 2017/01/13
- Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64, John Snow, 2017/01/13
- Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64, Ladi Prosek, 2017/01/13
- Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64, John Snow, 2017/01/13
- Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64, Ladi Prosek, 2017/01/13
- Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64, John Snow, 2017/01/13
- Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64, Ladi Prosek, 2017/01/16
- Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64,
John Snow <=
- Re: [Qemu-block] [Qemu-devel] [PATCH] ahci: advertise HOST_CAP_64, Ladi Prosek, 2017/01/31