public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] staging: ion: chunk_heap: use pr_debug for heap creation print
@ 2015-04-10  1:10 Mitchel Humpherys
  2015-04-10  1:10 ` [PATCH v2 2/2] staging: ion: chunk_heap: use %pad for printing dma_addr_t's Mitchel Humpherys
  0 siblings, 1 reply; 6+ messages in thread
From: Mitchel Humpherys @ 2015-04-10  1:10 UTC (permalink / raw)
  To: devel, Greg Kroah-Hartman, Android Kernel Team, Colin Cross,
	John Stultz
  Cc: linux-kernel, Mitchel Humpherys

We're currently printing to the kernel log at `info' level when we
successfully create the chunk heap, but success messages should be done
at `debug' level.  Fix this.

Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
---
 drivers/staging/android/ion/ion_chunk_heap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/android/ion/ion_chunk_heap.c b/drivers/staging/android/ion/ion_chunk_heap.c
index 3e6ec2ee6802..54746157d799 100644
--- a/drivers/staging/android/ion/ion_chunk_heap.c
+++ b/drivers/staging/android/ion/ion_chunk_heap.c
@@ -173,7 +173,7 @@ struct ion_heap *ion_chunk_heap_create(struct ion_platform_heap *heap_data)
 	chunk_heap->heap.ops = &chunk_heap_ops;
 	chunk_heap->heap.type = ION_HEAP_TYPE_CHUNK;
 	chunk_heap->heap.flags = ION_HEAP_FLAG_DEFER_FREE;
-	pr_info("%s: base %lu size %zu align %ld\n", __func__, chunk_heap->base,
+	pr_debug("%s: base %lu size %zu align %ld\n", __func__, chunk_heap->base,
 		heap_data->size, heap_data->align);
 
 	return &chunk_heap->heap;
-- 
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/2] staging: ion: chunk_heap: use %pad for printing dma_addr_t's
  2015-04-10  1:10 [PATCH v2 1/2] staging: ion: chunk_heap: use pr_debug for heap creation print Mitchel Humpherys
@ 2015-04-10  1:10 ` Mitchel Humpherys
  2015-05-04  8:22   ` Dan Carpenter
  0 siblings, 1 reply; 6+ messages in thread
From: Mitchel Humpherys @ 2015-04-10  1:10 UTC (permalink / raw)
  To: devel, Greg Kroah-Hartman, Android Kernel Team, Colin Cross,
	John Stultz
  Cc: linux-kernel, Mitchel Humpherys

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@codeaurora.org>
---
 drivers/staging/android/ion/ion_chunk_heap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/android/ion/ion_chunk_heap.c b/drivers/staging/android/ion/ion_chunk_heap.c
index 54746157d799..6b3e18aa1c64 100644
--- a/drivers/staging/android/ion/ion_chunk_heap.c
+++ b/drivers/staging/android/ion/ion_chunk_heap.c
@@ -173,8 +173,8 @@ struct ion_heap *ion_chunk_heap_create(struct ion_platform_heap *heap_data)
 	chunk_heap->heap.ops = &chunk_heap_ops;
 	chunk_heap->heap.type = ION_HEAP_TYPE_CHUNK;
 	chunk_heap->heap.flags = ION_HEAP_FLAG_DEFER_FREE;
-	pr_debug("%s: base %lu size %zu align %ld\n", __func__, chunk_heap->base,
-		heap_data->size, heap_data->align);
+	pr_debug("%s: base %pad size %zu align %pad\n", __func__,
+		&chunk_heap->base, heap_data->size, &heap_data->align);
 
 	return &chunk_heap->heap;
 
-- 
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] staging: ion: chunk_heap: use %pad for printing dma_addr_t's
  2015-04-10  1:10 ` [PATCH v2 2/2] staging: ion: chunk_heap: use %pad for printing dma_addr_t's Mitchel Humpherys
@ 2015-05-04  8:22   ` Dan Carpenter
  2015-05-04 20:05     ` Colin Cross
  0 siblings, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2015-05-04  8:22 UTC (permalink / raw)
  To: Mitchel Humpherys
  Cc: devel, Greg Kroah-Hartman, Android Kernel Team, Colin Cross,
	John Stultz, linux-kernel

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@codeaurora.org>

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".

And anyway "&chunk_heap->base" is a regular pointer, not a dma_addr_t.

So please send a new patch that removes the &.

regards,
dan carpenter

