Skip to content

Commit

Permalink
sof: coherent: Don't mark "struct coherent" as packed
Browse files Browse the repository at this point in the history
On 64-bit systems (i.e: i.MX93), marking "struct coherent"
as packed leads to compilation warnings such as:

"warning: taking address of packed member of 'struct coherent'
may result in an unaligned pointer value"

This is because the "list" attribute is found at offset 36,
which is not 8B-aligned. In contrast, 32-bit systems
don't have this problem as the "list" attribute is found at
offset 24 which is 4B-aligned.

Since marking "struct coherent" as packed doesn't seem to
be necessary, remove this to fix the compilation warnings.
On 32-bit systems, 'pahole' shows no difference between
the 'packed' and the non-'packed' cases as the fields are
already naturally aligned at the moment.

A more detailed discussion regarding this issue can be
found here: #8521.

Signed-off-by: Laurentiu Mihalcea <[email protected]>
  • Loading branch information
LaurentiuM1234 authored and kv2019i committed Nov 28, 2023
1 parent 4509d7c commit d42911d
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/include/sof/coherent.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#include <sof/lib/memory.h>
#include <sof/lib/cpu.h>

#define __coherent __attribute__((packed, aligned(DCACHE_LINE_SIZE)))
#define __coherent __aligned(DCACHE_LINE_SIZE)

/*
* The coherent API allows optimized access to memory by multiple cores, using
Expand Down

0 comments on commit d42911d

Please sign in to comment.