LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH -mm] x86_64: kill 19000+ sparse warnings
@ 2007-04-26  5:45 Randy Dunlap
  2007-04-26  5:55 ` Andrew Morton
  2007-04-26  9:24 ` [PATCH -mm] " Andi Kleen
  0 siblings, 2 replies; 10+ messages in thread
From: Randy Dunlap @ 2007-04-26  5:45 UTC (permalink / raw)
  To: lkml; +Cc: ak, akpm

From: Randy Dunlap <randy.dunlap@oracle.com>

Eliminate 19439 (!!) sparse warnings like:
include/linux/mm.h:321:22: warning: constant 0xffff810000000000 is so big it is unsigned long

Eliminate 56 sparse warnings like:
arch/x86_64/kernel/setup.c:248:16: warning: constant 0xffffffff80000000 is so big it is unsigned long

Eliminate 5 sparse warnings like:
arch/x86_64/kernel/module.c:49:13: warning: constant 0xfffffffffff00000 is so big it is unsigned long

Eliminate 23 sparse warnings like:
arch/x86_64/mm/init.c:551:37: warning: constant 0xffffc20000000000 is so big it is unsigned long

Eliminate 6 sparse warnings like:
arch/x86_64/kernel/module.c:49:13: warning: constant 0xffffffff88000000 is so big it is unsigned long

Eliminate 23 sparse warnings like:
arch/x86_64/mm/init.c:552:6: warning: constant 0xffffe1ffffffffff is so big it is unsigned long

Eliminate 3 sparse warnings like:
arch/x86_64/kernel/e820.c:186:17: warning: constant 0x3fffffffffff is so big it is long

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
---
 include/asm-x86_64/page.h    |   11 +++++++++++
 include/asm-x86_64/pgtable.h |    9 +++++++++
 2 files changed, 20 insertions(+)

--- linux-2.6.21-rc7-mm1.orig/include/asm-x86_64/page.h
+++ linux-2.6.21-rc7-mm1/include/asm-x86_64/page.h
@@ -80,9 +80,16 @@ extern unsigned long phys_base;
 
 #define __PHYSICAL_START	CONFIG_PHYSICAL_START
 #define __KERNEL_ALIGN		0x200000
+
+#ifdef __ASSEMBLY__
 #define __START_KERNEL		(__START_KERNEL_map + __PHYSICAL_START)
 #define __START_KERNEL_map	0xffffffff80000000
 #define __PAGE_OFFSET           0xffff810000000000
+#else
+#define __START_KERNEL		(__START_KERNEL_map + __PHYSICAL_START)
+#define __START_KERNEL_map	0xffffffff80000000UL
+#define __PAGE_OFFSET           0xffff810000000000UL
+#endif
 
 /* to align the pointer to the (next) page boundary */
 #define PAGE_ALIGN(addr)	(((addr)+PAGE_SIZE-1)&PAGE_MASK)
@@ -94,7 +101,11 @@ extern unsigned long phys_base;
 #define __VIRTUAL_MASK		((_AC(1,UL) << __VIRTUAL_MASK_SHIFT) - 1)
 
 #define KERNEL_TEXT_SIZE  (40*1024*1024)
+#ifdef __ASSEMBLY__
 #define KERNEL_TEXT_START 0xffffffff80000000
+#else
+#define KERNEL_TEXT_START 0xffffffff80000000UL
+#endif
 
 #ifndef __ASSEMBLY__
 
--- linux-2.6.21-rc7-mm1.orig/include/asm-x86_64/pgtable.h
+++ linux-2.6.21-rc7-mm1/include/asm-x86_64/pgtable.h
@@ -134,12 +134,21 @@ static inline pte_t ptep_get_and_clear_f
 #define USER_PTRS_PER_PGD	((TASK_SIZE-1)/PGDIR_SIZE+1)
 #define FIRST_USER_ADDRESS	0
 
+#ifdef __ASSEMBLY__
 #define MAXMEM		 0x3fffffffffff
 #define VMALLOC_START    0xffffc20000000000
 #define VMALLOC_END      0xffffe1ffffffffff
 #define MODULES_VADDR    0xffffffff88000000
 #define MODULES_END      0xfffffffffff00000
 #define MODULES_LEN   (MODULES_END - MODULES_VADDR)
