Thread (6 messages) 6 messages, 3 authors, 2021-08-02

Re: [Question] Alignment requirement for readX() and writeX()

From: Boqun Feng <hidden>
Date: 2021-07-31 01:51:39
Also in: lkml

On Fri, Jul 30, 2021 at 10:24:53PM +0200, Arnd Bergmann wrote:
On Fri, Jul 30, 2021 at 7:31 PM Boqun Feng [off-list ref] wrote:
quoted
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.
Agreed. I wasn't planning to propose this kind of checks for C code.
Just want to understand better on the alignment requirement of these
APIs. Thanks  ;-)

Regards,
Boqun
        Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help