Thread (3 messages) 3 messages, 2 authors, 2021-03-10

Re: [PATCH iwlwifi-next] iwlwifi: de-const properly where needed

From: Bjoern A. Zeeb <hidden>
Date: 2021-03-10 12:32:10

On 1 Mar 2021, at 7:23, Kalle Valo wrote:
"Bjoern A. Zeeb" [off-list ref] writes:
quoted
In order to de-const variables simply casting through (void *) is
not enough: "cast from 'const .. *' to 'void *' drops const 
qualifier".
Cast through (uintptr_t) as well [1] to make this compile on systems
with more strict requirements.
In addition passing const void *data to dma_map_single() also
drops the (const) qualifier.  De-constify on variable on assignment
which may be overwritten later.  In either case the (void *) cast
to dma_map_single() is not needed (anymore) either.

[1] See __DECONST() in sys/sys/cdefs.h in FreeBSD

Sponsored-by:  The FreeBSD Foundation
Signed-off-by: Bjoern A. Zeeb <redacted>
Why are we using the const in the first place? That sounds like a bug 
to
me.
For the he_cap cases I’ll leave this to Intel to answer as they added 
the
comment that it is writeable.


For the dma_map_single(.., DMA_TO_DEVICE) having const data is probably 
okay.
This seems more (and I can only say from the distance not knowing Linux 
internals)
that the Linux KPI doesn’t/cannot cater for it.  I am not sure why it 
would need
to change a virtual address along the lines and the argument is not 
“const”.

BTW, your patches are hard to read due to excessive context, I guess 
you
are using a very large context value with diff? Our recommendation is 
to
use git with default values, see the wiki below for more info.
Sorry.  I’ll fix the three casts you mentioned on the other review and 
send out
v2 with less context for all of them.


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