]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gpiolib: acpi: Improve struct acpi_gpio_info memory footprint
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 3 Apr 2025 15:59:12 +0000 (18:59 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 7 Apr 2025 06:38:38 +0000 (09:38 +0300)
The struct acpi_gpio_info has two boolean members that are located
not close to each other making two gaps due to alignment requirements.
Group them to improve memory footprint.

`pahole` difference before and after (on 32-bit):

-       /* size: 36, cachelines: 1, members: 9 */
-       /* sum members: 30, holes: 2, sum holes: 6 */

+       /* size: 32, cachelines: 1, members: 9 */
+       /* sum members: 30, holes: 1, sum holes: 2 */

Acked-by: Mika Westerberg <westeri@kernel.org>
Link: https://lore.kernel.org/r/20250403160034.2680485-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/gpio/gpiolib-acpi.c

index 69caa35c58df411657d3b8267e73e133dad9d7db..878b11c81c7bd32834f66b9ae6e685399bf710b5 100644 (file)
@@ -96,10 +96,10 @@ struct acpi_gpio_chip {
  * @adev: reference to ACPI device which consumes GPIO resource
  * @flags: GPIO initialization flags
  * @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo
+ * @wake_capable: wake capability as provided by ACPI
  * @pin_config: pin bias as provided by ACPI
  * @polarity: interrupt polarity as provided by ACPI
  * @triggering: triggering type as provided by ACPI
- * @wake_capable: wake capability as provided by ACPI
  * @debounce: debounce timeout as provided by ACPI
  * @quirks: Linux specific quirks as provided by struct acpi_gpio_mapping
  */
@@ -107,10 +107,10 @@ struct acpi_gpio_info {
        struct acpi_device *adev;
        enum gpiod_flags flags;
        bool gpioint;
+       bool wake_capable;
        int pin_config;
        int polarity;
        int triggering;
-       bool wake_capable;
        unsigned int debounce;
        unsigned int quirks;
 };