From: Dave Hansen I'm sure there's a good reason for these functions to take virtual addresses as unsigned longs, so suppress the warnings and cast them to the proper types before calling the virt/phys conversion functions A perfectly acceptable alternative would be to go and change free_pages() to stop taking unsigned longs for virtual addresses, but this has a much smaller impact. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton --- 25-akpm/mm/page_alloc.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN mm/page_alloc.c~call-virt_to_page-with-void-not-ul mm/page_alloc.c --- 25/mm/page_alloc.c~call-virt_to_page-with-void-not-ul 2004-08-23 23:07:25.276203576 -0700 +++ 25-akpm/mm/page_alloc.c 2004-08-23 23:07:25.288201752 -0700 @@ -909,8 +909,8 @@ EXPORT_SYMBOL(__free_pages); fastcall void free_pages(unsigned long addr, unsigned int order) { if (addr != 0) { - BUG_ON(!virt_addr_valid(addr)); - __free_pages(virt_to_page(addr), order); + BUG_ON(!virt_addr_valid((void *)addr)); + __free_pages(virt_to_page((void *)addr), order); } } _