All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiang Liu <liuj97@gmail.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-arch@vger.kernel.org,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	David Howells <dhowells@redhat.com>,
	Jiang Liu <jiang.liu@huawei.com>,
	Wen Congyang <wency@cn.fujitsu.com>,
	linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org,
	Mark Salter <msalter@redhat.com>,
	linux-kernel@vger.kernel.org, Michal Hocko <mhocko@suse.cz>,
	Minchan Kim <minchan@kernel.org>, Mel Gorman <mgorman@suse.de>,
	David Rientjes <rientjes@google.com>,
	Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Jianguo Wu <wujianguo@huawei.com>
Subject: Re: [PATCH v4, part3 01/15] mm: fix build warnings caused by free_reserved_area()
Date: Sat, 20 Apr 2013 23:34:34 +0800	[thread overview]
Message-ID: <5172B58A.3090006@gmail.com> (raw)
In-Reply-To: <20130419165208.GZ14496@n2100.arm.linux.org.uk>

On 04/20/2013 12:52 AM, Russell King - ARM Linux wrote:
> On Sat, Apr 06, 2013 at 09:54:55PM +0800, Jiang Liu wrote:
>> Fix following build warnings cuased by free_reserved_area():
>>
>> arch/arm/mm/init.c: In function 'mem_init':
>> arch/arm/mm/init.c:603:2: warning: passing argument 1 of 'free_reserved_area' makes integer from pointer without a cast [enabled by default]
>>   free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
>>   ^
>> In file included from include/linux/mman.h:4:0,
>>                  from arch/arm/mm/init.c:15:
>> include/linux/mm.h:1301:22: note: expected 'long unsigned int' but argument is of type 'void *'
>>  extern unsigned long free_reserved_area(unsigned long start, unsigned long end,
>>
>>    mm/page_alloc.c: In function 'free_reserved_area':
>>>> mm/page_alloc.c:5134:3: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast [enabled by default]
>>    In file included from arch/mips/include/asm/page.h:49:0,
>>                     from include/linux/mmzone.h:20,
>>                     from include/linux/gfp.h:4,
>>                     from include/linux/mm.h:8,
>>                     from mm/page_alloc.c:18:
>>    arch/mips/include/asm/io.h:119:29: note: expected 'const volatile void *' but argument is of type 'long unsigned int'
>>    mm/page_alloc.c: In function 'free_area_init_nodes':
>>    mm/page_alloc.c:5030:34: warning: array subscript is below array bounds [-Warray-bounds]
>>
>> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
>> Reported-by: Arnd Bergmann <arnd@arndb.de>
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: linux-kernel@vger.kernel.org
>> Cc: linux-mm@kvack.org
>> ---
>>  arch/arm/mm/init.c |    6 ++++--
>>  mm/page_alloc.c    |    2 +-
>>  2 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
>> index 9a5cdc0..7a82fcd 100644
>> --- a/arch/arm/mm/init.c
>> +++ b/arch/arm/mm/init.c
>> @@ -600,7 +600,8 @@ void __init mem_init(void)
>>  
>>  #ifdef CONFIG_SA1111
>>  	/* now that our DMA memory is actually so designated, we can free it */
>> -	free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
>> +	free_reserved_area((unsigned long)__va(PHYS_PFN_OFFSET),
>> +			   (unsigned long)swapper_pg_dir, 0, NULL);
>>  #endif
>>  
>>  	free_highpages();
>> @@ -728,7 +729,8 @@ void free_initmem(void)
>>  	extern char __tcm_start, __tcm_end;
>>  
>>  	poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start);
>> -	free_reserved_area(&__tcm_start, &__tcm_end, 0, "TCM link");
>> +	free_reserved_area((unsigned long)&__tcm_start,
>> +			   (unsigned long)&__tcm_end, 0, "TCM link");
>>  #endif
>>  
>>  	poison_init_mem(__init_begin, __init_end - __init_begin);
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index e4923e9..8bf7956 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -5196,7 +5196,7 @@ unsigned long free_reserved_area(unsigned long start, unsigned long end,
>>  	for (pages = 0; pos < end; pos += PAGE_SIZE, pages++) {
>>  		if (poison)
>>  			memset((void *)pos, poison, PAGE_SIZE);
>> -		free_reserved_page(virt_to_page(pos));
>> +		free_reserved_page(virt_to_page((void *)pos));
> 
> Don't all these casts suggest to you that you may have the type wrong
> in the first place?
> 
Hi Russell,
	Good question! 
	Originally free_reserved_area() is designed to simplify free_initrd_mem(), and 
free_initrd_mem() is declared as:
	void free_initrd_mem(unsigned long start, unsigned long end)
	So I have chosen "unsigned long" for free_reserved_area()'s first and second
parameters, otherwise it will cause much more type casts in function free_initrd_mem().
For code purity, we should use "void *" instead. So should we change to "void *" here?
	Regards!
	Gerry

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Jiang Liu <liuj97@gmail.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-arch@vger.kernel.org,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	David Howells <dhowells@redhat.com>,
	Jiang Liu <jiang.liu@huawei.com>,
	Wen Congyang <wency@cn.fujitsu.com>,
	linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org,
	Mark Salter <msalter@redhat.com>,
	linux-kernel@vger.kernel.org, Michal Hocko <mhocko@suse.cz>,
	Minchan Kim <minchan@kernel.org>, Mel Gorman <mgorman@suse.de>,
	David Rientjes <rientjes@google.com>,
	Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Jianguo Wu <wujianguo@huawei.com>
Subject: Re: [PATCH v4, part3 01/15] mm: fix build warnings caused by free_reserved_area()
Date: Sat, 20 Apr 2013 23:34:34 +0800	[thread overview]
Message-ID: <5172B58A.3090006@gmail.com> (raw)
Message-ID: <20130420153434.jskgh09uYRGNbbZE2y6MaovaO9GvrYf87VVXn6_rHz8@z> (raw)
In-Reply-To: <20130419165208.GZ14496@n2100.arm.linux.org.uk>

On 04/20/2013 12:52 AM, Russell King - ARM Linux wrote:
> On Sat, Apr 06, 2013 at 09:54:55PM +0800, Jiang Liu wrote:
>> Fix following build warnings cuased by free_reserved_area():
>>
>> arch/arm/mm/init.c: In function 'mem_init':
>> arch/arm/mm/init.c:603:2: warning: passing argument 1 of 'free_reserved_area' makes integer from pointer without a cast [enabled by default]
>>   free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
>>   ^
>> In file included from include/linux/mman.h:4:0,
>>                  from arch/arm/mm/init.c:15:
>> include/linux/mm.h:1301:22: note: expected 'long unsigned int' but argument is of type 'void *'
>>  extern unsigned long free_reserved_area(unsigned long start, unsigned long end,
>>
>>    mm/page_alloc.c: In function 'free_reserved_area':
>>>> mm/page_alloc.c:5134:3: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast [enabled by default]
>>    In file included from arch/mips/include/asm/page.h:49:0,
>>                     from include/linux/mmzone.h:20,
>>                     from include/linux/gfp.h:4,
>>                     from include/linux/mm.h:8,
>>                     from mm/page_alloc.c:18:
>>    arch/mips/include/asm/io.h:119:29: note: expected 'const volatile void *' but argument is of type 'long unsigned int'
>>    mm/page_alloc.c: In function 'free_area_init_nodes':
>>    mm/page_alloc.c:5030:34: warning: array subscript is below array bounds [-Warray-bounds]
>>
>> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
>> Reported-by: Arnd Bergmann <arnd@arndb.de>
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: linux-kernel@vger.kernel.org
>> Cc: linux-mm@kvack.org
>> ---
>>  arch/arm/mm/init.c |    6 ++++--
>>  mm/page_alloc.c    |    2 +-
>>  2 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
>> index 9a5cdc0..7a82fcd 100644
>> --- a/arch/arm/mm/init.c
>> +++ b/arch/arm/mm/init.c
>> @@ -600,7 +600,8 @@ void __init mem_init(void)
>>  
>>  #ifdef CONFIG_SA1111
>>  	/* now that our DMA memory is actually so designated, we can free it */
>> -	free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
>> +	free_reserved_area((unsigned long)__va(PHYS_PFN_OFFSET),
>> +			   (unsigned long)swapper_pg_dir, 0, NULL);
>>  #endif
>>  
>>  	free_highpages();
>> @@ -728,7 +729,8 @@ void free_initmem(void)
>>  	extern char __tcm_start, __tcm_end;
>>  
>>  	poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start);
>> -	free_reserved_area(&__tcm_start, &__tcm_end, 0, "TCM link");
>> +	free_reserved_area((unsigned long)&__tcm_start,
>> +			   (unsigned long)&__tcm_end, 0, "TCM link");
>>  #endif
>>  
>>  	poison_init_mem(__init_begin, __init_end - __init_begin);
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index e4923e9..8bf7956 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -5196,7 +5196,7 @@ unsigned long free_reserved_area(unsigned long start, unsigned long end,
>>  	for (pages = 0; pos < end; pos += PAGE_SIZE, pages++) {
>>  		if (poison)
>>  			memset((void *)pos, poison, PAGE_SIZE);
>> -		free_reserved_page(virt_to_page(pos));
>> +		free_reserved_page(virt_to_page((void *)pos));
> 
> Don't all these casts suggest to you that you may have the type wrong
> in the first place?
> 
Hi Russell,
	Good question! 
	Originally free_reserved_area() is designed to simplify free_initrd_mem(), and 
free_initrd_mem() is declared as:
	void free_initrd_mem(unsigned long start, unsigned long end)
	So I have chosen "unsigned long" for free_reserved_area()'s first and second
parameters, otherwise it will cause much more type casts in function free_initrd_mem().
For code purity, we should use "void *" instead. So should we change to "void *" here?
	Regards!
	Gerry

WARNING: multiple messages have this Message-ID (diff)
From: liuj97@gmail.com (Jiang Liu)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4, part3 01/15] mm: fix build warnings caused by free_reserved_area()
Date: Sat, 20 Apr 2013 23:34:34 +0800	[thread overview]
Message-ID: <5172B58A.3090006@gmail.com> (raw)
In-Reply-To: <20130419165208.GZ14496@n2100.arm.linux.org.uk>

On 04/20/2013 12:52 AM, Russell King - ARM Linux wrote:
> On Sat, Apr 06, 2013 at 09:54:55PM +0800, Jiang Liu wrote:
>> Fix following build warnings cuased by free_reserved_area():
>>
>> arch/arm/mm/init.c: In function 'mem_init':
>> arch/arm/mm/init.c:603:2: warning: passing argument 1 of 'free_reserved_area' makes integer from pointer without a cast [enabled by default]
>>   free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
>>   ^
>> In file included from include/linux/mman.h:4:0,
>>                  from arch/arm/mm/init.c:15:
>> include/linux/mm.h:1301:22: note: expected 'long unsigned int' but argument is of type 'void *'
>>  extern unsigned long free_reserved_area(unsigned long start, unsigned long end,
>>
>>    mm/page_alloc.c: In function 'free_reserved_area':
>>>> mm/page_alloc.c:5134:3: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast [enabled by default]
>>    In file included from arch/mips/include/asm/page.h:49:0,
>>                     from include/linux/mmzone.h:20,
>>                     from include/linux/gfp.h:4,
>>                     from include/linux/mm.h:8,
>>                     from mm/page_alloc.c:18:
>>    arch/mips/include/asm/io.h:119:29: note: expected 'const volatile void *' but argument is of type 'long unsigned int'
>>    mm/page_alloc.c: In function 'free_area_init_nodes':
>>    mm/page_alloc.c:5030:34: warning: array subscript is below array bounds [-Warray-bounds]
>>
>> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
>> Reported-by: Arnd Bergmann <arnd@arndb.de>
>> Cc: linux-arm-kernel at lists.infradead.org
>> Cc: linux-kernel at vger.kernel.org
>> Cc: linux-mm at kvack.org
>> ---
>>  arch/arm/mm/init.c |    6 ++++--
>>  mm/page_alloc.c    |    2 +-
>>  2 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
>> index 9a5cdc0..7a82fcd 100644
>> --- a/arch/arm/mm/init.c
>> +++ b/arch/arm/mm/init.c
>> @@ -600,7 +600,8 @@ void __init mem_init(void)
>>  
>>  #ifdef CONFIG_SA1111
>>  	/* now that our DMA memory is actually so designated, we can free it */
>> -	free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
>> +	free_reserved_area((unsigned long)__va(PHYS_PFN_OFFSET),
>> +			   (unsigned long)swapper_pg_dir, 0, NULL);
>>  #endif
>>  
>>  	free_highpages();
>> @@ -728,7 +729,8 @@ void free_initmem(void)
>>  	extern char __tcm_start, __tcm_end;
>>  
>>  	poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start);
>> -	free_reserved_area(&__tcm_start, &__tcm_end, 0, "TCM link");
>> +	free_reserved_area((unsigned long)&__tcm_start,
>> +			   (unsigned long)&__tcm_end, 0, "TCM link");
>>  #endif
>>  
>>  	poison_init_mem(__init_begin, __init_end - __init_begin);
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index e4923e9..8bf7956 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -5196,7 +5196,7 @@ unsigned long free_reserved_area(unsigned long start, unsigned long end,
>>  	for (pages = 0; pos < end; pos += PAGE_SIZE, pages++) {
>>  		if (poison)
>>  			memset((void *)pos, poison, PAGE_SIZE);
>> -		free_reserved_page(virt_to_page(pos));
>> +		free_reserved_page(virt_to_page((void *)pos));
> 
> Don't all these casts suggest to you that you may have the type wrong
> in the first place?
> 
Hi Russell,
	Good question! 
	Originally free_reserved_area() is designed to simplify free_initrd_mem(), and 
free_initrd_mem() is declared as:
	void free_initrd_mem(unsigned long start, unsigned long end)
	So I have chosen "unsigned long" for free_reserved_area()'s first and second
parameters, otherwise it will cause much more type casts in function free_initrd_mem().
For code purity, we should use "void *" instead. So should we change to "void *" here?
	Regards!
	Gerry

  reply	other threads:[~2013-04-20 15:34 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-06 13:54 [PATCH v4, part3 00/15] accurately calculate memory statisitic information Jiang Liu
2013-04-06 13:54 ` Jiang Liu
2013-04-06 13:54 ` [PATCH v4, part3 01/15] mm: fix build warnings caused by free_reserved_area() Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-19 16:52   ` Russell King - ARM Linux
2013-04-19 16:52     ` Russell King - ARM Linux
2013-04-19 16:52     ` Russell King - ARM Linux
2013-04-20 15:34     ` Jiang Liu [this message]
2013-04-20 15:34       ` Jiang Liu
2013-04-20 15:34       ` Jiang Liu
2013-04-06 13:54 ` [PATCH v4, part3 02/15] mm: enhance free_reserved_area() to support poisoning memory with zero Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-06 13:54 ` [PATCH v4, part3 03/15] mm/ARM64: kill poison_init_mem() Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-06 13:54 ` [PATCH v4, part3 04/15] mm/x86: use free_reserved_area() to simplify code Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-06 13:54 ` [PATCH v4, part3 05/15] mm/tile: use common help functions to free reserved pages Jiang Liu
2013-04-06 13:54   ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 06/15] mm, powertv: use free_reserved_area() to simplify code Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 07/15] mm, acornfb: " Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 08/15] mm: fix some trivial typos in comments Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 14:36   ` Sergei Shtylyov
2013-04-06 14:36     ` Sergei Shtylyov
2013-04-06 14:45     ` Jiang Liu
2013-04-06 14:45       ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 09/15] mm: use managed_pages to calculate default zonelist order Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 10/15] mm: accurately calculate zone->managed_pages for highmem zones Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 11/15] mm: use a dedicated lock to protect totalram_pages and zone->managed_pages Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-08 13:39   ` Rik van Riel
2013-04-08 13:39     ` Rik van Riel
2013-04-08 16:05     ` Jiang Liu
2013-04-08 16:05       ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 12/15] mm: make __free_pages_bootmem() only available at boot time Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 13/15] mm: correctly update zone->mamaged_pages Jiang Liu
2013-04-06 13:55 ` Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 14/15] mm: concentrate modification of totalram_pages into the mm core Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-06 13:55 ` [PATCH v4, part3 15/15] mm: report available pages as "MemTotal" for each NUMA node Jiang Liu
2013-04-06 13:55   ` Jiang Liu
2013-04-07  1:34 ` [PATCH v4, part3 00/15] accurately calculate memory statisitic information Simon Jeons
2013-04-07  1:34   ` Simon Jeons
2013-04-07 15:08   ` Jiang Liu
2013-04-07 15:08     ` Jiang Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5172B58A.3090006@gmail.com \
    --to=liuj97@gmail.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=akpm@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=jiang.liu@huawei.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mgorman@suse.de \
    --cc=mhocko@suse.cz \
    --cc=minchan@kernel.org \
    --cc=msalter@redhat.com \
    --cc=rientjes@google.com \
    --cc=sergei.shtylyov@cogentembedded.com \
    --cc=wency@cn.fujitsu.com \
    --cc=wujianguo@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.