[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [RESEND][PATCH] Add 40-bit DMA support to LSI scsi emul
From: |
Blue Swirl |
Subject: |
[Qemu-devel] Re: [RESEND][PATCH] Add 40-bit DMA support to LSI scsi emulation |
Date: |
Mon, 17 Nov 2008 21:25:27 +0200 |
On 11/17/08, Ryan Harper <address@hidden> wrote:
>
> Looking for some feedback on this patch, MAINTAINERS points to Paul for
> scsi stuff, and I saw Blue Swirl commit a scsi patch recently.
>
> This patch fixes Linux machines configured with > 4G of ram and using a
> SCSI device. I'm working on 64-bit DMA support as well which should
> hopefully fix 64-bit Windows using SCSI devices as well.
addr = s->dnad;
+ if (lsi_dma_40bit(s))
+ addr |= ((uint64_t)s->dnad64 << 32UL);
+ else if (s->sbms)
+ addr |= ((uint64_t)s->sbms << 32UL);
Maybe the address could be calculated at script parsing phase for
small performance gain.
I would use ULL instead of UL, because on 32 bit host long is still 32 bits.
> + DPRINTF("DMA addr=0x%" PRIx64 " len=%d\n", addr, count);
PRIx64 will be incorrect if target_phys_addr_t is 32 bits. You should
use TARGET_FMT_plx instead.
> + uint32_t addr, addr64;
Looking at the code after this I thought that addr64 is 64 bits, maybe
addr_high would be a better name?