virtio-scsi: actually honor sense_size from configuration space
We were always truncating the sense size to 96 bytes. Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									2e323f03bf
								
							
						
					
					
						commit
						aa7a6a399f
					
				@ -304,6 +304,8 @@ static void virtio_scsi_command_complete(SCSIRequest *r, uint32_t status,
 | 
				
			|||||||
                                         size_t resid)
 | 
					                                         size_t resid)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    VirtIOSCSIReq *req = r->hba_private;
 | 
					    VirtIOSCSIReq *req = r->hba_private;
 | 
				
			||||||
 | 
					    VirtIOSCSI *s = req->dev;
 | 
				
			||||||
 | 
					    VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(s);
 | 
				
			||||||
    uint32_t sense_len;
 | 
					    uint32_t sense_len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (r->io_canceled) {
 | 
					    if (r->io_canceled) {
 | 
				
			||||||
@ -317,7 +319,7 @@ static void virtio_scsi_command_complete(SCSIRequest *r, uint32_t status,
 | 
				
			|||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        req->resp.cmd->resid = 0;
 | 
					        req->resp.cmd->resid = 0;
 | 
				
			||||||
        sense_len = scsi_req_get_sense(r, req->resp.cmd->sense,
 | 
					        sense_len = scsi_req_get_sense(r, req->resp.cmd->sense,
 | 
				
			||||||
                                       VIRTIO_SCSI_SENSE_SIZE);
 | 
					                                       vs->sense_size);
 | 
				
			||||||
        req->resp.cmd->sense_len = tswap32(sense_len);
 | 
					        req->resp.cmd->sense_len = tswap32(sense_len);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    virtio_scsi_complete_req(req);
 | 
					    virtio_scsi_complete_req(req);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user