[linux-dvb] [PATCH] saa716x: don't cast pointers to 32bit int

Manu Abraham abraham.manu at gmail.com
Wed Jan 28 00:51:22 CET 2009


Luca Tettamanti wrote:
> 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 at gmail.com>
> ---
>  Patch applies to HG repo.
> 
>  linux/drivers/media/dvb/saa716x/saa716x_dma.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> Index: saa716x/linux/drivers/media/dvb/saa716x/saa716x_dma.c
> ===================================================================
> --- saa716x.orig/linux/drivers/media/dvb/saa716x/saa716x_dma.c	2008-12-27 21:35:04.000000000 +0100
> +++ saa716x/linux/drivers/media/dvb/saa716x/saa716x_dma.c	2008-12-27 21:35:28.000000000 +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;
>  	}
> 

Applied.

Thanks,
Manu



More information about the linux-dvb mailing list