Message ID | 1342646225.18004.633.camel@haakon2.linux-iscsi.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jul 18, 2012 at 02:17:05PM -0700, Nicholas A. Bellinger wrote: > On Wed, 2012-07-18 at 16:05 +0300, Michael S. Tsirkin wrote: > > On Wed, Jul 18, 2012 at 12:59:31AM +0000, Nicholas A. Bellinger wrote: > > > From: Nicholas Bellinger <nab@risingtidesystems.com> > > > > > > This patch adds the initial vhost_scsi_ioctl() callers for VHOST_SCSI_SET_ENDPOINT > > > and VHOST_SCSI_CLEAR_ENDPOINT respectively, and also adds struct vhost_vring_target > > > that is used by tcm_vhost code when locating target ports during qemu setup. > > > > > > Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> > > > Cc: Zhi Yong Wu <wuzhy@cn.ibm.com> > > > Cc: Michael S. Tsirkin <mst@redhat.com> > > > Cc: Paolo Bonzini <pbonzini@redhat.com>, > > > Signed-off-by: Nicholas A. Bellinger <nab@risingtidesystems.com> > > > --- > > > include/linux/vhost.h | 9 +++++++++ > > > 1 files changed, 9 insertions(+), 0 deletions(-) > > > > > > diff --git a/include/linux/vhost.h b/include/linux/vhost.h > > > index e847f1e..33b313b 100644 > > > --- a/include/linux/vhost.h > > > +++ b/include/linux/vhost.h > > > @@ -24,7 +24,11 @@ struct vhost_vring_state { > > > struct vhost_vring_file { > > > unsigned int index; > > > int fd; /* Pass -1 to unbind from file. */ > > > +}; > > > > > > +struct vhost_vring_target { > > > > Can this be renamed vhost_scsi_target? > > Done > > > > > > + unsigned char vhost_wwpn[224]; > > > > 224? I am guessing ISCSI_NAME_LEN from include/scsi/iscsi_proto.h? > > Unfortunately we can't include iscsi_proto.h here as it > > is not exported to users. But let's add a comment for now. > > > > This is actually from target/target_core_base.h:TRANSPORT_IQN_LEN. > > Fixing this up now.. > > > > + unsigned short vhost_tpgt; > > > }; > > > > > > struct vhost_vring_addr { > > > @@ -121,6 +125,11 @@ struct vhost_memory { > > > * device. This can be used to stop the ring (e.g. for migration). */ > > > #define VHOST_NET_SET_BACKEND _IOW(VHOST_VIRTIO, 0x30, struct vhost_vring_file) > > > > > > +/* VHOST_SCSI specific defines */ > > > + > > > +#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_vring_target) > > > +#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_vring_target) > > > + > > > /* Feature bits */ > > > /* Log all write descriptors. Can be changed while device is active. */ > > > > Can these go into appropriate ifdef CONFIG_TCP_VHOST please? > > > > Mmmmm, I don't think we can do that with CONFIG_TCM_VHOST=m, or at least > not with the following patch > > diff --git a/include/linux/vhost.h b/include/linux/vhost.h > index 33b313b..e4b1ee3 100644 > --- a/include/linux/vhost.h > +++ b/include/linux/vhost.h > @@ -125,10 +126,14 @@ struct vhost_memory { > * device. This can be used to stop the ring (e.g. for migration). */ > #define VHOST_NET_SET_BACKEND _IOW(VHOST_VIRTIO, 0x30, struct vhost_vring_file) > > +#ifdef CONFIG_TCM_VHOST > + > /* VHOST_SCSI specific defines */ > > -#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_vring_target) > -#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_vring_target) > +# define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target) > +# define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target) > + > +#endif > > -- > > drivers/vhost/tcm/tcm_vhost.c: In function ‘vhost_scsi_ioctl’: > drivers/vhost/tcm/tcm_vhost.c:970: error: ‘VHOST_SCSI_SET_ENDPOINT’ undeclared (first use in this function) > drivers/vhost/tcm/tcm_vhost.c:970: error: (Each undeclared identifier is reported only once > drivers/vhost/tcm/tcm_vhost.c:970: error: for each function it appears in.) > drivers/vhost/tcm/tcm_vhost.c:975: error: ‘VHOST_SCSI_CLEAR_ENDPOINT’ undeclared (first use in this function) > make[3]: *** [drivers/vhost/tcm/tcm_vhost.o] Error 1 Maybe ifdefs only work for booleans? If yes you can probably add a boolean and select it? What I want to prevent is exposing tcm stuff in the header if it is configured off. I'll play with it tomorrow. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/include/linux/vhost.h b/include/linux/vhost.h index 33b313b..e4b1ee3 100644 --- a/include/linux/vhost.h +++ b/include/linux/vhost.h @@ -125,10 +126,14 @@ struct vhost_memory { * device. This can be used to stop the ring (e.g. for migration). */ #define VHOST_NET_SET_BACKEND _IOW(VHOST_VIRTIO, 0x30, struct vhost_vring_file) +#ifdef CONFIG_TCM_VHOST + /* VHOST_SCSI specific defines */ -#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_vring_target) -#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_vring_target) +# define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target) +# define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target) + +#endif -- drivers/vhost/tcm/tcm_vhost.c: In function ‘vhost_scsi_ioctl’: