scsi-disk: Block Device Characteristics emulation fix
commit740842c9656cd5dbc9ccf2ea0c3a74f0ba35144a
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Wed, 11 Jul 2018 20:58:13 +0000 (11 17:58 -0300)
committerKevin Wolf <kwolf@redhat.com>
Thu, 12 Jul 2018 16:24:08 +0000 (12 18:24 +0200)
tree287034eb3b138ac6a726ff2ae9d94332d5c43c0e
parent2d4cb49ddaa219ed3f5a985ecf8b188aeb2b3d6b
scsi-disk: Block Device Characteristics emulation fix

The current BDC VPD page (page 0xb1) is too short. This can be
seen running sg_utils:

$ sg_vpd --page=bdc /dev/sda
Block device characteristics VPD page (SBC):
Block device characteristics VPD page length too short=8

By the SCSI spec, the expected size of the SBC page is 0x40.
There is no telling how the guest will behave with a shorter
message - it can ignore it, or worse, make (wrong)
assumptions.

This patch fixes the emulation by setting the size to 0x40.
This is the output of the previous sg_vpd command after
applying it:

$ sg_vpd --page=bdc /dev/sda -v
    inquiry cdb: 12 01 b1 00 fc 00
Block device characteristics VPD page (SBC):
   [PQual=0  Peripheral device type: disk]
  Medium rotation rate is not reported
  Product type: Not specified
  WABEREQ=0
  WACEREQ=0
  Nominal form factor not reported
  FUAB=0
  VBULS=0

To improve readability, this patch also adds the VBULS value
explictly and add comments on the existing fields we're
setting.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/scsi/scsi-disk.c