+#else
+#define MAXMEM		 0x3fffffffffffUL
+#define VMALLOC_START    0xffffc20000000000UL
+#define VMALLOC_END      0xffffe1ffffffffffUL
+#define MODULES_VADDR    0xffffffff88000000UL
+#define MODULES_END      0xfffffffffff00000UL
+#define MODULES_LEN   (MODULES_END - MODULES_VADDR)
+#endif
 
 #define _PAGE_BIT_PRESENT	0
 #define _PAGE_BIT_RW		1

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

* Re: [PATCH -mm] x86_64: kill 19000+ sparse warnings
  2007-04-26  5:45 [PATCH -mm] x86_64: kill 19000+ sparse warnings Randy Dunlap
@ 2007-04-26  5:55 ` Andrew Morton
  2007-04-26  6:07   ` Randy Dunlap
  2007-04-26  7:15   ` [PATCH -mm, v2] " Randy Dunlap
  2007-04-26  9:24 ` [PATCH -mm] " Andi Kleen
  1 sibling, 2 replies; 10+ messages in thread
From: Andrew Morton @ 2007-04-26  5:55 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: lkml, ak

On Wed, 25 Apr 2007 22:45:09 -0700 Randy Dunlap <randy.dunlap@oracle.com> wrote:

> From: Randy Dunlap <randy.dunlap@oracle.com>
> 
> Eliminate 19439 (!!) sparse warnings like:
> include/linux/mm.h:321:22: warning: constant 0xffff810000000000 is so big it is unsigned long
> 
> Eliminate 56 sparse warnings like:
> arch/x86_64/kernel/setup.c:248:16: warning: constant 0xffffffff80000000 is so big it is unsigned long
> 
> Eliminate 5 sparse warnings like:
> arch/x86_64/kernel/module.c:49:13: warning: constant 0xfffffffffff00000 is so big it is unsigned long
> 
> Eliminate 23 sparse warnings like:
> arch/x86_64/mm/init.c:551:37: warning: constant 0xffffc20000000000 is so big it is unsigned long
> 
> Eliminate 6 sparse warnings like:
> arch/x86_64/kernel/module.c:49:13: warning: constant 0xffffffff88000000 is so big it is unsigned long
> 
> Eliminate 23 sparse warnings like:
> arch/x86_64/mm/init.c:552:6: warning: constant 0xffffe1ffffffffff is so big it is unsigned long
> 
> Eliminate 3 sparse warnings like:
> arch/x86_64/kernel/e820.c:186:17: warning: constant 0x3fffffffffff is so big it is long
> 
> ...
>
> +#ifdef __ASSEMBLY__
>  #define MAXMEM		 0x3fffffffffff
>  #define VMALLOC_START    0xffffc20000000000
>  #define VMALLOC_END      0xffffe1ffffffffff
>  #define MODULES_VADDR    0xffffffff88000000
>  #define MODULES_END      0xfffffffffff00000
>  #define MODULES_LEN   (MODULES_END - MODULES_VADDR)
> +#else
> +#define MAXMEM		 0x3fffffffffffUL
> +#define VMALLOC_START    0xffffc20000000000UL
> +#define VMALLOC_END      0xffffe1ffffffffffUL
> +#define MODULES_VADDR    0xffffffff88000000UL
> +#define MODULES_END      0xfffffffffff00000UL
> +#define MODULES_LEN   (MODULES_END - MODULES_VADDR)
> +#endif
>  

hm, the duplication is unfortunate.

I wonder if it's worth doing a cpp token-pasting trick to avoid having to
do that.


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

* Re: [PATCH -mm] x86_64: kill 19000+ sparse warnings
  2007-04-26  5:55 ` Andrew Morton
@ 2007-04-26  6:07   ` Randy Dunlap
  2007-04-26  6:14     ` Andrew Morton
  2007-04-26  7:15   ` [PATCH -mm, v2] " Randy Dunlap
  1 sibling, 1 reply; 10+ messages in thread
From: Randy Dunlap @ 2007-04-26  6:07 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml, ak

