mptsas: remove unnecessary internal msi state flag
internal flag msi_in_use in unnecessary, msi_uninit() could be called directly, and msi_enabled() is enough to check device msi state. cc: Markus Armbruster <armbru@redhat.com> cc: Marcel Apfelbaum <marcel@redhat.com> cc: Paolo Bonzini <pbonzini@redhat.com> cc: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
afea4e1410
commit
2e2aa31674
@ -63,7 +63,7 @@ static void mptsas_update_interrupt(MPTSASState *s)
|
|||||||
PCIDevice *pci = (PCIDevice *) s;
|
PCIDevice *pci = (PCIDevice *) s;
|
||||||
uint32_t state = s->intr_status & ~(s->intr_mask | MPI_HIS_IOP_DOORBELL_STATUS);
|
uint32_t state = s->intr_status & ~(s->intr_mask | MPI_HIS_IOP_DOORBELL_STATUS);
|
||||||
|
|
||||||
if (s->msi_in_use && msi_enabled(pci)) {
|
if (msi_enabled(pci)) {
|
||||||
if (state) {
|
if (state) {
|
||||||
trace_mptsas_irq_msi(s);
|
trace_mptsas_irq_msi(s);
|
||||||
msi_notify(pci, 0);
|
msi_notify(pci, 0);
|
||||||
@ -1289,15 +1289,12 @@ static void mptsas_scsi_init(PCIDevice *dev, Error **errp)
|
|||||||
error_append_hint(&err, "You have to use msi=auto (default) or "
|
error_append_hint(&err, "You have to use msi=auto (default) or "
|
||||||
"msi=off with this machine type.\n");
|
"msi=off with this machine type.\n");
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
s->msi_in_use = false;
|
|
||||||
return;
|
return;
|
||||||
} else if (ret) {
|
}
|
||||||
|
assert(!err || s->msi == ON_OFF_AUTO_AUTO);
|
||||||
/* With msi=auto, we fall back to MSI off silently */
|
/* With msi=auto, we fall back to MSI off silently */
|
||||||
error_free(err);
|
error_free(err);
|
||||||
s->msi_in_use = false;
|
|
||||||
} else {
|
|
||||||
s->msi_in_use = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
memory_region_init_io(&s->mmio_io, OBJECT(s), &mptsas_mmio_ops, s,
|
memory_region_init_io(&s->mmio_io, OBJECT(s), &mptsas_mmio_ops, s,
|
||||||
@ -1337,9 +1334,7 @@ static void mptsas_scsi_uninit(PCIDevice *dev)
|
|||||||
MPTSASState *s = MPT_SAS(dev);
|
MPTSASState *s = MPT_SAS(dev);
|
||||||
|
|
||||||
qemu_bh_delete(s->request_bh);
|
qemu_bh_delete(s->request_bh);
|
||||||
if (s->msi_in_use) {
|
|
||||||
msi_uninit(dev);
|
msi_uninit(dev);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mptsas_reset(DeviceState *dev)
|
static void mptsas_reset(DeviceState *dev)
|
||||||
@ -1375,7 +1370,6 @@ static const VMStateDescription vmstate_mptsas = {
|
|||||||
.post_load = mptsas_post_load,
|
.post_load = mptsas_post_load,
|
||||||
.fields = (VMStateField[]) {
|
.fields = (VMStateField[]) {
|
||||||
VMSTATE_PCI_DEVICE(dev, MPTSASState),
|
VMSTATE_PCI_DEVICE(dev, MPTSASState),
|
||||||
VMSTATE_BOOL(msi_in_use, MPTSASState),
|
|
||||||
|
|
||||||
VMSTATE_UINT32(state, MPTSASState),
|
VMSTATE_UINT32(state, MPTSASState),
|
||||||
VMSTATE_UINT8(who_init, MPTSASState),
|
VMSTATE_UINT8(who_init, MPTSASState),
|
||||||
|
@ -31,8 +31,6 @@ struct MPTSASState {
|
|||||||
OnOffAuto msi;
|
OnOffAuto msi;
|
||||||
uint64_t sas_addr;
|
uint64_t sas_addr;
|
||||||
|
|
||||||
bool msi_in_use;
|
|
||||||
|
|
||||||
/* Doorbell register */
|
/* Doorbell register */
|
||||||
uint32_t state;
|
uint32_t state;
|
||||||
uint8_t who_init;
|
uint8_t who_init;
|
||||||
|
Loading…
Reference in New Issue
Block a user