Thread (8 messages) 8 messages, 5 authors, 2007-08-31

Re: [PATCH 13/30] net: Don't do pointless kmalloc return value casts in zd1211 driver

From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2007-08-31 09:31:22
Also in: lkml, netdev

Jesper Juhl [off-list ref] wrote:
On 30/08/2007, Daniel Drake [off-list ref] wrote:
quoted
Jesper Juhl wrote:
quoted
Since kmalloc() returns a void pointer there is no reason to cast
its return value.
This patch also removes a pointless initialization of a variable.
NAK: adds a sparse warning
zd_chip.c:116:15: warning: implicit cast to nocast type
Ok, I must admit I didn't check with sparse since it seemed pointless
- we usually never cast void pointers to other pointer types,
specifically because the C language nicely guarantees that the right
thing will happen without the cast.  Sometimes we have to cast them to
integer types, su sure we need the cast there.   But what on earth
makes a "zd_addr_t *" so special that we have to explicitly cast a
"void *" to that type?

I see it's defined as
 typedef u32 __nocast zd_addr_t;
in drivers/net/wireless/zd1211rw/zd_types.h , but why the __nocast ?
Nevermind the __nocast, this looks like a bug in sparse.  Just
because a base type is __nocast, sparse shouldn't infer that a
pointer to it should also be __nocast.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} [off-list ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help