Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regmap: sdw-mbq: Reorder regmap_mbq_context struct for better packing

Avoid a hole in struct regmap_mbq_context by shuffling the members
slightly. Pahole before:

struct regmap_mbq_context {
struct device * dev; /* 0 8 */
struct sdw_slave * sdw; /* 8 8 */
struct regmap_sdw_mbq_cfg cfg; /* 16 32 */
int val_size; /* 48 4 */

/* XXX 4 bytes hole, try to pack */

bool (*readable_reg)(struct device *, unsigned int); /* 56 8 */

/* size: 64, cachelines: 1, members: 5 */
/* sum members: 60, holes: 1, sum holes: 4 */
};

Pahole after:

struct regmap_mbq_context {
struct device * dev; /* 0 8 */
struct sdw_slave * sdw; /* 8 8 */
bool (*readable_reg)(struct device *, unsigned int); /* 16 8 */
struct regmap_sdw_mbq_cfg cfg; /* 24 32 */
int val_size; /* 56 4 */

/* size: 64, cachelines: 1, members: 5 */
/* padding: 4 */
};

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20251107104551.1553526-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Charles Keepax and committed by
Mark Brown
6985defd af9c8092

+2 -1
+2 -1
drivers/base/regmap/regmap-sdw-mbq.c
··· 16 16 struct regmap_mbq_context { 17 17 struct device *dev; 18 18 19 + bool (*readable_reg)(struct device *dev, unsigned int reg); 20 + 19 21 struct regmap_sdw_mbq_cfg cfg; 20 22 21 23 int val_size; 22 - bool (*readable_reg)(struct device *dev, unsigned int reg); 23 24 }; 24 25 25 26 static int regmap_sdw_mbq_size(struct regmap_mbq_context *ctx, unsigned int reg)