[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] esp-pci: fixup deadlock with linux
From: |
Gonglei |
Subject: |
Re: [Qemu-devel] [PATCH] esp-pci: fixup deadlock with linux |
Date: |
Mon, 10 Nov 2014 15:55:12 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 |
On 2014/11/10 15:50, Hannes Reinecke wrote:
> On 11/10/2014 08:39 AM, Gonglei wrote:
>> On 2014/11/10 15:02, Hannes Reinecke wrote:
>>
>>> On 11/09/2014 10:44 AM, Mark Cave-Ayland wrote:
>>>> On 07/11/14 12:22, Hannes Reinecke wrote:
>>>>
>>>>> A linux guest will be issuing messages:
>>>>>
>>>>> [ 32.124042] DC390: Deadlock in DataIn_0: DMA aborted unfinished:
>>>>> 000000 bytes remain!!
>>>>> [ 32.126348] DC390: DataIn_0: DMA State: 0
>>>>>
>>>>> and the HBA will fail to work properly.
>>>>> Reason is the emulation is not setting the 'DMA transfer done'
>>>>> status correctly.
>>>>>
>>>>> Signed-off-by: Hannes Reinecke <address@hidden>
>>>>> ---
>>>>> hw/scsi/esp-pci.c | 2 ++
>>>>> 1 file changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/hw/scsi/esp-pci.c b/hw/scsi/esp-pci.c
>>>>> index 82795e6..77b8647 100644
>>>>> --- a/hw/scsi/esp-pci.c
>>>>> +++ b/hw/scsi/esp-pci.c
>>>>> @@ -268,6 +268,8 @@ static void esp_pci_dma_memory_rw(PCIESPState *pci,
>>>>> uint8_t *buf, int len,
>>>>> /* update status registers */
>>>>> pci->dma_regs[DMA_WBC] -= len;
>>>>> pci->dma_regs[DMA_WAC] += len;
>>>>> + if (pci->dma_regs[DMA_WBC] == 0)
>>>>> + pci->dma_regs[DMA_STAT] |= DMA_STAT_DONE;
>>>>> }
>>>>
>>>> Missing braces on the if statement here?
>>>>
>>> Sigh.
>>>
>>> If you insist ...
>>>
>>> Cheers,
>>>
>>> Hannes
>>
>> That's the Qemu coding style.
>> And you will fail ./script/checkpatch.pl.
>>
> I know. After all, it's not the first patch I've sent.
>
> But I always get the various codingstyle thingies
> mixed up.
>
Hum. Each community has its own rules :)
Best regards,
-Gonglei