On 10/29/2014 08:53 AM, Hannes Reinecke wrote:
> +
> + /*
> + * The EFI firmware doesn't handle UA,
> + * so we need to clear the Power On/Reset UA
> + * after the initial reset.
> + */
> + QTAILQ_FOREACH(kid, &s->bus.qbus.children, sibling) {
> + SCSIDevice *sdev = DO_UPCAST(SCSIDevice, qdev, kid->child);
> + SCSISense *ua;
> +
> + ua = &sdev->unit_attention;
> + *ua = SENSE_CODE(NO_SENSE);
Just sdev->unit_attention = SENSE_CODE(NO_SENSE)?
> + sdev->sense_is_ua = false;
Setting sense_is_ua is unnecessary, it refers to dev->sense rather than
dev->unit_attention. Just assert(dev->sense_len == 0) if you care.
You need this too:
scsi_device_unit_attention_reported(sdev);
Otherwise the state machine that reports CD-ROM media changes gets
messed up.
Paolo