Andrew Morton wrote:
> On Wed, 25 Apr 2007 22:45:09 -0700 Randy Dunlap <randy.dunlap@oracle.com> wrote:
> 
>> From: Randy Dunlap <randy.dunlap@oracle.com>
>>
>> Eliminate 19439 (!!) sparse warnings like:
>> include/linux/mm.h:321:22: warning: constant 0xffff810000000000 is so big it is unsigned long
>>
>> Eliminate 56 sparse warnings like:
>> arch/x86_64/kernel/setup.c:248:16: warning: constant 0xffffffff80000000 is so big it is unsigned long
>>
>> Eliminate 5 sparse warnings like:
>> arch/x86_64/kernel/module.c:49:13: warning: constant 0xfffffffffff00000 is so big it is unsigned long
>>
>> Eliminate 23 sparse warnings like:
>> arch/x86_64/mm/init.c:551:37: warning: constant 0xffffc20000000000 is so big it is unsigned long
>>
>> Eliminate 6 sparse warnings like:
>> arch/x86_64/kernel/module.c:49:13: warning: constant 0xffffffff88000000 is so big it is unsigned long
>>
>> Eliminate 23 sparse warnings like:
>> arch/x86_64/mm/init.c:552:6: warning: constant 0xffffe1ffffffffff is so big it is unsigned long
>>
>> Eliminate 3 sparse warnings like:
>> arch/x86_64/kernel/e820.c:186:17: warning: constant 0x3fffffffffff is so big it is long
>>
>> ...
>>
>> +#ifdef __ASSEMBLY__
>>  #define MAXMEM		 0x3fffffffffff
>>  #define VMALLOC_START    0xffffc20000000000
>>  #define VMALLOC_END      0xffffe1ffffffffff
>>  #define MODULES_VADDR    0xffffffff88000000
>>  #define MODULES_END      0xfffffffffff00000
>>  #define MODULES_LEN   (MODULES_END - MODULES_VADDR)
>> +#else
>> +#define MAXMEM		 0x3fffffffffffUL
>> +#define VMALLOC_START    0xffffc20000000000UL
>> +#define VMALLOC_END      0xffffe1ffffffffffUL
>> +#define MODULES_VADDR    0xffffffff88000000UL
>> +#define MODULES_END      0xfffffffffff00000UL
>> +#define MODULES_LEN   (MODULES_END - MODULES_VADDR)
>> +#endif
>>  
> 
> hm, the duplication is unfortunate.

Yep.

> I wonder if it's worth doing a cpp token-pasting trick to avoid having to
> do that.

oh.  there is already an include/asm-x86_64/const.h that will help
with that.  I'll try it out.


-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

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

* Re: [PATCH -mm] x86_64: kill 19000+ sparse warnings
  2007-04-26  6:07   ` Randy Dunlap
@ 2007-04-26  6:14     ` Andrew Morton
  2007-04-26  6:21       ` Randy Dunlap
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew Morton @ 2007-04-26  6:14 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: lkml, ak

On Wed, 25 Apr 2007 23:07:56 -0700 Randy Dunlap <randy.dunlap@oracle.com> wrote:

> oh.  there is already an include/asm-x86_64/const.h that will help
> with that.  I'll try it out.

No there isn't ;)  There's a sparc64 one which looks good.  Worth promoting
to include/linux?

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

* Re: [PATCH -mm] x86_64: kill 19000+ sparse warnings
  2007-04-26  6:14     ` Andrew Morton
@ 2007-04-26  6:21       ` Randy Dunlap
  2007-04-26  6:28         ` Andrew Morton
  0 siblings, 1 reply; 10+ messages in thread
From: Randy Dunlap @ 2007-04-26  6:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml, ak

Andrew Morton wrote:
> On Wed, 25 Apr 2007 23:07:56 -0700 Randy Dunlap <randy.dunlap@oracle.com> wrote:
> 
>> oh.  there is already an include/asm-x86_64/const.h that will help
>> with that.  I'll try it out.
> 
> No there isn't ;)  There's a sparc64 one which looks good.  Worth promoting
> to include/linux?

Did you look in -mm?  I did.

-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

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

* Re: [PATCH -mm] x86_64: kill 19000+ sparse warnings
  2007-04-26  6:21       ` Randy Dunlap
@ 2007-04-26  6:28         ` Andrew Morton
  2007-04-26  6:33           ` Randy Dunlap
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew Morton @ 2007-04-26  6:28 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: lkml, ak

On Wed, 25 Apr 2007 23:21:55 -0700 Randy Dunlap <randy.dunlap@oracle.com> wrote:

> Andrew Morton wrote:
> > On Wed, 25 Apr 2007 23:07:56 -0700 Randy Dunlap <randy.dunlap@oracle.com> wrote:
> > 
> >> oh.  there is already an include/asm-x86_64/const.h that will help
> >> with that.  I'll try it out.
> > 
> > No there isn't ;)  There's a sparc64 one which looks good.  Worth promoting
> > to include/linux?
> 
> Did you look in -mm?  I did.
> 

Oh.

Still, duplicating that file seems silly.

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

* Re: [PATCH -mm] x86_64: kill 19000+ sparse warnings
  2007-04-26  6:28         ` Andrew Morton
