]> rtime.felk.cvut.cz Git - jailhouse.git/commitdiff
core: Break up pci_msix_vector control field
authorJan Kiszka <jan.kiszka@siemens.com>
Thu, 7 May 2015 17:08:02 +0000 (19:08 +0200)
committerJan Kiszka <jan.kiszka@siemens.com>
Thu, 7 May 2015 17:08:02 +0000 (19:08 +0200)
Avoid testing the masked bit via a magic value.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
hypervisor/include/jailhouse/pci.h
hypervisor/pci.c
hypervisor/pci_ivshmem.c

index e1166b1c0583393685a10390c67aba0ef226fa06..6ccdbca5417565bf53edd2e7bbc21fdb9f806368 100644 (file)
@@ -100,7 +100,8 @@ union pci_msix_vector {
        struct {
                u64 address;
                u32 data;
-               u32 ctrl;
+               u32 masked:1;
+               u32 reserved:31;
        } __attribute__((packed)) field;
        u32 raw[4];
        /** @publicsection */
index cb671df63f07ea1813cf44fd7e396141c1ef60d9..f1dc1c472f3f586a7cc9e1a09efdf3aed15ddb51 100644 (file)
@@ -362,7 +362,7 @@ found:
                if (index >= device->info->num_msix_vectors)
                        goto invalid_access;
                if (dword == MSIX_VECTOR_CTRL_DWORD) {
-                       mmio_write32(&device->msix_table[index].field.ctrl,
+                       mmio_write32(&device->msix_table[index].raw[dword],
                                     *value);
                } else {
                        device->msix_vectors[index].raw[dword] = *value;
index c3e71c47c264e41c5cfd074d4dc27eb2606e1a41..19707acdfd02ad66d70cdcb6dc7e043bc2320262 100644 (file)
@@ -130,7 +130,7 @@ static bool ivshmem_is_msix_masked(struct pci_ivshmem_endpoint *ive)
                return true;
 
        /* local mask */
-       if (ive->device->msix_vectors[0].field.ctrl & 0x1)
+       if (ive->device->msix_vectors[0].field.masked)
                return true;
 
        /* PCI Bus Master */