On Mon, May 04 2015 at 01:05:50 PM, Colin Cross <ccross@xxxxxxxxxxx> wrote: > On Mon, May 4, 2015 at 1:22 AM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: >> On Thu, Apr 09, 2015 at 06:10:04PM -0700, Mitchel Humpherys wrote: >>> We're currently using %lu and %ld to print some variables of type >>> dma_addr_t, which results in the following warning when dma_addr_t is >>> 64-bits wide: >>> >>> drivers/staging/android/ion/ion_chunk_heap.c: In function 'ion_chunk_heap_create': >>> drivers/staging/android/ion/ion_chunk_heap.c:176:2: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'dma_addr_t' [-Wformat=] >>> pr_info("%s: base %lu size %zu align %ld\n", __func__, chunk_heap->base, >>> ^ >>> drivers/staging/android/ion/ion_chunk_heap.c:176:2: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'dma_addr_t' [-Wformat=] >>> >>> Fix this by using %pad as instructed in printk-formats.txt. >>> >>> Signed-off-by: Mitchel Humpherys <mitchelh@xxxxxxxxxxxxxx> >> >> This one was just merged and I was about to email you that it introduces >> some new Smatch warnings, but actually looking at it, it's just wrong. >> >> We want to print "chunk_heap->base" and not "&chunk_heap->base". > > This would be correct if base was a dma_addr_t... > >> And anyway "&chunk_heap->base" is a regular pointer, not a dma_addr_t. > > But it is actually an ion_phys_addr_t, which is currently typedef'd to > unsigned long. Are you using a local patch that replaces > ion_phys_addr_t with dma_addr_t? > >> So please send a new patch that removes the &. > > Removing the & is not correct, lib/vsprintf.c will dereference the arg > for %pad or %pap. I think this patch should just be dropped, the old > %lu was correct for what is in Linus' tree. Ah, you're absolutely correct. We have a local patch that makes ion_phys_addr_t a dma_addr_t (needed for LPAE), which is why I needed to convert the printk format... Greg, can you please drop this patch from your tree? We'll only need this if/when mainline Ion gets LPAE support... -Mitch -- Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel