Am 31.05.2010 03:43, schrieb Nicholas A. Bellinger:
> From: Nicholas Bellinger <n...@linux-iscsi.org>
> 
> This patch updates hw/scsi-bus.c to add PERSISTENT_RESERVE_OUT and 
> PERSISTENT_RESERVE_IN
> case in scsi_req_length() to extra the incoming buffer length into 
> SCSIRequest->cmd.xfer,
> and adds a second PERSISTENT_RESERVE_OUT case in scsi_req_xfer_mode() in 
> order to properly
> set SCSI_XFER_TO_DEV for WRITE data.
> 
> Tested with Linux KVM guests and Megasas 8708EM2 HBA emulation and TCM_Loop 
> target ports.
> 
> Signed-off-by: Nicholas A. Bellinger <n...@linux-iscsi.org>
> ---
>  hw/scsi-bus.c |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
> index b8e4b71..75ec74e 100644
> --- a/hw/scsi-bus.c
> +++ b/hw/scsi-bus.c
> @@ -325,6 +325,10 @@ static int scsi_req_length(SCSIRequest *req, uint8_t 
> *cmd)
>      case INQUIRY:
>          req->cmd.xfer = cmd[4] | (cmd[3] << 8);
>          break;
> +    case PERSISTENT_RESERVE_OUT:
> +    case PERSISTENT_RESERVE_IN:
> +        req->cmd.xfer = cmd[8] | (cmd[7] << 8);

Maybe I'm missing something, but isn't exactly the same value set in the
switch block above? (for cmd[0] >> 5 == 2)

Kevin

Reply via email to