From: "Hervé Poussineau" <hpoussin@reactos.org>
To: Leon Alrae <leon.alrae@imgtec.com>, qemu-devel@nongnu.org
Cc: Aurelien Jarno <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] [PATCH v3 16/16] [RFC] dma/rc4030: do multiple calls to address_space_rw when doing DMA transfers
Date: Wed, 10 Jun 2015 21:37:11 +0200 [thread overview]
Message-ID: <557891E7.2030904@reactos.org> (raw)
In-Reply-To: <557826F0.5040005@imgtec.com>
Hi Leon,
Le 10/06/2015 14:00, Leon Alrae a écrit :
> Hi Hervé,
>
> On 03/06/2015 21:45, Hervé Poussineau wrote:
>> This fixes Windows NT 4.0/MIPS, which was always bugchecking with
>> IRQL_NOT_LESS_OR_EQUAL.
>>
>> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
>> ---
>> hw/dma/rc4030.c | 14 ++++++++++++--
>> 1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/dma/rc4030.c b/hw/dma/rc4030.c
>> index 3efa6de..deac0a8 100644
>> --- a/hw/dma/rc4030.c
>> +++ b/hw/dma/rc4030.c
>> @@ -681,6 +681,7 @@ static void rc4030_do_dma(void *opaque, int n, uint8_t *buf, int len, int is_wri
>> rc4030State *s = opaque;
>> hwaddr dma_addr;
>> int dev_to_mem;
>> + int i;
>>
>> s->dma_regs[n][DMA_REG_ENABLE] &= ~(DMA_FLAG_TC_INTR | DMA_FLAG_MEM_INTR | DMA_FLAG_ADDR_INTR);
>>
>> @@ -699,8 +700,17 @@ static void rc4030_do_dma(void *opaque, int n, uint8_t *buf, int len, int is_wri
>> dma_addr = s->dma_regs[n][DMA_REG_ADDRESS];
>>
>> /* Read/write data at right place */
>> - address_space_rw(&s->dma_as, dma_addr, MEMTXATTRS_UNSPECIFIED,
>> - buf, len, is_write);
>> + for (i = 0; i < len; ) {
>> + int ncpy = DMA_PAGESIZE - (dma_addr & (DMA_PAGESIZE - 1));
>> + if (ncpy > len - i) {
>> + ncpy = len - i;
>> + }
>> + address_space_rw(&s->dma_as, dma_addr, MEMTXATTRS_UNSPECIFIED,
>> + buf + i, ncpy, is_write);
>> +
>> + dma_addr += ncpy;
>> + i += ncpy;
>> + }
>>
>> s->dma_regs[n][DMA_REG_ENABLE] |= DMA_FLAG_TC_INTR;
>> s->dma_regs[n][DMA_REG_COUNT] -= len;
>>
>
> I'm sending out current target-mips queue soon and I can include this series,
> but I'm not quite sure what to do with this RFC patch. I presume you put RFC
> here because it's a workaround for a bug, but it's not clear where the actual
> bug is?
Indeed, that's a workaround for a bug that I failed to identify. You can still take the RFC patch as a patch, as I didn't see any objection (yet).
I think we can defer the bug correction for later.
Regards,
Hervé
next prev parent reply other threads:[~2015-06-10 19:40 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-03 20:45 [Qemu-devel] [PATCH v3 00/16] net/dp8393x and dma/rc4030 improvements Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 01/16] mips jazz: compile only in 64 bit Hervé Poussineau
2015-06-03 21:00 ` Aurelien Jarno
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 02/16] dma/rc4030: create custom DMA address space Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 03/16] dma/rc4030: use AddressSpace and address_space_rw in users Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 04/16] dma/rc4030: do not use old_mmio accesses Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 05/16] dma/rc4030: document register at offset 0x210 Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 06/16] dma/rc4030: use trace events instead of custom logging Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 07/16] dma/rc4030: convert to QOM Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 08/16] net/dp8393x: always calculate proper checksums Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 09/16] net/dp8393x: do not use old_mmio accesses Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 10/16] net/dp8393x: use dp8393x_ prefix for all functions Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 11/16] net/dp8393x: QOM'ify Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 12/16] net/dp8393x: add PROM to store MAC address Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 13/16] net/dp8393x: add load/save support Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 14/16] net/dp8393x: correctly reset in_use field Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 15/16] net/dp8393x: fix hardware reset Hervé Poussineau
2015-06-03 20:45 ` [Qemu-devel] [PATCH v3 16/16] [RFC] dma/rc4030: do multiple calls to address_space_rw when doing DMA transfers Hervé Poussineau
2015-06-10 12:00 ` Leon Alrae
2015-06-10 19:37 ` Hervé Poussineau [this message]
2015-06-10 20:20 ` Peter Maydell
2015-06-10 20:22 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=557891E7.2030904@reactos.org \
--to=hpoussin@reactos.org \
--cc=aurelien@aurel32.net \
--cc=leon.alrae@imgtec.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).