PCI: Reorder pci_dev fields to reduce holes
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 18 Jun 2023 16:24:54 +0000 (18:24 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 13 Jul 2023 16:21:25 +0000 (11:21 -0500)
Group some bitfield variables to reduce holes.  On x86_64, this shrinks the
size of 'struct pci_dev' by 16 bytes (from 3576 to 3560) when compiled with
'allmodconfig'.

Link: https://lore.kernel.org/r/407b17c3e56764ef2c558898d4ff4c6c04b2d757.1687105455.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
include/linux/pci.h

index c69a2cc..1067547 100644 (file)
@@ -366,8 +366,8 @@ struct pci_dev {
        pci_power_t     current_state;  /* Current operating state. In ACPI,
                                           this is D0-D3, D0 being fully
                                           functional, and D3 being off. */
-       unsigned int    imm_ready:1;    /* Supports Immediate Readiness */
        u8              pm_cap;         /* PM capability offset */
+       unsigned int    imm_ready:1;    /* Supports Immediate Readiness */
        unsigned int    pme_support:5;  /* Bitmask of states from which PME#
                                           can be generated */
        unsigned int    pme_poll:1;     /* Poll device's PME status bit */
@@ -392,9 +392,9 @@ struct pci_dev {
 
 #ifdef CONFIG_PCIEASPM
        struct pcie_link_state  *link_state;    /* ASPM link state */
+       u16             l1ss;           /* L1SS Capability pointer */
        unsigned int    ltr_path:1;     /* Latency Tolerance Reporting
                                           supported from root to here */
-       u16             l1ss;           /* L1SS Capability pointer */
 #endif
        unsigned int    pasid_no_tlp:1;         /* PASID works without TLP Prefix */
        unsigned int    eetlp_prefix_path:1;    /* End-to-End TLP Prefix */