@ 2007-04-26  6:33           ` Randy Dunlap
  0 siblings, 0 replies; 10+ messages in thread
From: Randy Dunlap @ 2007-04-26  6:33 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml, ak

Andrew Morton wrote:
> On Wed, 25 Apr 2007 23:21:55 -0700 Randy Dunlap <randy.dunlap@oracle.com> wrote:
> 
>> Andrew Morton wrote:
>>> On Wed, 25 Apr 2007 23:07:56 -0700 Randy Dunlap <randy.dunlap@oracle.com> wrote:
>>>
>>>> oh.  there is already an include/asm-x86_64/const.h that will help
>>>> with that.  I'll try it out.
>>> No there isn't ;)  There's a sparc64 one which looks good.  Worth promoting
>>> to include/linux?
>> Did you look in -mm?  I did.
>>
> 
> Oh.
> 
> Still, duplicating that file seems silly.

Ack.  But that's a different patch.  :)

-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

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

* [PATCH -mm, v2] x86_64: kill 19000+ sparse warnings
  2007-04-26  5:55 ` Andrew Morton
  2007-04-26  6:07   ` Randy Dunlap
@ 2007-04-26  7:15   ` Randy Dunlap
  1 sibling, 0 replies; 10+ messages in thread
From: Randy Dunlap @ 2007-04-26  7:15 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml, ak

> hm, the duplication is unfortunate.
> 
> I wonder if it's worth doing a cpp token-pasting trick to avoid having to
> do that.


From: Randy Dunlap <randy.dunlap@oracle.com>

Eliminate 19439 (!!) sparse warnings like:
include/linux/mm.h:321:22: warning: constant 0xffff810000000000 is so big it is unsigned long

Eliminate 56 sparse warnings like:
arch/x86_64/kernel/setup.c:248:16: warning: constant 0xffffffff80000000 is so big it is unsigned long

Eliminate 5 sparse warnings like:
arch/x86_64/kernel/module.c:49:13: warning: constant 0xfffffffffff00000 is so big it is unsigned long

Eliminate 23 sparse warnings like:
arch/x86_64/mm/init.c:551:37: warning: constant 0xffffc20000000000 is so big it is unsigned long

Eliminate 6 sparse warnings like:
arch/x86_64/kernel/module.c:49:13: warning: constant 0xffffffff88000000 is so big it is unsigned long

Eliminate 23 sparse warnings like:
arch/x86_64/mm/init.c:552:6: warning: constant 0xffffe1ffffffffff is so big it is unsigned long

Eliminate 3 sparse warnings like:
arch/x86_64/kernel/e820.c:186:17: warning: constant 0x3fffffffffff is so big it is long

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
---
 include/asm-x86_64/page.h    |    7 ++++---
 include/asm-x86_64/pgtable.h |   10 +++++-----
 2 files changed, 9 insertions(+), 8 deletions(-)

--- linux-2.6.21-rc7-mm1.orig/include/asm-x86_64/page.h
+++ linux-2.6.21-rc7-mm1/include/asm-x86_64/page.h
@@ -80,9 +80,10 @@ extern unsigned long phys_base;
 
 #define __PHYSICAL_START	CONFIG_PHYSICAL_START
 #define __KERNEL_ALIGN		0x200000
+
 #define __START_KERNEL		(__START_KERNEL_map + __PHYSICAL_START)
-#define __START_KERNEL_map	0xffffffff80000000
-#define __PAGE_OFFSET           0xffff810000000000
+#define __START_KERNEL_map	_AC(0xffffffff80000000, UL)
+#define __PAGE_OFFSET           _AC(0xffff810000000000, UL)
 
 /* to align the pointer to the (next) page boundary */
 #define PAGE_ALIGN(addr)	(((addr)+PAGE_SIZE-1)&PAGE_MASK)
@@ -94,7 +95,7 @@ extern unsigned long phys_base;
 #define __VIRTUAL_MASK		((_AC(1,UL) << __VIRTUAL_MASK_SHIFT) - 1)
 
 #define KERNEL_TEXT_SIZE  (40*1024*1024)
