Skip to content

Commit

Permalink
spi: Reorder fields in 'struct spi_message'
Browse files Browse the repository at this point in the history
Group some variables based on their sizes to reduce hole and avoid padding.
On x86_64, this shrinks the size from 112 to 96 bytes.

This should have no real impact on memory allocation because 'struct
spi_message' is mostly used on stack, but it can save a few cycles
when the structure is initialized with spi_message_init() and co.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Tested-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Link: https://lore.kernel.org/r/c112aad16eb47808e1ec10abd87b3d273c969a68.1677704283.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Christophe JAILLET authored and Mark Brown committed Mar 5, 2023
1 parent 8c220e6 commit ae2ade4
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions include/linux/spi/spi.h
Original file line number Diff line number Diff line change
Expand Up @@ -1093,6 +1093,9 @@ struct spi_message {

unsigned is_dma_mapped:1;

/* spi_prepare_message() was called for this message */
bool prepared;

/* REVISIT: we might want a flag affecting the behavior of the
* last transfer ... allowing things like "read 16 bit length L"
* immediately followed by "read L bytes". Basically imposing
Expand All @@ -1105,11 +1108,11 @@ struct spi_message {
*/

/* Completion is reported through a callback */
int status;
void (*complete)(void *context);
void *context;
unsigned frame_length;
unsigned actual_length;
int status;

/* For optional use by whatever driver currently owns the
* spi_message ... between calls to spi_async and then later
Expand All @@ -1120,9 +1123,6 @@ struct spi_message {

/* List of spi_res reources when the spi message is processed */
struct list_head resources;

/* spi_prepare_message() was called for this message */
bool prepared;
};

static inline void spi_message_init_no_memset(struct spi_message *m)
Expand Down

0 comments on commit ae2ade4

Please sign in to comment.