mirror of
https://github.com/qemu/qemu.git
synced 2025-10-24 02:20:01 +00:00
In msix_exclusive_bar the bar_pba_size is more than what the pba is expected to have, although this never affects the bar size. Specifically, the math in msix_init_exclusive_bar allocates too much memory in some cases. For example consider nentries = 8. msix_exclusive_bar will give us bar_pba_size = 16. So 16 bytes. However 8 bytes would be enough - this is all that the spec requires. So in practice bar_pba_size sometimes allocates an extra 8 bytes but never more. Since each MSIX entry size is 16 bytes, and since we make sure that table+pba is a power of two, this always leaves a multiple of 16 bytes for the PBA, so extra 8 bytes have no effect. However, its ugly to have pba size temporary variable have an incorrect value. For consistency switch to the formula used in msix_init. Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> |
||
|---|---|---|
| .. | ||
| Makefile.objs | ||
| msi.c | ||
| msix.c | ||
| pci_bridge.c | ||
| pci_host.c | ||
| pci-stub.c | ||
| pci.c | ||
| pcie_aer.c | ||
| pcie_host.c | ||
| pcie_port.c | ||
| pcie.c | ||
| shpc.c | ||
| slotid_cap.c | ||
| trace-events | ||