On 09/29/2016 10:35 PM, Markus Armbruster wrote:
Cao jin <caoj.f...@cn.fujitsu.com> writes:
@@ -2349,7 +2342,7 @@ static void megasas_scsi_realize(PCIDevice *dev, Error
**errp)
memory_region_init_io(&s->mmio_io, OBJECT(s), &megasas_mmio_ops, s,
"megasas-mmio", 0x4000);
- if (megasas_use_msix(s)) {
+ if (s->msix != ON_OFF_AUTO_OFF) {
ret = msix_init(dev, 15, &s->mmio_io, b->mmio_bar, 0x2000,
&s->mmio_io, b->mmio_bar, 0x3800, 0x68, &err);
/* Any error other than -ENOTSUP(board's MSI support is broken)
@@ -2364,11 +2357,15 @@ static void megasas_scsi_realize(PCIDevice *dev, Error
**errp)
error_propagate(errp, err);
return;
}
- assert(!err || d->msix == ON_OFF_AUTO_AUTO);
+ assert(!err || s->msix == ON_OFF_AUTO_AUTO);
You add this line in PATCH 4. Could it use s->msix from the start?
It seems a copy&paste error...for the mistake.
/* With msix=auto, we fall back to MSI off silently */
error_free(err);
}
+ if (msix_enabled(dev)) {
+ msix_vector_use(dev, 0);
+ }
+
memory_region_init_io(&s->port_io, OBJECT(s), &megasas_port_ops, s,
"megasas-io", 256);
memory_region_init_io(&s->queue_io, OBJECT(s), &megasas_queue_ops, s,
@@ -2384,10 +2381,6 @@ static void megasas_scsi_realize(PCIDevice *dev, Error
**errp)
pci_register_bar(dev, b->mmio_bar, bar_type, &s->mmio_io);
pci_register_bar(dev, 3, bar_type, &s->queue_io);
- if (megasas_use_msix(s)) {
- msix_vector_use(dev, 0);
- }
-
s->fw_state = MFI_FWSTATE_READY;
if (!s->sas_addr) {
s->sas_addr = ((NAA_LOCALLY_ASSIGNED_ID << 24) |
Can you explain why you move the code?
Oh...just place the msix init related code together, for logical,
nothing special.
--
Yours Sincerely,
Cao jin