All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Wang Sen <senwang@linux.vnet.ibm.com>
Cc: JBottomley@parallels.com, bharrosh@panasas.com,
	stefanha@linux.vnet.ibm.com, mc@linux.vnet.ibm.com,
	linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
	zwanp@cn.ibm.com, xiaoguangrong@linux.vnet.ibm.com
Subject: Re: [PATCH v3] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list
Date: Mon, 30 Jul 2012 09:45:33 +0200	[thread overview]
Message-ID: <50163B9D.9040409@redhat.com> (raw)
In-Reply-To: <1343629506-29627-1-git-send-email-senwang@linux.vnet.ibm.com>

Il 30/07/2012 08:25, Wang Sen ha scritto:
> When using the commands below to write some data to a virtio-scsi LUN of the
> QEMU guest(32-bit) with 1G physical memory(qemu -m 1024), the qemu will crash.
> 
>         # sudo mkfs.ext4 /dev/sdb  (/dev/sdb is the virtio-scsi LUN.)
>         # sudo mount /dev/sdb /mnt
>         # dd if=/dev/zero of=/mnt/file bs=1M count=1024
> 
> In current implementation, sg_set_buf is called to add buffers to sg list which
> is put into the virtqueue eventually. But if there are some HighMem pages in
> table->sgl you can not get virtual address by sg_virt. So, sg_virt(sg_elem) may
> return NULL value. This will cause QEMU exit when virtqueue_map_sg is called
> in QEMU because an invalid GPA is passed by virtqueue.
> 
> Two solutions are discussed here:
> http://lkml.indiana.edu/hypermail/linux/kernel/1207.3/00675.html
> 
> Finally, value assignment approach was adopted because:
> 
> Value assignment creates a well-formed scatterlist, because the termination 
> marker in source sg_list has been set in blk_rq_map_sg(). The last entry of the
> source sg_list is just copied to the the last entry in destination list.  Note 
> that, for now, virtio_ring does not care about the form of the scatterlist and 
> simply processes the first out_num + in_num consecutive elements of the sg[] 
> array.
> 
> I have tested the patch on my workstation. QEMU would not crash any more.
> 
> Cc: <stable@vger.kernel.org> # 3.4: 4fe74b1: [SCSI] virtio-scsi: SCSI driver
> Signed-off-by: Wang Sen <senwang@linux.vnet.ibm.com>

Acked-by: Paolo Bonzini <pbonzini@redhat.com>

  reply	other threads:[~2012-07-30  7:45 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-30  6:25 [PATCH v3] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list Wang Sen
2012-07-30  7:45 ` Paolo Bonzini [this message]
2012-08-17  8:37 ` Stefan Hajnoczi

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=50163B9D.9040409@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=JBottomley@parallels.com \
    --cc=bharrosh@panasas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mc@linux.vnet.ibm.com \
    --cc=senwang@linux.vnet.ibm.com \
    --cc=stefanha@linux.vnet.ibm.com \
    --cc=xiaoguangrong@linux.vnet.ibm.com \
    --cc=zwanp@cn.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.