qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: seabios@seabios.org
Cc: Gerd Hoffmann <kraxel@redhat.com>,
	qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>
Subject: [Qemu-devel] [PATCH 02/18] virtio: run drivers in 32bit mode
Date: Mon, 29 Jun 2015 10:53:24 +0200	[thread overview]
Message-ID: <1435568020-8669-3-git-send-email-kraxel@redhat.com> (raw)
In-Reply-To: <1435568020-8669-1-git-send-email-kraxel@redhat.com>

virtio version 1.0 registers can (and actually do in the qemu
implementation) live in mmio space.  So we must run the blk and
scsi virtio drivers in 32bit mode, otherwise we can't access them.

This also allows to drop a bunch of GET_LOWFLAT calls from the virtio
code in the following patches.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 src/block.c         | 8 +++++---
 src/hw/virtio-blk.c | 2 +-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/block.c b/src/block.c
index 3f7ecb1..a9b9851 100644
--- a/src/block.c
+++ b/src/block.c
@@ -503,8 +503,10 @@ process_op(struct disk_op_s *op)
     case DTYPE_CDEMU:
         ret = process_cdemu_op(op);
         break;
-    case DTYPE_VIRTIO_BLK:
-        ret = process_virtio_blk_op(op);
+    case DTYPE_VIRTIO_BLK: ;
+        extern void _cfunc32flat_process_virtio_blk_op(void);
+        ret = call32(_cfunc32flat_process_virtio_blk_op
+                     , (u32)MAKE_FLATPTR(GET_SEG(SS), op), DISK_RET_EPARAM);
         break;
     case DTYPE_AHCI: ;
         extern void _cfunc32flat_process_ahci_op(void);
@@ -526,7 +528,6 @@ process_op(struct disk_op_s *op)
         break;
     case DTYPE_USB:
     case DTYPE_UAS:
-    case DTYPE_VIRTIO_SCSI:
     case DTYPE_LSI_SCSI:
     case DTYPE_ESP_SCSI:
     case DTYPE_MEGASAS:
@@ -534,6 +535,7 @@ process_op(struct disk_op_s *op)
         break;
     case DTYPE_USB_32:
     case DTYPE_UAS_32:
+    case DTYPE_VIRTIO_SCSI:
     case DTYPE_PVSCSI: ;
         extern void _cfunc32flat_scsi_process_op(void);
         ret = call32(_cfunc32flat_scsi_process_op
diff --git a/src/hw/virtio-blk.c b/src/hw/virtio-blk.c
index e2dbd3c..15ac171 100644
--- a/src/hw/virtio-blk.c
+++ b/src/hw/virtio-blk.c
@@ -77,7 +77,7 @@ virtio_blk_op(struct disk_op_s *op, int write)
     return status == VIRTIO_BLK_S_OK ? DISK_RET_SUCCESS : DISK_RET_EBADTRACK;
 }
 
-int
+int VISIBLE32FLAT
 process_virtio_blk_op(struct disk_op_s *op)
 {
     if (! CONFIG_VIRTIO_BLK)
-- 
1.8.3.1

  parent reply	other threads:[~2015-06-29  8:53 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-29  8:53 [Qemu-devel] [PATCH 00/18] virtio: add version 1.0 support Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 01/18] pci: allow to loop over capabilities Gerd Hoffmann
2015-06-29  8:53 ` Gerd Hoffmann [this message]
2015-07-03  6:45   ` [Qemu-devel] [PATCH 02/18] virtio: run drivers in 32bit mode Paolo Bonzini
2015-07-03  7:12     ` [Qemu-devel] [SeaBIOS] " Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 03/18] virtio: add struct vp_device Gerd Hoffmann
2015-06-29 12:48   ` [Qemu-devel] [SeaBIOS] " Kevin O'Connor
2015-06-29 13:33     ` Gerd Hoffmann
2015-06-30  6:31       ` Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 04/18] virtio: pass struct pci_device to vp_init_simple Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 05/18] virtio: add version 1.0 structs and #defines Gerd Hoffmann
2015-06-29 13:19   ` [Qemu-devel] [SeaBIOS] " Kevin O'Connor
2015-06-29 13:35     ` Gerd Hoffmann
2015-06-29 14:21       ` Kevin O'Connor
2015-06-29  8:53 ` [Qemu-devel] [PATCH 06/18] virtio: find version 1.0 virtio capabilities Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 07/18] virtio: add version 1.0 read/write macros Gerd Hoffmann
2015-06-29 13:02   ` [Qemu-devel] [SeaBIOS] " Kevin O'Connor
2015-06-29 13:46     ` Gerd Hoffmann
2015-06-29 14:14       ` Kevin O'Connor
2015-06-29  8:53 ` [Qemu-devel] [PATCH 08/18] virtio: make features 64bit, support version 1.0 features Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 09/18] virtio: add version 1.0 support to vp_{get, set}_status Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 10/18] virtio: add version 1.0 support to vp_get_isr Gerd Hoffmann
2015-06-29 14:00   ` [Qemu-devel] [SeaBIOS] " Kevin O'Connor
2015-06-29 14:33     ` Gerd Hoffmann
2015-06-29 14:36       ` Kevin O'Connor
2015-06-29  8:53 ` [Qemu-devel] [PATCH 11/18] virtio: add version 1.0 support to vp_reset Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 12/18] virtio: add version 1.0 support to vp_notify Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 13/18] virtio: remove unused vp_del_vq Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 14/18] virtio: add version 1.0 support to vp_find_vq Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 15/18] virtio-scsi: fix initialization for version 1.0 Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 16/18] virtio-blk: " Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 17/18] virtio: use version 1.0 if available (flip the big switch) Gerd Hoffmann
2015-06-29  8:53 ` [Qemu-devel] [PATCH 18/18] virtio: also probe version 1.0 pci ids Gerd Hoffmann
2015-06-29 14:26 ` [Qemu-devel] [SeaBIOS] [PATCH 00/18] virtio: add version 1.0 support Kevin O'Connor

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=1435568020-8669-3-git-send-email-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=seabios@seabios.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).