-#define KERNEL_TEXT_START 0xffffffff80000000
+#define KERNEL_TEXT_START _AC(0xffffffff80000000, UL)
 
 #ifndef __ASSEMBLY__
 
--- linux-2.6.21-rc7-mm1.orig/include/asm-x86_64/pgtable.h
+++ linux-2.6.21-rc7-mm1/include/asm-x86_64/pgtable.h
@@ -134,11 +134,11 @@ static inline pte_t ptep_get_and_clear_f
 #define USER_PTRS_PER_PGD	((TASK_SIZE-1)/PGDIR_SIZE+1)
 #define FIRST_USER_ADDRESS	0
 
-#define MAXMEM		 0x3fffffffffff
-#define VMALLOC_START    0xffffc20000000000
-#define VMALLOC_END      0xffffe1ffffffffff
-#define MODULES_VADDR    0xffffffff88000000
-#define MODULES_END      0xfffffffffff00000
+#define MAXMEM		 _AC(0x3fffffffffff, UL)
+#define VMALLOC_START    _AC(0xffffc20000000000, UL)
+#define VMALLOC_END      _AC(0xffffe1ffffffffff, UL)
+#define MODULES_VADDR    _AC(0xffffffff88000000, UL)
+#define MODULES_END      _AC(0xfffffffffff00000, UL)
 #define MODULES_LEN   (MODULES_END - MODULES_VADDR)
 
 #define _PAGE_BIT_PRESENT	0

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

* Re: [PATCH -mm] x86_64: kill 19000+ sparse warnings
  2007-04-26  5:45 [PATCH -mm] x86_64: kill 19000+ sparse warnings Randy Dunlap
  2007-04-26  5:55 ` Andrew Morton
@ 2007-04-26  9:24 ` Andi Kleen
  2007-04-27  6:49   ` Jan Engelhardt
  1 sibling, 1 reply; 10+ messages in thread
From: Andi Kleen @ 2007-04-26  9:24 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: lkml, akpm

On Thursday 26 April 2007 07:45:09 Randy Dunlap wrote:
> From: Randy Dunlap <randy.dunlap@oracle.com>
> 
> Eliminate 19439 (!!) sparse warnings like:
> include/linux/mm.h:321:22: warning: constant 0xffff810000000000 is so big it is unsigned long

Sparse is just wrong here. The C standard does make it unsigned long long
automatically

-Andi

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

* Re: [PATCH -mm] x86_64: kill 19000+ sparse warnings
  2007-04-26  9:24 ` [PATCH -mm] " Andi Kleen
@ 2007-04-27  6:49   ` Jan Engelhardt
  0 siblings, 0 replies; 10+ messages in thread
From: Jan Engelhardt @ 2007-04-27  6:49 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Randy Dunlap, lkml, akpm


On Apr 26 2007 11:24, Andi Kleen wrote:
>On Thursday 26 April 2007 07:45:09 Randy Dunlap wrote:
>> From: Randy Dunlap <randy.dunlap@oracle.com>
>> 
>> Eliminate 19439 (!!) sparse warnings like:
>> include/linux/mm.h:321:22: warning: constant 0xffff810000000000 is so big it is unsigned long
>
>Sparse is just wrong here. The C standard does make it unsigned long long
>automatically

Wish it did...

(32bit i386):
08:47 ichi:/dev/shm > cat foo.c
unsigned long long a = 0x123456789;
08:47 ichi:/dev/shm > cc -c foo.c -Wall
foo.c:1: warning: integer constant is too large for ‘long’ type
Or is this something else?

Jan
-- 

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

end of thread, other threads:[~2007-04-27  6:51 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-26  5:45 [PATCH -mm] x86_64: kill 19000+ sparse warnings Randy Dunlap
2007-04-26  5:55 ` Andrew Morton
2007-04-26  6:07   ` Randy Dunlap
2007-04-26  6:14     ` Andrew Morton
2007-04-26  6:21       ` Randy Dunlap
2007-04-26  6:28         ` Andrew Morton
2007-04-26  6:33           ` Randy Dunlap
2007-04-26  7:15   ` [PATCH -mm, v2] " Randy Dunlap
2007-04-26  9:24 ` [PATCH -mm] " Andi Kleen
2007-04-27  6:49   ` Jan Engelhardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).