> ---
>  drivers/staging/android/ion/ion_chunk_heap.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/android/ion/ion_chunk_heap.c b/drivers/staging/android/ion/ion_chunk_heap.c
> index 54746157d799..6b3e18aa1c64 100644
> --- a/drivers/staging/android/ion/ion_chunk_heap.c
> +++ b/drivers/staging/android/ion/ion_chunk_heap.c
> @@ -173,8 +173,8 @@ struct ion_heap *ion_chunk_heap_create(struct ion_platform_heap *heap_data)
>  	chunk_heap->heap.ops = &chunk_heap_ops;
>  	chunk_heap->heap.type = ION_HEAP_TYPE_CHUNK;
>  	chunk_heap->heap.flags = ION_HEAP_FLAG_DEFER_FREE;
> -	pr_debug("%s: base %lu size %zu align %ld\n", __func__, chunk_heap->base,
> -		heap_data->size, heap_data->align);
> +	pr_debug("%s: base %pad size %zu align %pad\n", __func__,
> +		&chunk_heap->base, heap_data->size, &heap_data->align);
>  
>  	return &chunk_heap->heap;
>  
> -- 
> 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@linuxdriverproject.org
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] staging: ion: chunk_heap: use %pad for printing dma_addr_t's
  2015-05-04  8:22   ` Dan Carpenter
@ 2015-05-04 20:05     ` Colin Cross
  2015-05-05  5:59       ` Mitchel Humpherys
  0 siblings, 1 reply; 6+ messages in thread
From: Colin Cross @ 2015-05-04 20:05 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Mitchel Humpherys, devel, Greg Kroah-Hartman, Android Kernel Team,
	John Stultz, lkml

On Mon, May 4, 2015 at 1:22 AM, Dan Carpenter <dan.carpenter@oracle.com> 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@codeaurora.org>
>
> 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.

> regards,
> dan carpenter
>
>> ---
>>  drivers/staging/android/ion/ion_chunk_heap.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/staging/android/ion/ion_chunk_heap.c b/drivers/staging/android/ion/ion_chunk_heap.c
>> index 54746157d799..6b3e18aa1c64 100644
>> --- a/drivers/staging/android/ion/ion_chunk_heap.c
>> +++ b/drivers/staging/android/ion/ion_chunk_heap.c
>> @@ -173,8 +173,8 @@ struct ion_heap *ion_chunk_heap_create(struct ion_platform_heap *heap_data)
>>       chunk_heap->heap.ops = &chunk_heap_ops;
>>       chunk_heap->heap.type = ION_HEAP_TYPE_CHUNK;
>>       chunk_heap->heap.flags = ION_HEAP_FLAG_DEFER_FREE;
>> -     pr_debug("%s: base %lu size %zu align %ld\n", __func__, chunk_heap->base,
>> -             heap_data->size, heap_data->align);
>> +     pr_debug("%s: base %pad size %zu align %pad\n", __func__,
>> +             &chunk_heap->base, heap_data->size, &heap_data->align);
>>
>>       return &chunk_heap->heap;
>>
>> --
>> 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@linuxdriverproject.org
>> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
>
> To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.

+

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] staging: ion: chunk_heap: use %pad for printing dma_addr_t's
  2015-05-04 20:05     ` Colin Cross
@ 2015-05-05  5:59       ` Mitchel Humpherys
  2015-05-08  7:26         ` Greg Kroah-Hartman
  0 siblings, 1 reply; 6+ messages in thread
From: Mitchel Humpherys @ 2015-05-05  5:59 UTC (permalink / raw)
  To: Colin Cross
  Cc: Dan Carpenter, devel, Greg Kroah-Hartman, Android Kernel Team,
	John Stultz, lkml

On Mon, May 04 2015 at 01:05:50 PM, Colin Cross <ccross@android.com> wrote:
> On Mon, May 4, 2015 at 1:22 AM, Dan Carpenter <dan.carpenter@oracle.com> 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@codeaurora.org>
>>
>> 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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] staging: ion: chunk_heap: use %pad for printing dma_addr_t's
  2015-05-05  5:59       ` Mitchel Humpherys
@ 2015-05-08  7:26         ` Greg Kroah-Hartman
  0 siblings, 0 replies; 6+ messages in thread
From: Greg Kroah-Hartman @ 2015-05-08  7:26 UTC (permalink / raw)
  To: Mitchel Humpherys
  Cc: Colin Cross, lkml, John Stultz, devel, Android Kernel Team,
	Dan Carpenter

On Mon, May 04, 2015 at 10:59:39PM -0700, Mitchel Humpherys wrote:
> On Mon, May 04 2015 at 01:05:50 PM, Colin Cross <ccross@android.com> wrote:
> > On Mon, May 4, 2015 at 1:22 AM, Dan Carpenter <dan.carpenter@oracle.com> 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@codeaurora.org>
> >>
> >> 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...

Now dropped, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-05-08  7:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-10  1:10 [PATCH v2 1/2] staging: ion: chunk_heap: use pr_debug for heap creation print Mitchel Humpherys
2015-04-10  1:10 ` [PATCH v2 2/2] staging: ion: chunk_heap: use %pad for printing dma_addr_t's Mitchel Humpherys
2015-05-04  8:22   ` Dan Carpenter
2015-05-04 20:05     ` Colin Cross
2015-05-05  5:59       ` Mitchel Humpherys
2015-05-08  7:26         ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox