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