vPCI/MSI-X: make use of xzalloc_flex_struct()
authorJan Beulich <jbeulich@suse.com>
Tue, 5 Jan 2021 12:19:28 +0000 (13:19 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 5 Jan 2021 12:19:28 +0000 (13:19 +0100)
... instead of effectively open-coding it in a type-unsafe way.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
xen/drivers/vpci/msix.c

index 64dd0a929cf1fa16a0dcbd7c8f4a04e7eed62cca..e008f92c1c20766833c7537a109ebd8c0bec30dd 100644 (file)
@@ -23,8 +23,6 @@
 #include <asm/msi.h>
 #include <asm/p2m.h>
 
-#define VMSIX_SIZE(num) offsetof(struct vpci_msix, entries[num])
-
 #define VMSIX_ADDR_IN_RANGE(addr, vpci, nr)                               \
     ((addr) >= vmsix_table_addr(vpci, nr) &&                              \
      (addr) < vmsix_table_addr(vpci, nr) + vmsix_table_size(vpci, nr))
@@ -455,7 +453,8 @@ static int init_msix(struct pci_dev *pdev)
 
     max_entries = msix_table_size(control);
 
-    pdev->vpci->msix = xzalloc_bytes(VMSIX_SIZE(max_entries));
+    pdev->vpci->msix = xzalloc_flex_struct(struct vpci_msix, entries,
+                                           max_entries);
     if ( !pdev->vpci->msix )
         return -ENOMEM;