mfd: core: Reorder fields in 'struct mfd_cell' to save some memory
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Tue, 14 Feb 2023 08:58:59 +0000 (09:58 +0100)
committerLee Jones <lee@kernel.org>
Wed, 26 Apr 2023 10:40:27 +0000 (11:40 +0100)
Group some variables based on their sizes to reduce hole and avoid padding.
On x86_64, this shrinks the size from 144 to 128 bytes.

As an example:

$ size drivers/mfd/as3722.o (Before)
   text    data     bss     dec     hex filename
   9441     680      16   10137    2799 drivers/mfd/as3722.o

$ size drivers/mfd/as3722.o (After)
   text    data     bss     dec     hex filename
   9345     680      16   10041    2739 drivers/mfd/as3722.o

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/bb631974888dfe1af593b6280cf30fb913d2d1a4.1676365116.git.christophe.jaillet@wanadoo.fr
include/linux/mfd/core.h

index 14ca7b4..fc4a0e9 100644 (file)
@@ -78,6 +78,9 @@ struct mfd_cell {
        void                    *platform_data;
        size_t                  pdata_size;
 
+       /* Matches ACPI */
+       const struct mfd_cell_acpi_match        *acpi_match;
+
        /* Software node for the device. */
        const struct software_node *swnode;
 
@@ -97,9 +100,6 @@ struct mfd_cell {
        /* Set to 'true' to use 'of_reg' (above) - allows for of_reg=0 */
        bool use_of_reg;
 
-       /* Matches ACPI */
-       const struct mfd_cell_acpi_match        *acpi_match;
-
        /*
         * These resources can be specified relative to the parent device.
         * For accessing hardware you should use resources from the platform dev
@@ -119,8 +119,8 @@ struct mfd_cell {
        /* A list of regulator supplies that should be mapped to the MFD
         * device rather than the child device when requested
         */
-       const char * const      *parent_supplies;
        int                     num_parent_supplies;
+       const char * const      *parent_supplies;
 };
 
 /*