pinctrl: Remove hole in pinctrl_gpio_range
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 28 Oct 2020 14:51:17 +0000 (15:51 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 5 Nov 2020 13:56:50 +0000 (14:56 +0100)
On 64-bit platforms, pointer size and alignment are 64-bit, hence two
4-byte holes are present before the pins and gc members of the
pinctrl_gpio_range structure.  Get rid of these holes by moving the
pins pointer.

This reduces kernel size of an arm64 Rockchip kernel by ca. 512 bytes.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20201028145117.1731876-1-geert+renesas@glider.be
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
include/linux/pinctrl/pinctrl.h

index 2aef59d..70b45d2 100644 (file)
@@ -51,8 +51,8 @@ struct pinctrl_pin_desc {
  * @id: an ID number for the chip in this range
  * @base: base offset of the GPIO range
  * @pin_base: base pin number of the GPIO range if pins == NULL
- * @pins: enumeration of pins in GPIO range or NULL
  * @npins: number of pins in the GPIO range, including the base number
+ * @pins: enumeration of pins in GPIO range or NULL
  * @gc: an optional pointer to a gpio_chip
  */
 struct pinctrl_gpio_range {
@@ -61,8 +61,8 @@ struct pinctrl_gpio_range {
        unsigned int id;
        unsigned int base;
        unsigned int pin_base;
-       unsigned const *pins;
        unsigned int npins;
+       unsigned const *pins;
        struct gpio_chip *gc;
 };