From: Alexander Graf <agraf@suse.de>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, Christoph Hellwig <hch@lst.de>,
Hannes Reinecke <hare@suse.de>,
Stefan Haynoczi <stefanha@linux.vnet.ibm.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 5/5] megasas: LSI Megaraid SAS emulation
Date: Tue, 05 Jul 2011 16:05:40 +0200 [thread overview]
Message-ID: <4E131A34.4020601@suse.de> (raw)
In-Reply-To: <4E1318DD.10703@redhat.com>
On 07/05/2011 03:59 PM, Paolo Bonzini wrote:
> On 07/05/2011 03:38 PM, Alexander Graf wrote:
>>> + if (is_sgl64) {
>>> + iov_pa = ldq_phys(pa);
>>> + } else {
>>> + iov_pa = ldl_phys(pa);
>> These load data from memory in target endianness. Are you sure that's
>> what you want? I'd expect this to be defined as little endian
>> (especially given that ldq and ldl on the same address work).
> Seems to be target endianness from the corresponding Linux code:
>
> if (sge_count) {
> scsi_for_each_sg(scp, os_sgl, sge_count, i) {
> mfi_sgl->sge32[i].length = sg_dma_len(os_sgl);
> mfi_sgl->sge32[i].phys_addr = sg_dma_address(os_sgl);
> }
> }
>
> ...
>
> if (sge_count) {
> scsi_for_each_sg(scp, os_sgl, sge_count, i) {
> mfi_sgl->sge64[i].length = sg_dma_len(os_sgl);
> mfi_sgl->sge64[i].phys_addr = sg_dma_address(os_sgl);
> }
> }
>
> Note that this is _either_ a ldq or a ldl depending on what the driver told
> the device. It is not accessing a 64-bit value as 32-bit.
So how would the device know which endianness the target is then? This
looks like broken Linux code to me then. Christoph, is the above correct
for big endian systems?
Btw, reading through the Qemu sources, there is ldl_le_p() to read
little endian values from memory. I haven't quite found one for _phys
though. We can just add that however.
Alex
next prev parent reply other threads:[~2011-07-05 14:05 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-05 11:03 [Qemu-devel] [PATCH 0/5][v6] Megasas HBA emulation Hannes Reinecke
2011-07-05 11:03 ` [Qemu-devel] [PATCH 1/5] iov: Update parameter usage in iov_(to|from)_buf() Hannes Reinecke
2011-07-05 11:03 ` [Qemu-devel] [PATCH 2/5] scsi: Add 'hba_private' to SCSIRequest Hannes Reinecke
2011-07-05 11:03 ` [Qemu-devel] [PATCH 3/5] scsi-disk: Fixup debugging statement Hannes Reinecke
2011-07-05 11:03 ` [Qemu-devel] [PATCH 4/5] scsi-disk: Mask out serial number EVPD Hannes Reinecke
2011-07-05 11:03 ` [Qemu-devel] [PATCH 5/5] megasas: LSI Megaraid SAS emulation Hannes Reinecke
2011-07-05 13:06 ` Alexander Graf
2011-07-05 13:38 ` Alexander Graf
2011-07-05 13:59 ` Paolo Bonzini
2011-07-05 14:05 ` Alexander Graf [this message]
2011-07-05 15:21 ` Stefan Hajnoczi
2011-07-06 6:20 ` Hannes Reinecke
2011-07-06 8:39 ` Paolo Bonzini
2011-07-05 11:06 ` [Qemu-devel] [PATCH 4/5] scsi-disk: Mask out serial number EVPD Paolo Bonzini
2011-07-05 11:05 ` [Qemu-devel] [PATCH 3/5] scsi-disk: Fixup debugging statement Paolo Bonzini
2011-07-05 13:01 ` [Qemu-devel] [PATCH 0/5][v6] Megasas HBA emulation Alexander Graf
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=4E131A34.4020601@suse.de \
--to=agraf@suse.de \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.com \
/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).