1. 21 8月, 2012 1 次提交
    • M
      tcm_vhost: Fix vhost_scsi_target structure alignment · 6de7145c
      Michael S. Tsirkin 提交于
      Here TRANSPORT_IQN_LEN is 224, which is a multiple of 4.
      Since vhost_tpgt is 2 bytes and abi_version is 4, the total size would
      be 230.  But gcc needs struct size be aligned to first field size, which
      is 4 bytes, so it pads the structure by extra 2 bytes to the total of
      232.
      
      This padding is very undesirable in an ABI:
      - it can not be initialized easily
      - it can not be checked easily
      - it can leak information between kernel and userspace
      
      Simplest solution is probably just to make the padding
      explicit.
      
      (v2: Add check for zero'ed backend->reserved field for VHOST_SCSI_SET_ENDPOINT
           and VHOST_SCSI_CLEAR_ENDPOINT ops as requested by MST)
      Reported-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      6de7145c
  2. 17 8月, 2012 2 次提交
    • N
      tcm_vhost: Change vhost_scsi_target->vhost_wwpn to char * · 5b7517f8
      Nicholas Bellinger 提交于
      This patch changes the vhost_scsi_target->vhost_wwpn[] type used
      by VHOST_SCSI_* ioctls to 'char *' as requested by Blue Swirl in
      order to match the latest QEMU vhost-scsi RFC-v3 userspace code.
      
      Queuing this up into target-pending/master for a -rc3 PULL.
      Reported-by: NBlue Swirl <blauwirbel@gmail.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      5b7517f8
    • N
      tcm_vhost: Post-merge review changes requested by MST · 101998f6
      Nicholas Bellinger 提交于
      This patch contains the post RFC-v5 (post-merge) changes, this includes:
      
      - Add locking comment
      - Move vhost_scsi_complete_cmd ahead of TFO callbacks in order to
        drop forward declarations
      - Drop extra '!= NULL' usage in vhost_scsi_complete_cmd_work()
      - Change vhost_scsi_*_handle_kick() to use pr_debug
      - Fix possible race in vhost_scsi_set_endpoint() for vs->vs_tpg checking
        + assignment.
      - Convert tv_tpg->tpg_vhost_count + ->tv_tpg_port_count from atomic_t ->
        int, and make sure reference is protected by ->tv_tpg_mutex.
      - Drop unnecessary vhost_scsi->vhost_ref_cnt
      - Add 'err:' label for exception path in vhost_scsi_clear_endpoint()
      - Add enum for VQ numbers, add usage in vhost_scsi_open()
      - Add vhost_scsi_flush() + vhost_scsi_flush_vq() following
        drivers/vhost/net.c
      - Add smp_wmb() + vhost_scsi_flush() call during vhost_scsi_set_features()
      - Drop unnecessary copy_from_user() usage with GET_ABI_VERSION ioctl
      - Add missing vhost_scsi_compat_ioctl() caller for vhost_scsi_fops
      - Fix function parameter definition first line to follow existing
        vhost code style
      - Change 'vHost' usage -> 'vhost' in handful of locations
      - Change -EPERM -> -EBUSY usage for two failures in tcm_vhost_drop_nexus()
      - Add comment for tcm_vhost_workqueue in tcm_vhost_init()
      - Make GET_ABI_VERSION return 'int' + add comment in tcm_vhost.h
      Reported-by: NMichael S. Tsirkin <mst@redhat.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Cc: Anthony Liguori <aliguori@us.ibm.com>
      Cc: Zhi Yong Wu <wuzhy@cn.ibm.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      101998f6
  3. 30 7月, 2012 1 次提交
    • N
      tcm_vhost: Initial merge for vhost level target fabric driver · 057cbf49
      Nicholas Bellinger 提交于
      This patch adds the initial code for tcm_vhost, a Vhost level TCM
      fabric driver for virtio SCSI initiators into KVM guest.
      
      This code is currently up and running on v3.5-rc2 host+guest
      from target-pending/for-next-merge.
      
      Using tcm_vhost requires Zhi's -> Stefan -> nab's qemu vhost-scsi tree here:
      
        http://git.kernel.org/?p=virt/kvm/nab/qemu-kvm.git;a=shortlog;h=refs/heads/vhost-scsi
      
      --
      
      Changelog v4 -> v5:
      
        Expose ABI version via VHOST_SCSI_GET_ABI_VERSION + use Rev 0 as
        starting point for v3.6-rc code (Stefan + ALiguori + nab)
        Convert vhost_scsi_handle_vq() to vq_err() (nab + MST)
        Minor style fixes from checkpatch (nab)
      
      Changelog v3 -> v4:
      
        Rename vhost_vring_target -> vhost_scsi_target (mst + nab)
        Use TRANSPORT_IQN_LEN in vhost_scsi_target->vhost_wwpn[] def (nab)
        Move back to drivers/vhost/, and just use drivers/vhost/Kconfig.tcm (mst)
        Move TCM_VHOST related ioctl defines from include/linux/vhost.h ->
        drivers/vhost/tcm_vhost.h as requested by MST (nab)
        Move Kbuild.tcm include from drivers/staging -> drivers/vhost/, and
        just use 'if STAGING' around 'source drivers/vhost/Kbuild.tcm'
      
      Changelog v2 -> v3:
      
        Unlock on error in tcm_vhost_drop_nexus() (DanC)
        Fix strlen() doesn't count the terminator (DanC)
        Call kfree() on an error path (DanC)
        Convert tcm_vhost_write_pending to use target_execute_cmd (hch + nab)
        Fix another strlen() off by one in tcm_vhost_make_tport (DanC)
        Add option under drivers/staging/Kconfig, and move to drivers/vhost/tcm/
        as requested by MST (nab)
      
      Changelog v1 -> v2:
      
        Fix tv_cmd completion -> release SGL memory leak (nab)
        Fix sparse warnings for static variable usage ((Fengguang Wu)
        Fix sparse warnings for min() typing + printk format specs (Fengguang Wu)
        Convert to cmwq submission for I/O dispatch (nab + hch)
      
      Changelog v0 -> v1:
      
        Merge into single source + header file, and move to drivers/vhost/
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Cc: Anthony Liguori <aliguori@us.ibm.com>
      Cc: Zhi Yong Wu <wuzhy@cn.ibm.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      057cbf49