Revision 45fe15c2

b/hw/ide/ich.c
110 110
    struct AHCIPCIState *d;
111 111
    d = DO_UPCAST(struct AHCIPCIState, card, dev);
112 112

  
113
    if (msi_enabled(dev)) {
114
        msi_uninit(dev);
115
    }
116

  
113
    msi_uninit(dev);
117 114
    qemu_unregister_reset(ahci_reset, d);
118 115
    ahci_uninit(&d->ahci);
119 116

  
b/hw/intel-hda.c
1165 1165
{
1166 1166
    IntelHDAState *d = DO_UPCAST(IntelHDAState, pci, pci);
1167 1167

  
1168
    if (d->msi) {
1169
        msi_uninit(&d->pci);
1170
    }
1168
    msi_uninit(&d->pci);
1171 1169
    cpu_unregister_io_memory(d->mmio_addr);
1172 1170
    return 0;
1173 1171
}
b/hw/msi.c
164 164

  
165 165
void msi_uninit(struct PCIDevice *dev)
166 166
{
167
    uint16_t flags = pci_get_word(dev->config + msi_flags_off(dev));
168
    uint8_t cap_size = msi_cap_sizeof(flags);
167
    uint16_t flags;
168
    uint8_t cap_size;
169

  
170
    if (!(dev->cap_present & QEMU_PCI_CAP_MSI)) {
171
        return;
172
    }
173
    flags = pci_get_word(dev->config + msi_flags_off(dev));
174
    cap_size = msi_cap_sizeof(flags);
169 175
    pci_del_capability(dev, PCI_CAP_ID_MSIX, cap_size);
176
    dev->cap_present &= ~QEMU_PCI_CAP_MSI;
177

  
170 178
    MSI_DEV_PRINTF(dev, "uninit\n");
171 179
}
172 180

  

Also available in: Unified diff