All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>, qemu-devel@nongnu.org
Cc: changpeng.liu@intel.com, felipe@nutanix.com
Subject: Re: [Qemu-devel] [PATCH 20/27] vhost-user-scsi: don't copy iscsi/scsi-lowlevel.h
Date: Tue, 12 Sep 2017 13:41:39 -0300	[thread overview]
Message-ID: <f3f17253-4126-4c95-b57d-96ff14199330@amsat.org> (raw)
In-Reply-To: <20170823162004.27337-21-marcandre.lureau@redhat.com>

On 08/23/2017 01:19 PM, Marc-André Lureau wrote:
> There is no need to include hw/virtio/virtio-scsi.h, then the conflict
> with SCSI_XFER enum goes away.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>   contrib/vhost-user-scsi/vhost-user-scsi.c | 96 +++----------------------------
>   1 file changed, 9 insertions(+), 87 deletions(-)
> 
> diff --git a/contrib/vhost-user-scsi/vhost-user-scsi.c b/contrib/vhost-user-scsi/vhost-user-scsi.c
> index 2ab14f1a83..795799ec14 100644
> --- a/contrib/vhost-user-scsi/vhost-user-scsi.c
> +++ b/contrib/vhost-user-scsi/vhost-user-scsi.c
> @@ -12,8 +12,9 @@
>   
>   #include "qemu/osdep.h"
>   #include "contrib/libvhost-user/libvhost-user.h"
> -#include "hw/virtio/virtio-scsi.h"
> +#include "standard-headers/linux/virtio_scsi.h"
>   #include "iscsi/iscsi.h"
> +#include "iscsi/scsi-lowlevel.h"
>   
>   #include <glib.h>
>   
> @@ -161,90 +162,11 @@ static void vus_gsrc_new(VusDev *vdev_scsi, int fd, GIOCondition cond,
>                                       (gpointer)(uintptr_t)id);
>   }
>   
> -/* from libiscsi's scsi-lowlevel.h **
> - *
> - * nb. We can't directly include scsi-lowlevel.h due to a namespace conflict:
> - *     QEMU's scsi.h also defines "SCSI_XFER_NONE".
> - */
> -
> -#define SCSI_CDB_MAX_SIZE           16
> -
> -struct scsi_iovector {
> -    struct scsi_iovec *iov;
> -    int niov;
> -    int nalloc;
> -    size_t offset;
> -    int consumed;
> -};
> -
> -struct scsi_allocated_memory {
> -    struct scsi_allocated_memory *next;
> -    char buf[0];
> -};
> -
> -struct scsi_data {
> -    int            size;
> -    unsigned char *data;
> -};
> -
> -enum scsi_sense_key {
> -    SCSI_SENSE_NO_SENSE            = 0x00,
> -    SCSI_SENSE_RECOVERED_ERROR     = 0x01,
> -    SCSI_SENSE_NOT_READY           = 0x02,
> -    SCSI_SENSE_MEDIUM_ERROR        = 0x03,
> -    SCSI_SENSE_HARDWARE_ERROR      = 0x04,
> -    SCSI_SENSE_ILLEGAL_REQUEST     = 0x05,
> -    SCSI_SENSE_UNIT_ATTENTION      = 0x06,
> -    SCSI_SENSE_DATA_PROTECTION     = 0x07,
> -    SCSI_SENSE_BLANK_CHECK         = 0x08,
> -    SCSI_SENSE_VENDOR_SPECIFIC     = 0x09,
> -    SCSI_SENSE_COPY_ABORTED        = 0x0a,
> -    SCSI_SENSE_COMMAND_ABORTED     = 0x0b,
> -    SCSI_SENSE_OBSOLETE_ERROR_CODE = 0x0c,
> -    SCSI_SENSE_OVERFLOW_COMMAND    = 0x0d,
> -    SCSI_SENSE_MISCOMPARE          = 0x0e
> -};
> -
> -struct scsi_sense {
> -    unsigned char       error_type;
> -    enum scsi_sense_key key;
> -    int                 ascq;
> -    unsigned            sense_specific:1;
> -    unsigned            ill_param_in_cdb:1;
> -    unsigned            bit_pointer_valid:1;
> -    unsigned char       bit_pointer;
> -    uint16_t            field_pointer;
> -};
> -
> -enum scsi_residual {
> -    SCSI_RESIDUAL_NO_RESIDUAL = 0,
> -    SCSI_RESIDUAL_UNDERFLOW,
> -    SCSI_RESIDUAL_OVERFLOW
> -};
> -
> -struct scsi_task {
> -    int status;
> -    int cdb_size;
> -    int xfer_dir;
> -    int expxferlen;
> -    unsigned char cdb[SCSI_CDB_MAX_SIZE];
> -    enum scsi_residual residual_status;
> -    size_t residual;
> -    struct scsi_sense sense;
> -    struct scsi_data datain;
> -    struct scsi_allocated_memory *mem;
> -    void *ptr;
> -
> -    uint32_t itt;
> -    uint32_t cmdsn;
> -    uint32_t lun;
> -
> -    struct scsi_iovector iovector_in;
> -    struct scsi_iovector iovector_out;
> -};
> -
>   /** libiscsi integration **/
>   
> +typedef struct virtio_scsi_cmd_req VirtIOSCSICmdReq;
> +typedef struct virtio_scsi_cmd_resp VirtIOSCSICmdResp;
> +
>   static int vus_iscsi_add_lun(VusIscsiLun *lun, char *iscsi_uri)
>   {
>       struct iscsi_url *iscsi_url;
> @@ -363,12 +285,12 @@ static int handle_cmd_sync(struct iscsi_context *ctx,
>       if (!out_len && !in_len) {
>           dir = SCSI_XFER_NONE;
>       } else if (out_len) {
> -        dir = SCSI_XFER_TO_DEV;
> +        dir = SCSI_XFER_WRITE;
>           for (i = 0; i < out_len; i++) {
>               len += out[i].iov_len;
>           }
>       } else {
> -        dir = SCSI_XFER_FROM_DEV;
> +        dir = SCSI_XFER_READ;
>           for (i = 0; i < in_len; i++) {
>               len += in[i].iov_len;
>           }
> @@ -376,10 +298,10 @@ static int handle_cmd_sync(struct iscsi_context *ctx,
>   
>       task = scsi_task_new(cdb_len, req->cdb, dir, len);
>   
> -    if (dir == SCSI_XFER_TO_DEV) {
> +    if (dir == SCSI_XFER_WRITE) {
>           task->iovector_out.iov = (struct scsi_iovec *)out;
>           task->iovector_out.niov = out_len;
> -    } else if (dir == SCSI_XFER_FROM_DEV) {
> +    } else if (dir == SCSI_XFER_READ) {
>           task->iovector_in.iov = (struct scsi_iovec *)in;
>           task->iovector_in.niov = in_len;
>       }
> 

  reply	other threads:[~2017-09-12 16:41 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-23 16:19 [Qemu-devel] [PATCH 00/27] vhost-user-scsi: code clean-up Marc-André Lureau
2017-08-23 16:19 ` [Qemu-devel] [PATCH 01/27] glib-compat: move G_SOURCE_CONTINUE/REMOVE there Marc-André Lureau
2017-09-12 12:22   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 02/27] libvhost-user: drop dependency on glib Marc-André Lureau
2017-09-12 12:24   ` Philippe Mathieu-Daudé
2017-09-12 13:13     ` Marc-André Lureau
2017-09-12 13:24       ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 03/27] libvhost-user: improve vu_queue_pop() doc Marc-André Lureau
2017-09-19 13:43   ` Paolo Bonzini
2017-09-19 14:53     ` Eric Blake
2017-09-19 15:01       ` Marc-André Lureau
2017-08-23 16:19 ` [Qemu-devel] [PATCH 04/27] vhost-user-scsi: use g_strdup() Marc-André Lureau
2017-08-23 17:50   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 05/27] vhost-user-scsi: connect unix socket before allocating Marc-André Lureau
2017-09-12 16:37   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 06/27] vhost-user-scsi: code style fixes Marc-André Lureau
2017-08-24  2:54   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 07/27] vhost-user-scsi: use glib allocation Marc-André Lureau
2017-08-23 17:53   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 08/27] vhost-user-scsi: glib calls that allocate don't return NULL Marc-André Lureau
2017-09-19 13:44   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 09/27] vhost-user-scsi: also free the gtree Marc-André Lureau
2017-09-12 16:40   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 10/27] vhost-user-scsi: remove vdev_scsi_find_by_vu() Marc-André Lureau
2017-09-19 13:44   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 11/27] vhost-user-scsi: simplify unix path cleanup Marc-André Lureau
2017-09-19 13:45   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 12/27] vhost-user-scsi: use NULL pointer Marc-André Lureau
2017-08-23 17:47   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 13/27] vhost-user-scsi: use glib watch directly Marc-André Lureau
2017-09-19 13:54   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 14/27] vhost-user-scsi: assert() in iscsi_add_lun() Marc-André Lureau
2017-08-23 17:56   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 15/27] vhost-user-scsi: remove vdev_scsi_add_iscsi_lun() Marc-André Lureau
2017-08-23 17:57   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 16/27] vhost-user-scsi: remove VUS_MAX_LUNS Marc-André Lureau
2017-08-24  0:08   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 17/27] vhost-user-scsi: remove unimplemented functions Marc-André Lureau
2017-09-19 13:54   ` Paolo Bonzini
2017-08-23 16:19 ` [Qemu-devel] [PATCH 18/27] vhost-user-scsi: rename VUS types Marc-André Lureau
2017-08-23 17:59   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 19/27] vhost-user-scsi: avoid use of iscsi_ namespace Marc-André Lureau
2017-08-24  0:07   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 20/27] vhost-user-scsi: don't copy iscsi/scsi-lowlevel.h Marc-André Lureau
2017-09-12 16:41   ` Philippe Mathieu-Daudé [this message]
2017-08-23 16:19 ` [Qemu-devel] [PATCH 21/27] vhost-user-scsi: drop extra callback pointer Marc-André Lureau
2017-08-23 23:59   ` Philippe Mathieu-Daudé
2017-08-23 16:19 ` [Qemu-devel] [PATCH 22/27] vhost-user-scsi: simplify source handling Marc-André Lureau
2017-09-19 14:45   ` Paolo Bonzini
2017-08-23 16:20 ` [Qemu-devel] [PATCH 23/27] vhost-user-scsi: use glib logging Marc-André Lureau
2017-08-24  0:00   ` Philippe Mathieu-Daudé
2017-08-23 16:20 ` [Qemu-devel] [PATCH 24/27] libvhost-user: add glib source helper Marc-André Lureau
2017-09-19 14:45   ` Paolo Bonzini
2017-09-19 15:04     ` Marc-André Lureau
2017-08-23 16:20 ` [Qemu-devel] [PATCH 25/27] build-sys: fix libvhost-user.a build Marc-André Lureau
2017-09-12 16:43   ` Philippe Mathieu-Daudé
2017-08-23 16:20 ` [Qemu-devel] [PATCH 26/27] vhost-user-scsi: use libvhost-user glib helper Marc-André Lureau
2017-08-23 16:20 ` [Qemu-devel] [PATCH 27/27] vhost-user-scsi: remove server_sock from VusDev Marc-André Lureau
2017-08-24  0:06   ` Philippe Mathieu-Daudé
2017-08-23 16:52 ` [Qemu-devel] [PATCH 00/27] vhost-user-scsi: code clean-up no-reply
2017-08-23 16:53 ` no-reply
2017-08-23 16:59 ` no-reply
2017-08-24  0:40 ` Liu, Changpeng
2017-09-11 13:18   ` Marc-André Lureau
2017-09-12  1:39     ` Liu, Changpeng
2017-09-19 12:45     ` Marc-André Lureau
2017-09-19 14:46       ` Paolo Bonzini

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=f3f17253-4126-4c95-b57d-96ff14199330@amsat.org \
    --to=f4bug@amsat.org \
    --cc=changpeng.liu@intel.com \
    --cc=felipe@nutanix.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=qemu-devel@nongnu.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 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.