Re: [Question] Alignment requirement for readX() and writeX()
From: Arnd Bergmann <arnd@arndb.de>
Date: 2021-07-30 20:25:14
Also in:
lkml
From: Arnd Bergmann <arnd@arndb.de>
Date: 2021-07-30 20:25:14
Also in:
lkml
On Fri, Jul 30, 2021 at 7:31 PM Boqun Feng [off-list ref] wrote:
On Fri, Jul 30, 2021 at 06:58:30PM +0200, Arnd Bergmann wrote:
If we want to check, I'd expect we do the checks inside
readX()/writeX(), for example, readl() could be implemented as:
#define readl(c) \
({ \
u32 __v; \
\
/* alignment checking */ \
BUG_ON(c & (sizeof(__v) - 1)); \
__v = readl_relaxed(c); \
__iormb(__v); \
__v; \
})
It's a runtime check, so if anyone hates it I can understand ;-)
Right, I really don't think that adds any value, this just replaces one
oops message with a more different oops message, while adding
some overhead.
Arnd