On 5/22/20 11:51 AM, Sudhakar Panneerselvam wrote: > vhost-scsi pre-allocates the maximum sg entries per command and if a > command requires more than VHOST_SCSI_PREALLOC_SGLS entries, then that > command is failed by it. This patch lets vhost communicate the max sg limit > when it registers vhost_scsi_ops with TCM. With this change, TCM would > report the max sg entries through "Block Limits" VPD page which will be > typically queried by the SCSI initiator during device discovery. By knowing > this limit, the initiator could ensure the maximum transfer length is less > than or equal to what is reported by vhost-scsi. > > Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> > Cc: Jason Wang <jasowang@xxxxxxxxxx> > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> > Signed-off-by: Sudhakar Panneerselvam <sudhakar.panneerselvam@xxxxxxxxxx> > --- > drivers/vhost/scsi.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c > index c39952243fd3..8b104f76f324 100644 > --- a/drivers/vhost/scsi.c > +++ b/drivers/vhost/scsi.c > @@ -2280,6 +2280,7 @@ static void vhost_scsi_drop_tport(struct se_wwn *wwn) > static const struct target_core_fabric_ops vhost_scsi_ops = { > .module = THIS_MODULE, > .fabric_name = "vhost", > + .max_data_sg_nents = VHOST_SCSI_PREALLOC_SGLS, > .tpg_get_wwn = vhost_scsi_get_fabric_wwn, > .tpg_get_tag = vhost_scsi_get_tpgt, > .tpg_check_demo_mode = vhost_scsi_check_true, > Looks ok to me. Reviewed-by: Mike Christie <mchristi@xxxxxxxxxx>