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
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 typeOk, 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