mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
scsi: introduce SCSIBusOps
There are more operations than a SCSI bus can handle, besides completing commands. One example, which this series will introduce, is cleaning up after a request is cancelled. More long term, a "SCSI bus" can represent the LUNs attached to a target; in this case, while all commands will ultimately reach a logical unit, it is the target who is in charge of answering REPORT LUNs. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Cc: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
ab9adc88c8
commit
cfdc1bb06e
7 changed files with 34 additions and 17 deletions
|
@ -907,6 +907,10 @@ static int vscsi_do_crq(struct VIOsPAPRDevice *dev, uint8_t *crq_data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct SCSIBusOps vscsi_scsi_ops = {
|
||||
.complete = vscsi_command_complete
|
||||
};
|
||||
|
||||
static int spapr_vscsi_init(VIOsPAPRDevice *dev)
|
||||
{
|
||||
VSCSIState *s = DO_UPCAST(VSCSIState, vdev, dev);
|
||||
|
@ -923,7 +927,7 @@ static int spapr_vscsi_init(VIOsPAPRDevice *dev)
|
|||
dev->crq.SendFunc = vscsi_do_crq;
|
||||
|
||||
scsi_bus_new(&s->bus, &dev->qdev, 1, VSCSI_REQ_LIMIT,
|
||||
vscsi_command_complete);
|
||||
&vscsi_scsi_ops);
|
||||
if (!dev->qdev.hotplugged) {
|
||||
scsi_bus_legacy_handle_cmdline(&s->bus);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue