Pointers may be 64bit long, casting them to u32 is wrong. For doing math on the address unsigned long is guaranteed to have to correct size to hold the value of the pointer. Signed-off-by: Luca Tettamanti <kronos.it@xxxxxxxxx> --- linux/drivers/media/dvb/saa716x/saa716x_dma.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: b/linux/drivers/media/dvb/saa716x/saa716x_dma.c =================================================================== --- a/linux/drivers/media/dvb/saa716x/saa716x_dma.c 2009-01-18 19:13:35.126021813 +0100 +++ b/linux/drivers/media/dvb/saa716x/saa716x_dma.c 2009-01-18 19:15:34.074015003 +0100 @@ -34,7 +34,7 @@ return -ENOMEM; } - BUG_ON(!(((u32) dmabuf->mem_ptab_phys % SAA716x_PAGE_SIZE) == 0)); + BUG_ON(!(((unsigned long) dmabuf->mem_ptab_phys % SAA716x_PAGE_SIZE) == 0)); return 0; } @@ -126,9 +126,9 @@ } /* align memory to page */ - dmabuf->mem_virt = (void *) PAGE_ALIGN (((u32) dmabuf->mem_virt_noalign)); + dmabuf->mem_virt = (void *) PAGE_ALIGN (((unsigned long) dmabuf->mem_virt_noalign)); - BUG_ON(!((((u32) dmabuf->mem_virt) % SAA716x_PAGE_SIZE) == 0)); + BUG_ON(!((((unsigned long) dmabuf->mem_virt) % SAA716x_PAGE_SIZE) == 0)); } else { dmabuf->mem_virt = buf; } Luca -- "La vita potrebbe non avere alcun significato. Oppure, ancora peggio, potrebbe averne uno che disapprovo". -- Ashleigh Brilliant -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html