qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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

  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).