
figo1802 at gmail
Jul 4, 2009, 8:11 PM
Post #3 of 3
(95 views)
Permalink
|
|
Re: [PATCH]mempool.c : clean up type-casting twice
[In reply to]
|
|
On Sun, 2009-07-05 at 05:01 +0200, Ingo Molnar wrote: > * Figo.zhang <figo1802[at]gmail.com> wrote: > > > clean up type-casting twice > > > > Signed-off-by: Figo.zhang <figo1802[at]gmail.com> > > --- > > mm/mempool.c | 6 +++--- > > 1 files changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/mm/mempool.c b/mm/mempool.c > > index a46eb1b..0aec628 100644 > > --- a/mm/mempool.c > > +++ b/mm/mempool.c > > @@ -303,7 +303,7 @@ EXPORT_SYMBOL(mempool_free_slab); > > */ > > void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data) > > { > > - size_t size = (size_t)(long)pool_data; > > + size_t size = (size_t)pool_data; > > return kmalloc(size, gfp_mask); > > } > > EXPORT_SYMBOL(mempool_kmalloc); > > @@ -327,14 +327,14 @@ EXPORT_SYMBOL(mempool_kfree); > > */ > > void *mempool_alloc_pages(gfp_t gfp_mask, void *pool_data) > > { > > - int order = (int)(long)pool_data; > > + int order = (int)pool_data; > > return alloc_pages(gfp_mask, order); > > } > > EXPORT_SYMBOL(mempool_alloc_pages); > > > > void mempool_free_pages(void *element, void *pool_data) > > { > > - int order = (int)(long)pool_data; > > + int order = (int)pool_data; > > __free_pages(element, order); > > What's the motivation? > > On 64-bit platforms, casting from a pointer (64-bit) straight to int > (32-bit) can lose information and is thus a potential source of > bugs, so certain compilers will warn about it with: > > warning: cast from pointer to integer of different size > > The double cast is a "I know what I'm doing" signal. > thanks. void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data) { size_t size = (size_t)(long)pool_data; return kmalloc(size, gfp_mask); } void *mempool_kzalloc(gfp_t gfp_mask, void *pool_data) { size_t size = (size_t) pool_data; return kzalloc(size, gfp_mask); } at this point, is it no need for type-casting twice ? because size_t is typedef "unsigned int" in x86_32, "unsigned long " in x86_64. Best, Figo.zhang -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo[at]vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|