Linux-Next discussions
 help / color / mirror / Atom feed
* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Ingo Molnar @ 2008-12-26 15:33 UTC (permalink / raw)
  To: Kamalesh Babulal
  Cc: Sam Ravnborg, Yinghai Lu, David Howells, Andrew Morton,
	Stephen Rothwell, linux-next, LKML, mel
In-Reply-To: <20081226152804.GB5100@linux.vnet.ibm.com>


* Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote:

> * Sam Ravnborg <sam@ravnborg.org> [2008-12-26 11:27:16]:
> 
> > On Fri, Dec 26, 2008 at 02:05:47AM -0800, Yinghai Lu wrote:
> > > Kamalesh Babulal wrote:
> > > > * Yinghai Lu <yinghai@kernel.org> [2008-12-24 12:34:41]:
> > > > 
> > > >> --
> > > > 
> > > > After the applying the patch, the kernel panic's with the same backtrace. The
> > > > box is running Fedora 5 on it.
> > > > 
> > > 
> > > please try...
> > > Ingo, do we need to switch to use #idef and inline function instead?
> > 
> > I recall David Howells had a similar issue with the bootparamter patch set.
> > The workaround he used was to add a barrier(); call in the weak function
> > to avoid the inline.
> > 
> > [full context kept as I added David to to: list].
> > 	Sam
> > 
> 
> Hi Yinghai,
> 
> 	Thanks, after applying the patch, the kernel boot's up fine.

how about the patch below, does that work too? (after removing Yinghai's 
patch)

	Ingo

------------->
>From 0d41e654c877a0de441448ca2f63a72ed11c5d84 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 26 Dec 2008 14:39:51 +0100
Subject: [PATCH] kbuild, sparseirq: work around GCC bug with __weak aliases

Impact: fix panic on null pointer with sparseirq

Certain versions of GCC inline the weak global functions.
Work it around by marking __weak functions as noinline.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 include/linux/compiler-gcc.h |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 5c8351b..1ad72e6 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -41,11 +41,17 @@
 
 #define __deprecated			__attribute__((deprecated))
 #define __packed			__attribute__((packed))
-#define __weak				__attribute__((weak))
 #define __naked				__attribute__((naked))
 #define __noreturn			__attribute__((noreturn))
 
 /*
+ * Mark weak aliases also noinline, because some GCC versions
+ * incorrectly inline weak aliases (even when a non-weak variant
+ * is there) and thus cause crashes:
+ */
+#define __weak				__attribute__((weak)) noinline
+
+/*
  * From the GCC manual:
  *
  * Many functions have no effects except the return value and their

^ permalink raw reply related

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Kamalesh Babulal @ 2008-12-26 15:28 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Yinghai Lu, David Howells, mingo, Andrew Morton, Stephen Rothwell,
	linux-next, LKML, mel
In-Reply-To: <20081226102716.GA31450@uranus.ravnborg.org>

* Sam Ravnborg <sam@ravnborg.org> [2008-12-26 11:27:16]:

> On Fri, Dec 26, 2008 at 02:05:47AM -0800, Yinghai Lu wrote:
> > Kamalesh Babulal wrote:
> > > * Yinghai Lu <yinghai@kernel.org> [2008-12-24 12:34:41]:
> > > 
> > >> --
> > > 
> > > After the applying the patch, the kernel panic's with the same backtrace. The
> > > box is running Fedora 5 on it.
> > > 
> > 
> > please try...
> > Ingo, do we need to switch to use #idef and inline function instead?
> 
> I recall David Howells had a similar issue with the bootparamter patch set.
> The workaround he used was to add a barrier(); call in the weak function
> to avoid the inline.
> 
> [full context kept as I added David to to: list].
> 	Sam
> 

Hi Yinghai,

	Thanks, after applying the patch, the kernel boot's up fine.

> > 
> > YH
> > 
> > 
> > [PATCH] sparseirq: add printk to workaround compiler optimizing
> > 
> > Impact: fix panic on null pointer with sparseirq
> > 
> > some compiler seems to inline the weak global function.
> > try to workaround it
> > 
> > also remove duplicated arch_early_irq_init()
> > already have one weak copy in init/main.c
> > 
> > Signed-off-by: Yinghai <yinghai@kernel.org>
> > 
> > ---
> >  init/main.c         |    2 ++
> >  kernel/irq/handle.c |    7 ++-----
> >  2 files changed, 4 insertions(+), 5 deletions(-)
> > 
> > Index: linux-2.6/init/main.c
> > ===================================================================
> > --- linux-2.6.orig/init/main.c
> > +++ linux-2.6/init/main.c
> > @@ -544,10 +544,12 @@ void __init __weak thread_info_cache_ini
> >  
> >  void __init __weak arch_early_irq_init(void)
> >  {
> > +	printk(KERN_DEBUG "calling __weak arch_early_irq_init\n");
> >  }
> >  
> >  void __init __weak early_irq_init(void)
> >  {
> > +	printk(KERN_DEBUG "calling __weak early_irq_init\n");
> >  	arch_early_irq_init();
> >  }
> >  
> > Index: linux-2.6/kernel/irq/handle.c
> > ===================================================================
> > --- linux-2.6.orig/kernel/irq/handle.c
> > +++ linux-2.6/kernel/irq/handle.c
> > @@ -56,10 +56,6 @@ void handle_bad_irq(unsigned int irq, st
> >  int nr_irqs = NR_IRQS;
> >  EXPORT_SYMBOL_GPL(nr_irqs);
> >  
> > -void __init __attribute__((weak)) arch_early_irq_init(void)
> > -{
> > -}
> > -
> >  #ifdef CONFIG_SPARSE_IRQ
> >  static struct irq_desc irq_desc_init = {
> >  	.irq	    = -1,
> > @@ -90,8 +86,9 @@ void init_kstat_irqs(struct irq_desc *de
> >  		desc->kstat_irqs = (unsigned int *)ptr;
> >  }
> >  
> > -void __attribute__((weak)) arch_init_chip_data(struct irq_desc *desc, int cpu)
> > +void __weak arch_init_chip_data(struct irq_desc *desc, int cpu)
> >  {
> > +	printk(KERN_DEBUG "calling __weak arch_init_chip_data\n");
> >  }
> >  
> >  static void init_one_irq_desc(int irq, struct irq_desc *desc, int cpu)
> > --

-- 
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

^ permalink raw reply

* [PATCH] kbuild, sparseirq: work around GCC bug with __weak aliases
From: Ingo Molnar @ 2008-12-26 13:42 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Yinghai Lu, David Howells, Kamalesh Babulal, Andrew Morton,
	Stephen Rothwell, linux-next, LKML, mel
In-Reply-To: <20081226133354.GC29265@elte.hu>


* Ingo Molnar <mingo@elte.hu> wrote:

> > I recall David Howells had a similar issue with the bootparamter patch 
> > set. The workaround he used was to add a barrier(); call in the weak 
> > function to avoid the inline.
> 
> could we add some extra attribute to __weak that would have a similar 
> effect? Something like __attribute__((noinline)), or something silly 
> like __attribute__((deprecated)) - just to keep gcc from screwing up 
> __weak functions? Perhaps adding a section attribute would have a 
> similar effect? (putting weak definitions into an extra section is 
> probably helpful anyway)

I've applied the patch below to tip/irq/sparseirq - could someone with an 
affected GCC version please check whether this solves the crash?

	Ingo

------------------->
>From 0d41e654c877a0de441448ca2f63a72ed11c5d84 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 26 Dec 2008 14:39:51 +0100
Subject: [PATCH] kbuild, sparseirq: work around GCC bug with __weak aliases

Impact: fix panic on null pointer with sparseirq

Certain versions of GCC inline the weak global functions.
Work it around by marking __weak functions as noinline.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 include/linux/compiler-gcc.h |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 5c8351b..1ad72e6 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -41,11 +41,17 @@
 
 #define __deprecated			__attribute__((deprecated))
 #define __packed			__attribute__((packed))
-#define __weak				__attribute__((weak))
 #define __naked				__attribute__((naked))
 #define __noreturn			__attribute__((noreturn))
 
 /*
+ * Mark weak aliases also noinline, because some GCC versions
+ * incorrectly inline weak aliases (even when a non-weak variant
+ * is there) and thus cause crashes:
+ */
+#define __weak				__attribute__((weak)) noinline
+
+/*
  * From the GCC manual:
  *
  * Many functions have no effects except the return value and their

^ permalink raw reply related

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Ingo Molnar @ 2008-12-26 13:33 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Yinghai Lu, David Howells, Kamalesh Babulal, Andrew Morton,
	Stephen Rothwell, linux-next, LKML, mel
In-Reply-To: <20081226102716.GA31450@uranus.ravnborg.org>


* Sam Ravnborg <sam@ravnborg.org> wrote:

> On Fri, Dec 26, 2008 at 02:05:47AM -0800, Yinghai Lu wrote:
> > Kamalesh Babulal wrote:
> > > * Yinghai Lu <yinghai@kernel.org> [2008-12-24 12:34:41]:
> > > 
> > >> --
> > > 
> > > After the applying the patch, the kernel panic's with the same backtrace. The
> > > box is running Fedora 5 on it.
> > > 
> > 
> > please try...
> > Ingo, do we need to switch to use #idef and inline function instead?
> 
> I recall David Howells had a similar issue with the bootparamter patch set.
> The workaround he used was to add a barrier(); call in the weak function
> to avoid the inline.

could we add some extra attribute to __weak that would have a similar 
effect? Something like __attribute__((noinline)), or something silly like 
__attribute__((deprecated)) - just to keep gcc from screwing up __weak 
functions? Perhaps adding a section attribute would have a similar effect? 
(putting weak definitions into an extra section is probably helpful 
anyway)

	Ingo

^ permalink raw reply

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Sam Ravnborg @ 2008-12-26 10:27 UTC (permalink / raw)
  To: Yinghai Lu, David Howells
  Cc: Kamalesh Babulal, mingo, Andrew Morton, Stephen Rothwell,
	linux-next, LKML, mel
In-Reply-To: <4954AC7B.3020603@kernel.org>

On Fri, Dec 26, 2008 at 02:05:47AM -0800, Yinghai Lu wrote:
> Kamalesh Babulal wrote:
> > * Yinghai Lu <yinghai@kernel.org> [2008-12-24 12:34:41]:
> > 
> >> --
> > 
> > After the applying the patch, the kernel panic's with the same backtrace. The
> > box is running Fedora 5 on it.
> > 
> 
> please try...
> Ingo, do we need to switch to use #idef and inline function instead?

I recall David Howells had a similar issue with the bootparamter patch set.
The workaround he used was to add a barrier(); call in the weak function
to avoid the inline.

[full context kept as I added David to to: list].
	Sam

> 
> YH
> 
> 
> [PATCH] sparseirq: add printk to workaround compiler optimizing
> 
> Impact: fix panic on null pointer with sparseirq
> 
> some compiler seems to inline the weak global function.
> try to workaround it
> 
> also remove duplicated arch_early_irq_init()
> already have one weak copy in init/main.c
> 
> Signed-off-by: Yinghai <yinghai@kernel.org>
> 
> ---
>  init/main.c         |    2 ++
>  kernel/irq/handle.c |    7 ++-----
>  2 files changed, 4 insertions(+), 5 deletions(-)
> 
> Index: linux-2.6/init/main.c
> ===================================================================
> --- linux-2.6.orig/init/main.c
> +++ linux-2.6/init/main.c
> @@ -544,10 +544,12 @@ void __init __weak thread_info_cache_ini
>  
>  void __init __weak arch_early_irq_init(void)
>  {
> +	printk(KERN_DEBUG "calling __weak arch_early_irq_init\n");
>  }
>  
>  void __init __weak early_irq_init(void)
>  {
> +	printk(KERN_DEBUG "calling __weak early_irq_init\n");
>  	arch_early_irq_init();
>  }
>  
> Index: linux-2.6/kernel/irq/handle.c
> ===================================================================
> --- linux-2.6.orig/kernel/irq/handle.c
> +++ linux-2.6/kernel/irq/handle.c
> @@ -56,10 +56,6 @@ void handle_bad_irq(unsigned int irq, st
>  int nr_irqs = NR_IRQS;
>  EXPORT_SYMBOL_GPL(nr_irqs);
>  
> -void __init __attribute__((weak)) arch_early_irq_init(void)
> -{
> -}
> -
>  #ifdef CONFIG_SPARSE_IRQ
>  static struct irq_desc irq_desc_init = {
>  	.irq	    = -1,
> @@ -90,8 +86,9 @@ void init_kstat_irqs(struct irq_desc *de
>  		desc->kstat_irqs = (unsigned int *)ptr;
>  }
>  
> -void __attribute__((weak)) arch_init_chip_data(struct irq_desc *desc, int cpu)
> +void __weak arch_init_chip_data(struct irq_desc *desc, int cpu)
>  {
> +	printk(KERN_DEBUG "calling __weak arch_init_chip_data\n");
>  }
>  
>  static void init_one_irq_desc(int irq, struct irq_desc *desc, int cpu)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Yinghai Lu @ 2008-12-26 10:05 UTC (permalink / raw)
  To: Kamalesh Babulal, mingo
  Cc: Andrew Morton, Stephen Rothwell, linux-next, LKML, mel
In-Reply-To: <20081226091217.GA5100@linux.vnet.ibm.com>

Kamalesh Babulal wrote:
> * Yinghai Lu <yinghai@kernel.org> [2008-12-24 12:34:41]:
> 
>> --
> 
> After the applying the patch, the kernel panic's with the same backtrace. The
> box is running Fedora 5 on it.
> 

please try...
Ingo, do we need to switch to use #idef and inline function instead?

YH


[PATCH] sparseirq: add printk to workaround compiler optimizing

Impact: fix panic on null pointer with sparseirq

some compiler seems to inline the weak global function.
try to workaround it

also remove duplicated arch_early_irq_init()
already have one weak copy in init/main.c

Signed-off-by: Yinghai <yinghai@kernel.org>

---
 init/main.c         |    2 ++
 kernel/irq/handle.c |    7 ++-----
 2 files changed, 4 insertions(+), 5 deletions(-)

Index: linux-2.6/init/main.c
===================================================================
--- linux-2.6.orig/init/main.c
+++ linux-2.6/init/main.c
@@ -544,10 +544,12 @@ void __init __weak thread_info_cache_ini
 
 void __init __weak arch_early_irq_init(void)
 {
+	printk(KERN_DEBUG "calling __weak arch_early_irq_init\n");
 }
 
 void __init __weak early_irq_init(void)
 {
+	printk(KERN_DEBUG "calling __weak early_irq_init\n");
 	arch_early_irq_init();
 }
 
Index: linux-2.6/kernel/irq/handle.c
===================================================================
--- linux-2.6.orig/kernel/irq/handle.c
+++ linux-2.6/kernel/irq/handle.c
@@ -56,10 +56,6 @@ void handle_bad_irq(unsigned int irq, st
 int nr_irqs = NR_IRQS;
 EXPORT_SYMBOL_GPL(nr_irqs);
 
-void __init __attribute__((weak)) arch_early_irq_init(void)
-{
-}
-
 #ifdef CONFIG_SPARSE_IRQ
 static struct irq_desc irq_desc_init = {
 	.irq	    = -1,
@@ -90,8 +86,9 @@ void init_kstat_irqs(struct irq_desc *de
 		desc->kstat_irqs = (unsigned int *)ptr;
 }
 
-void __attribute__((weak)) arch_init_chip_data(struct irq_desc *desc, int cpu)
+void __weak arch_init_chip_data(struct irq_desc *desc, int cpu)
 {
+	printk(KERN_DEBUG "calling __weak arch_init_chip_data\n");
 }
 
 static void init_one_irq_desc(int irq, struct irq_desc *desc, int cpu)

^ permalink raw reply

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Kamalesh Babulal @ 2008-12-26  9:12 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Andrew Morton, Stephen Rothwell, linux-next, LKML, mingo, mel
In-Reply-To: <49529CE1.4040005@kernel.org>

* Yinghai Lu <yinghai@kernel.org> [2008-12-24 12:34:41]:

> Kamalesh Babulal wrote:
> > * Yinghai Lu <yinghai@kernel.org> [2008-12-23 13:09:56]:
> > 
> > 
> > boot log after applying the debug patch
> > 
> > root (hd0,0)
> >  Filesystem type is ext2fs, partition type 0x83
> > kernel /vmlinuz-autotest root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 c
> > onsole=ttyS1,19200 selinux=no debug IDENT=1230133532
> >    [Linux-bzImage, setup=0x3000, size=0x273cf0]
> > initrd /initrd-autotest
> >    [Linux-initrd @ 0x37e5f000, 0x19097a bytes]
> > 
> > Linux version 2.6.28-rc8-autotest-tip (root@bl6-13.ltc.austin.ibm.com) (gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)) #1 SMP Wed Dec 24 09:37:30 CST 2008
> > Command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug IDENT=1230133532
> 
> ok, it seems that your compiler is broken... is that RHEL 5.1 stock compiler
> 
> YH
> 
> 
> [PATCH] sparseirq: add oninline to workaround compiler
> 
> Impact: fix panic on null pointer with sparseirq
> 
> some compiler seems to inline the weak global function.
> try to workaround it
> 
> also remove duplicated arch_early_irq_init()
> already have one weak copy in init/main.c
> 
> Signed-off-by: Yinghai <yinghai@kernel.org>
> 
> ---
>  init/main.c         |    4 ++--
>  kernel/irq/handle.c |    6 +-----
>  2 files changed, 3 insertions(+), 7 deletions(-)
> 
> Index: linux-2.6/init/main.c
> ===================================================================
> --- linux-2.6.orig/init/main.c
> +++ linux-2.6/init/main.c
> @@ -542,11 +542,11 @@ void __init __weak thread_info_cache_ini
>  {
>  }
> 
> -void __init __weak arch_early_irq_init(void)
> +void noinline __init __weak arch_early_irq_init(void)
>  {
>  }
> 
> -void __init __weak early_irq_init(void)
> +void noinline __init __weak early_irq_init(void)
>  {
>  	arch_early_irq_init();
>  }
> Index: linux-2.6/kernel/irq/handle.c
> ===================================================================
> --- linux-2.6.orig/kernel/irq/handle.c
> +++ linux-2.6/kernel/irq/handle.c
> @@ -56,10 +56,6 @@ void handle_bad_irq(unsigned int irq, st
>  int nr_irqs = NR_IRQS;
>  EXPORT_SYMBOL_GPL(nr_irqs);
> 
> -void __init __attribute__((weak)) arch_early_irq_init(void)
> -{
> -}
> -
>  #ifdef CONFIG_SPARSE_IRQ
>  static struct irq_desc irq_desc_init = {
>  	.irq	    = -1,
> @@ -90,7 +86,7 @@ void init_kstat_irqs(struct irq_desc *de
>  		desc->kstat_irqs = (unsigned int *)ptr;
>  }
> 
> -void __attribute__((weak)) arch_init_chip_data(struct irq_desc *desc, int cpu)
> +void noinline __weak arch_init_chip_data(struct irq_desc *desc, int cpu)
>  {
>  }
> 
> --

After the applying the patch, the kernel panic's with the same backtrace. The
box is running Fedora 5 on it.

root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /vmlinuz-autotest root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 c
onsole=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall
_debug earlyprintk=serial,ttyS1,19200 IDENT=1230279484
   [Linux-bzImage, setup=0x3000, size=0x273af0]
initrd /initrd-autotest
   [Linux-initrd @ 0x37e5f000, 0x190982 bytes]

Linux version 2.6.28-rc8-autotest-tip (root@bl6-13.ltc.austin.ibm.com) (gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)) #1 SMP Fri Dec 26 02:11:35 CST 2008
Command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1230279484
KERNEL supported cpus:
  Intel GenuineIntel
  AMD AuthenticAMD
  Centaur CentaurHauls
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009d400 (usable)
 BIOS-e820: 000000000009d400 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003ffcddc0 (usable)
 BIOS-e820: 000000003ffcddc0 - 000000003ffd0000 (ACPI data)
 BIOS-e820: 000000003ffd0000 - 0000000040000000 (reserved)
 BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
console [earlyser0] enabled
DMI 2.3 present.
last_pfn = 0x3ffcd max_arch_pfn = 0x100000000
init_memory_mapping: 0000000000000000-000000003ffcd000
 0000000000 - 003fe00000 page 2M
 003fe00000 - 003ffcd000 page 4k
kernel direct mapping tables up to 3ffcd000 @ 8000-b000
last_map_addr: 3ffcd000 end: 3ffcd000
RAMDISK: 37e5f000 - 37fef982
ACPI: RSDP 000FDFC0, 0014 (r0 IBM   )
ACPI: RSDT 3FFCFF80, 0034 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: FACP 3FFCFEC0, 0084 (r2 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: DSDT 3FFCDDC0, 1EA6 (r1 IBM    SERBLADE     1000 INTL  2002025)
ACPI: FACS 3FFCFCC0, 0040
ACPI: APIC 3FFCFE00, 009C (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: SRAT 3FFCFD40, 0098 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: HPET 3FFCFD00, 0038 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: Local APIC address 0xfee00000
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 1 -> APIC 2 -> Node 1
SRAT: PXM 1 -> APIC 3 -> Node 1
SRAT: Node 0 PXM 0 0-40000000
NUMA: Using 63 for the hash shift.
Bootmem setup node 0 0000000000000000-000000003ffcd000
  NODE_DATA [0000000000009000 - 000000000000efff]
  bootmap [000000000000f000 -  0000000000016fff] pages 8
(6 early reservations) ==> bootmem [0000000000 - 003ffcd000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
  #1 [0000006000 - 0000008000]       TRAMPOLINE ==> [0000006000 - 0000008000]
  #2 [0000200000 - 00008127f0]    TEXT DATA BSS ==> [0000200000 - 00008127f0]
  #3 [0037e5f000 - 0037fef982]          RAMDISK ==> [0037e5f000 - 0037fef982]
  #4 [000009d400 - 0000100000]    BIOS reserved ==> [000009d400 - 0000100000]
  #5 [0000008000 - 0000009000]          PGTABLE ==> [0000008000 - 0000009000]
found SMP MP-table at [ffff88000009d540] 0009d540
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  DMA32    0x00001000 -> 0x00100000
  Normal   0x00100000 -> 0x00100000
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000000 -> 0x0000009d
    0: 0x00000100 -> 0x0003ffcd
On node 0 totalpages: 261994
  DMA zone: 64 pages used for memmap
  DMA zone: 1658 pages reserved
  DMA zone: 2275 pages, LIFO batch:0
  DMA32 zone: 4032 pages used for memmap
  DMA32 zone: 253965 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
Detected use of extended apic ids on hypertransport bus
Detected use of extended apic ids on hypertransport bus
ACPI: PM-Timer IO Port: 0x2208
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1])
ACPI: IOAPIC (id[0x0e] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 14, version 0, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x0d] address[0xfec10000] gsi_base[24])
IOAPIC[1]: apic_id 13, version 0, address 0xfec10000, GSI 24-27
ACPI: IOAPIC (id[0x0c] address[0xfec20000] gsi_base[48])
IOAPIC[2]: apic_id 12, version 0, address 0xfec20000, GSI 48-51
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ11 used by override.
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x10228203 base: 0xfecff000
SMP: Allowing 4 CPUs, 0 hotplug CPUs
Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
NR_CPUS:255 nr_cpumask_bits:255 nr_cpu_ids:4 nr_node_ids:1
PERCPU: Allocating 49152 bytes of per cpu data
per cpu data for cpu0 on node0 at 000000000100e000
per cpu data for cpu1 on node0 at 000000000101a000
per cpu data for cpu2 on node0 at 0000000001026000
per cpu data for cpu3 on node0 at 0000000001032000
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 256240
Policy zone: DMA32
Kernel command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1230279484
Initializing CPU#0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
IP: [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
PGD 0 
Thread overran stack, or stack corrupted
Oops: 0002 [#1] SMP 
last sysfs file: 
CPU 0 
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.28-rc8-autotest-tip #1
RIP: 0010:[<ffffffff8070e46a>]  [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
RSP: 0018:ffffffff806fff68  EFLAGS: 00010093
RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff80773b40
RDX: 0000000000000100 RSI: 0000000000000096 RDI: 0000000000000000
RBP: 0000000000000000 R08: ffff8800808a3000 R09: 0000000000000000
R10: ffff880001012ce0 R11: ffffffff80355720 R12: 0000000000000000
R13: ffffffff80735860 R14: ffffffff807380a0 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffffffff806f1480(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000048 CR3: 0000000000201000 CR4: 00000000000006a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 0, threadinfo ffffffff806fe000, task ffffffff8067e3a0)
Stack:
 0000000000000003 ffffffff8070e4ae ffffffff806e2f40 ffffffff8050e443
 0000000000000003 ffffffff80707b21 0000000000000000 00000000008127f0
 ffffffff807380a0 0000000000093370 0000000000000000 0000000000000000
Call Trace:
 [<ffffffff8070e4ae>] native_init_IRQ+0x9/0x9b5
 [<ffffffff8050e443>] register_cpu_notifier+0x1f/0x23
 [<ffffffff80707b21>] start_kernel+0x1c2/0x31d
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
Code: 85 c0 75 0d 59 48 c7 c7 a0 ff 67 80 e9 7c bf cb ff 5a c3 53 31 db e8 6e 87 00 00 31 ff e8 51 0e b0 ff 89 df e8 a1 81 b5 ff 89 df <c7> 40 48 00 02 00 00 48 c7 40 40 00 00 00 00 c7 40 4c 01 00 00 
RIP  [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
 RSP <ffffffff806fff68>
CR2: 0000000000000048
---[ end trace 4eaa2a86a8e2da22 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Pid: 0, comm: swapper Tainted: G      D    2.6.28-rc8-autotest-tip #1
Call Trace:
 [<ffffffff80237321>] panic+0x86/0x144
 [<ffffffff80237eb1>] printk+0x4e/0x56
 [<ffffffff80239fd7>] do_exit+0x75/0x78f
 [<ffffffff8052579e>] oops_end+0xa8/0xad
 [<ffffffff80526fed>] do_page_fault+0x756/0x80f
 [<ffffffff80524daf>] page_fault+0x1f/0x30
 [<ffffffff80355720>] delay_loop+0x0/0x29
 [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
 [<ffffffff8070e468>] init_ISA_irqs+0x16/0x53
 [<ffffffff8070e4ae>] native_init_IRQ+0x9/0x9b5
 [<ffffffff8050e443>] register_cpu_notifier+0x1f/0x23
 [<ffffffff80707b21>] start_kernel+0x1c2/0x31d
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
------------[ cut here ]------------
WARNING: at kernel/smp.c:333 smp_call_function_mask+0x36/0x224()
Hardware name: IBM eServer BladeCenter LS20 -[885055U]-
Modules linked in:
Pid: 0, comm: swapper Tainted: G      D    2.6.28-rc8-autotest-tip #1
Call Trace:
 [<ffffffff80237274>] warn_slowpath+0xd8/0xf5
 [<ffffffff80524be1>] _spin_lock_irqsave+0x9/0xe
 [<ffffffff8024c2fa>] up+0xe/0x37
 [<ffffffff80237945>] release_console_sem+0x186/0x1a1
 [<ffffffff80524be1>] _spin_lock_irqsave+0x9/0xe
 [<ffffffff8024c2fa>] up+0xe/0x37
 [<ffffffff80237945>] release_console_sem+0x186/0x1a1
 [<ffffffff80211d37>] stop_this_cpu+0x0/0x1d
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
 [<ffffffff80237eb1>] printk+0x4e/0x56
 [<ffffffff80253dab>] smp_call_function_mask+0x36/0x224
 [<ffffffff80237eb1>] printk+0x4e/0x56
 [<ffffffff8034f382>] __next_cpu_nr+0x1a/0x21
 [<ffffffff8021e8d8>] touch_nmi_watchdog+0x43/0x53
 [<ffffffff8020f13d>] print_trace_address+0x1d/0x2d
 [<ffffffff80247747>] __kernel_text_address+0x1a/0x26
 [<ffffffff8020f20f>] print_context_stack+0x90/0xa6
 [<ffffffff80259d75>] crash_kexec+0xe6/0xef
 [<ffffffff8020e4a7>] dump_trace+0x249/0x258
 [<ffffffff80253fc3>] smp_call_function+0x2a/0x2f
 [<ffffffff8021d3e3>] native_smp_send_stop+0x1a/0x26
 [<ffffffff80237335>] panic+0x9a/0x144
 [<ffffffff80237eb1>] printk+0x4e/0x56
 [<ffffffff80239fd7>] do_exit+0x75/0x78f
 [<ffffffff8052579e>] oops_end+0xa8/0xad
 [<ffffffff80526fed>] do_page_fault+0x756/0x80f
 [<ffffffff80524daf>] page_fault+0x1f/0x30
 [<ffffffff80355720>] delay_loop+0x0/0x29
 [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
 [<ffffffff8070e468>] init_ISA_irqs+0x16/0x53
 [<ffffffff8070e4ae>] native_init_IRQ+0x9/0x9b5
 [<ffffffff8050e443>] register_cpu_notifier+0x1f/0x23
 [<ffffffff80707b21>] start_kernel+0x1c2/0x31d
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
---[ end trace 4eaa2a86a8e2da22 ]---

-- 
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

^ permalink raw reply

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Yinghai Lu @ 2008-12-24 20:34 UTC (permalink / raw)
  To: Kamalesh Babulal, Andrew Morton
  Cc: Stephen Rothwell, linux-next, LKML, mingo, mel
In-Reply-To: <20081224163400.GA11562@linux.vnet.ibm.com>

Kamalesh Babulal wrote:
> * Yinghai Lu <yinghai@kernel.org> [2008-12-23 13:09:56]:
> 
> 
> boot log after applying the debug patch
> 
> root (hd0,0)
>  Filesystem type is ext2fs, partition type 0x83
> kernel /vmlinuz-autotest root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 c
> onsole=ttyS1,19200 selinux=no debug IDENT=1230133532
>    [Linux-bzImage, setup=0x3000, size=0x273cf0]
> initrd /initrd-autotest
>    [Linux-initrd @ 0x37e5f000, 0x19097a bytes]
> 
> Linux version 2.6.28-rc8-autotest-tip (root@bl6-13.ltc.austin.ibm.com) (gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)) #1 SMP Wed Dec 24 09:37:30 CST 2008
> Command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug IDENT=1230133532

ok, it seems that your compiler is broken... is that RHEL 5.1 stock compiler

YH


[PATCH] sparseirq: add oninline to workaround compiler

Impact: fix panic on null pointer with sparseirq

some compiler seems to inline the weak global function.
try to workaround it

also remove duplicated arch_early_irq_init()
already have one weak copy in init/main.c

Signed-off-by: Yinghai <yinghai@kernel.org>

---
 init/main.c         |    4 ++--
 kernel/irq/handle.c |    6 +-----
 2 files changed, 3 insertions(+), 7 deletions(-)

Index: linux-2.6/init/main.c
===================================================================
--- linux-2.6.orig/init/main.c
+++ linux-2.6/init/main.c
@@ -542,11 +542,11 @@ void __init __weak thread_info_cache_ini
 {
 }
 
-void __init __weak arch_early_irq_init(void)
+void noinline __init __weak arch_early_irq_init(void)
 {
 }
 
-void __init __weak early_irq_init(void)
+void noinline __init __weak early_irq_init(void)
 {
 	arch_early_irq_init();
 }
Index: linux-2.6/kernel/irq/handle.c
===================================================================
--- linux-2.6.orig/kernel/irq/handle.c
+++ linux-2.6/kernel/irq/handle.c
@@ -56,10 +56,6 @@ void handle_bad_irq(unsigned int irq, st
 int nr_irqs = NR_IRQS;
 EXPORT_SYMBOL_GPL(nr_irqs);
 
-void __init __attribute__((weak)) arch_early_irq_init(void)
-{
-}
-
 #ifdef CONFIG_SPARSE_IRQ
 static struct irq_desc irq_desc_init = {
 	.irq	    = -1,
@@ -90,7 +86,7 @@ void init_kstat_irqs(struct irq_desc *de
 		desc->kstat_irqs = (unsigned int *)ptr;
 }
 
-void __attribute__((weak)) arch_init_chip_data(struct irq_desc *desc, int cpu)
+void noinline __weak arch_init_chip_data(struct irq_desc *desc, int cpu)
 {
 }
 

^ permalink raw reply

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Kamalesh Babulal @ 2008-12-24 16:34 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Stephen Rothwell, linux-next, LKML, mingo, mel
In-Reply-To: <495153A4.5060201@kernel.org>

* Yinghai Lu <yinghai@kernel.org> [2008-12-23 13:09:56]:

> Kamalesh Babulal wrote:
> > * Yinghai Lu <yinghai@kernel.org> [2008-12-19 13:02:40]:
> > 
> > 
> > 	I tried testing with today's tip/master and it can be reproduced with it.
> > 
> > root (hd0,0)
> >  Filesystem type is ext2fs, partition type 0x83
> > kernel /vmlinuz-autotest root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 c
> > onsole=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall
> > _debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
> >    [Linux-bzImage, setup=0x3000, size=0x273c10]
> > initrd /initrd-autotest
> >    [Linux-initrd @ 0x37e5f000, 0x190980 bytes]
> > 
> > Linux version 2.6.28-rc8-autotest-tip (root@bl6-13.ltc.austin.ibm.com) (gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)) #1 SMP Tue Dec 23 06:37:41 CST 2008
> > Command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
> > Built 1 zonelists in Node order, mobility grouping on.  Total pages: 256240
> > Policy zone: DMA32
> > Kernel command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
> > Initializing CPU#0
> > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
> > IP: [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
> > PGD 0 
> 
> please try attached debug patch.
> 
> Thanks
> 
> YH

> diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
> index 3e070bb..41b29cf 100644
> --- a/arch/x86/kernel/io_apic.c
> +++ b/arch/x86/kernel/io_apic.c
> @@ -180,6 +180,9 @@ void __init arch_early_irq_init(void)
>  	cfg = irq_cfgx;
>  	count = ARRAY_SIZE(irq_cfgx);
> 
> +	printk(KERN_DEBUG
> +		 "calling arch_early_irq_init with count=%d\n", count);
> +
>  	for (i = 0; i < count; i++) {
>  		desc = irq_to_desc(i);
>  		desc->chip_data = &cfg[i];
> diff --git a/init/main.c b/init/main.c
> index f10a499..dadff40 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -544,10 +544,12 @@ void __init __weak thread_info_cache_init(void)
> 
>  void __init __weak arch_early_irq_init(void)
>  {
> +	printk(KERN_DEBUG "calling __weak arch_early_irq_init\n");
>  }
> 
>  void __init __weak early_irq_init(void)
>  {
> +	printk(KERN_DEBUG "calling __weak early_irq_init\n");
>  	arch_early_irq_init();
>  }
> 
> diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
> index 6492400..c7f4404 100644
> --- a/kernel/irq/handle.c
> +++ b/kernel/irq/handle.c
> @@ -56,10 +56,6 @@ void handle_bad_irq(unsigned int irq, struct irq_desc *desc)
>  int nr_irqs = NR_IRQS;
>  EXPORT_SYMBOL_GPL(nr_irqs);
> 
> -void __init __attribute__((weak)) arch_early_irq_init(void)
> -{
> -}
> -
>  #ifdef CONFIG_SPARSE_IRQ
>  static struct irq_desc irq_desc_init = {
>  	.irq	    = -1,
> @@ -143,6 +139,9 @@ void __init early_irq_init(void)
>  	desc = irq_desc_legacy;
>  	legacy_count = ARRAY_SIZE(irq_desc_legacy);
> 
> +	printk(KERN_DEBUG
> +		 "calling early_irq_init with legacy_count=%d\n", legacy_count);
> +
>  	for (i = 0; i < legacy_count; i++) {
>  		desc[i].irq = i;
>  		desc[i].kstat_irqs = kstat_irqs_legacy[i];


boot log after applying the debug patch

root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /vmlinuz-autotest root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 c
onsole=ttyS1,19200 selinux=no debug IDENT=1230133532
   [Linux-bzImage, setup=0x3000, size=0x273cf0]
initrd /initrd-autotest
   [Linux-initrd @ 0x37e5f000, 0x19097a bytes]

Linux version 2.6.28-rc8-autotest-tip (root@bl6-13.ltc.austin.ibm.com) (gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)) #1 SMP Wed Dec 24 09:37:30 CST 2008
Command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug IDENT=1230133532
KERNEL supported cpus:
  Intel GenuineIntel
  AMD AuthenticAMD
  Centaur CentaurHauls
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009d400 (usable)
 BIOS-e820: 000000000009d400 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003ffcddc0 (usable)
 BIOS-e820: 000000003ffcddc0 - 000000003ffd0000 (ACPI data)
 BIOS-e820: 000000003ffd0000 - 0000000040000000 (reserved)
 BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
DMI 2.3 present.
last_pfn = 0x3ffcd max_arch_pfn = 0x100000000
init_memory_mapping: 0000000000000000-000000003ffcd000
 0000000000 - 003fe00000 page 2M
 003fe00000 - 003ffcd000 page 4k
kernel direct mapping tables up to 3ffcd000 @ 8000-b000
last_map_addr: 3ffcd000 end: 3ffcd000
RAMDISK: 37e5f000 - 37fef97a
ACPI: RSDP 000FDFC0, 0014 (r0 IBM   )
ACPI: RSDT 3FFCFF80, 0034 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: FACP 3FFCFEC0, 0084 (r2 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: DSDT 3FFCDDC0, 1EA6 (r1 IBM    SERBLADE     1000 INTL  2002025)
ACPI: FACS 3FFCFCC0, 0040
ACPI: APIC 3FFCFE00, 009C (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: SRAT 3FFCFD40, 0098 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: HPET 3FFCFD00, 0038 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: Local APIC address 0xfee00000
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 1 -> APIC 2 -> Node 1
SRAT: PXM 1 -> APIC 3 -> Node 1
SRAT: Node 0 PXM 0 0-40000000
NUMA: Using 63 for the hash shift.
Bootmem setup node 0 0000000000000000-000000003ffcd000
  NODE_DATA [0000000000009000 - 000000000000efff]
  bootmap [000000000000f000 -  0000000000016fff] pages 8
(6 early reservations) ==> bootmem [0000000000 - 003ffcd000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
  #1 [0000006000 - 0000008000]       TRAMPOLINE ==> [0000006000 - 0000008000]
  #2 [0000200000 - 00008127f0]    TEXT DATA BSS ==> [0000200000 - 00008127f0]
  #3 [0037e5f000 - 0037fef97a]          RAMDISK ==> [0037e5f000 - 0037fef97a]
  #4 [000009d400 - 0000100000]    BIOS reserved ==> [000009d400 - 0000100000]
  #5 [0000008000 - 0000009000]          PGTABLE ==> [0000008000 - 0000009000]
found SMP MP-table at [ffff88000009d540] 0009d540
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  DMA32    0x00001000 -> 0x00100000
  Normal   0x00100000 -> 0x00100000
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000000 -> 0x0000009d
    0: 0x00000100 -> 0x0003ffcd
On node 0 totalpages: 261994
  DMA zone: 64 pages used for memmap
  DMA zone: 1658 pages reserved
  DMA zone: 2275 pages, LIFO batch:0
  DMA32 zone: 4032 pages used for memmap
  DMA32 zone: 253965 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
Detected use of extended apic ids on hypertransport bus
Detected use of extended apic ids on hypertransport bus
ACPI: PM-Timer IO Port: 0x2208
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1])
ACPI: IOAPIC (id[0x0e] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 14, version 0, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x0d] address[0xfec10000] gsi_base[24])
IOAPIC[1]: apic_id 13, version 0, address 0xfec10000, GSI 24-27
ACPI: IOAPIC (id[0x0c] address[0xfec20000] gsi_base[48])
IOAPIC[2]: apic_id 12, version 0, address 0xfec20000, GSI 48-51
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ11 used by override.
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x10228203 base: 0xfecff000
SMP: Allowing 4 CPUs, 0 hotplug CPUs
Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
NR_CPUS:255 nr_cpumask_bits:255 nr_cpu_ids:4 nr_node_ids:1
PERCPU: Allocating 49152 bytes of per cpu data
per cpu data for cpu0 on node0 at 000000000100e000
per cpu data for cpu1 on node0 at 000000000101a000
per cpu data for cpu2 on node0 at 0000000001026000
per cpu data for cpu3 on node0 at 0000000001032000
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 256240
Policy zone: DMA32
Kernel command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug IDENT=1230133532
Initializing CPU#0
calling early_irq_init with legacy_count=16
calling arch_early_irq_init with count=16
PID hash table entries: 4096 (order: 12, 32768 bytes)
Fast TSC calibration using PIT
Detected 1993.805 MHz processor.
Console: colour VGA+ 80x25
console [tty0] enabled
console [ttyS1] enabled
Checking aperture...
No AGP bridge found
Node 0: aperture @ dc000000 size 64 MB
Node 1: aperture @ dc000000 size 64 MB
Memory: 1023412k/1048372k available (3242k kernel code, 396k absent, 24564k reserved, 1771k data, 440k init)
SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
hpet clockevent registered
Calibrating delay loop (skipped), value calculated using timer frequency.. 3987.61 BogoMIPS (lpj=7975220)
Security Framework initialized
SELinux:  Initializing.
SELinux:  Starting in permissive mode
Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
Mount-cache hash table entries: 256
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU 0/0x0 -> Node 0
tseg: 0000000000
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
ACPI: Core revision 20080926
Setting APIC routing to flat
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
  alloc irq_2_pin on cpu 0 node 0
..TIMER: vector=0x30 apic1=0 pin1=2 apic2=0 pin2=0
CPU0: Dual Core AMD Opteron(tm) Processor 270 stepping 02
Booting processor 1 APIC 0x1 ip 0x6000
Initializing CPU#1
Calibrating delay using timer specific routine.. 3987.51 BogoMIPS (lpj=7975023)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU 1/0x1 -> Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
CPU1: Dual Core AMD Opteron(tm) Processor 270 stepping 02
Booting processor 2 APIC 0x2 ip 0x6000
Initializing CPU#2
Calibrating delay using timer specific routine.. 3987.51 BogoMIPS (lpj=7975026)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU 2/0x2 -> Node 0
CPU: Physical Processor ID: 1
CPU: Processor Core ID: 0
CPU2: Dual Core AMD Opteron(tm) Processor 270 stepping 02
Booting processor 3 APIC 0x3 ip 0x6000
Initializing CPU#3
Calibrating delay using timer specific routine.. 3987.51 BogoMIPS (lpj=7975035)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU 3/0x3 -> Node 0
CPU: Physical Processor ID: 1
CPU: Processor Core ID: 1
CPU3: Dual Core AMD Opteron(tm) Processor 270 stepping 02
Brought up 4 CPUs
Total of 4 processors activated (15950.15 BogoMIPS).
CPU0 attaching sched-domain:
 domain 0: span 0-3 level CPU
  groups: 0 1 2 3
CPU1 attaching sched-domain:
 domain 0: span 0-3 level CPU
  groups: 1 2 3 0
CPU2 attaching sched-domain:
 domain 0: span 0-3 level CPU
  groups: 2 3 0 1
CPU3 attaching sched-domain:
 domain 0: span 0-3 level CPU
  groups: 3 0 1 2
net_namespace: 1248 bytes
NET: Registered protocol family 16
node 0 link 1: io port [0, 2fff]
node 0 link 1: io port [3000, 3fff]
node 0 link 1: io port [4000, 4fff]
node 0 link 1: io port [5000, ffff]
TOM: 0000000040000000 aka 1024M
node 0 link 1: mmio [ee000000, ff00ffff]
node 0 link 1: mmio [fec00000, fec0ffff]
node 0 link 1: mmio [a0000, bffff]
node 0 link 1: mmio [fec10000, fec1ffff]
node 0 link 1: mmio [fec20000, fec2ffff]
bus: [00,ff] on node 0 link 1
bus: 00 index 0 io port: [0, ffff]
bus: 00 index 1 mmio: [40000000, fcffffffff]
bus: 00 index 2 mmio: [a0000, bffff]
ACPI: bus type pci registered
PCI: Using configuration type 1 for base access
ACPI: EC: Look up EC in DSDT
ACPI: Interpreter enabled
ACPI: (supports S0 S1 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
pci 0000:01:00.0: reg 10 32bit mmio: [0xfeaff000-0xfeafffff]
pci 0000:01:00.1: reg 10 32bit mmio: [0xfeafe000-0xfeafefff]
pci 0000:01:04.0: reg 10 32bit mmio: [0xf0000000-0xf7ffffff]
pci 0000:01:04.0: reg 14 io port: [0x3000-0x30ff]
pci 0000:01:04.0: reg 18 32bit mmio: [0xfeae0000-0xfeaeffff]
pci 0000:01:04.0: reg 30 32bit mmio: [0x000000-0x01ffff]
pci 0000:01:04.0: supports D1 D2
pci 0000:00:06.0: bridge io port: [0x3000-0x3fff]
pci 0000:00:06.0: bridge 32bit mmio: [0xfd000000-0xfeafffff]
pci 0000:00:06.0: bridge 32bit mmio pref: [0xf0000000-0xfcffffff]
pci 0000:02:01.0: reg 10 64bit mmio: [0xefff0000-0xefffffff]
pci 0000:02:01.0: PME# supported from D3hot D3cold
pci 0000:02:01.0: PME# disabled
pci 0000:02:01.1: reg 10 64bit mmio: [0xeffe0000-0xeffeffff]
pci 0000:02:01.1: PME# supported from D3hot D3cold
pci 0000:02:01.1: PME# disabled
pci 0000:02:02.0: reg 10 io port: [0x4000-0x40ff]
pci 0000:02:02.0: reg 14 64bit mmio: [0xeffc0000-0xeffdffff]
pci 0000:02:02.0: reg 1c 64bit mmio: [0xeffa0000-0xeffbffff]
pci 0000:02:02.0: reg 30 32bit mmio: [0x000000-0x0fffff]
pci 0000:02:02.0: supports D1 D2
pci 0000:00:0a.0: bridge io port: [0x4000-0x4fff]
pci 0000:00:0a.0: bridge 32bit mmio: [0xee000000-0xefffffff]
pci 0000:00:0b.0: bridge io port: [0x5000-0xffff]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI2._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI3._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Link [LP00] (IRQs *10)
ACPI: PCI Interrupt Link [LP01] (IRQs *7)
ACPI: PCI Interrupt Link [LP02] (IRQs *9)
ACPI: PCI Interrupt Link [LP03] (IRQs *5)
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Using ACPI for IRQ routing
hpet0: at MMIO 0xfecff000, IRQs 2, 8, 0
hpet0: 3 comparators, 32-bit 14.318180 MHz counter
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
system 00:01: ioport range 0x510-0x517 has been reserved
system 00:01: ioport range 0x504-0x507 has been reserved
system 00:01: ioport range 0x500-0x503 has been reserved
system 00:01: ioport range 0x520-0x53f has been reserved
system 00:01: ioport range 0x540-0x547 has been reserved
system 00:01: ioport range 0x460-0x461 has been reserved
system 00:0b: ioport range 0x400-0x47f could not be reserved
system 00:0b: ioport range 0x4d0-0x4d1 has been reserved
system 00:0b: ioport range 0x540-0x55f could not be reserved
system 00:0b: ioport range 0x580-0x5ff has been reserved
system 00:0b: ioport range 0xca8-0xca8 has been reserved
system 00:0b: ioport range 0xcac-0xcac has been reserved
system 00:0b: ioport range 0xcb0-0xcb0 has been reserved
system 00:0b: ioport range 0xcb4-0xcb4 has been reserved
system 00:0b: ioport range 0xcc0-0xcdf has been reserved
system 00:0b: iomem range 0xfec00000-0xffffffff has been reserved
pci 0000:00:06.0: PCI bridge, secondary bus 0000:01
pci 0000:00:06.0:   IO window: 0x3000-0x3fff
pci 0000:00:06.0:   MEM window: 0xfd000000-0xfeafffff
pci 0000:00:06.0:   PREFETCH window: 0x000000f0000000-0x000000fcffffff
pci 0000:00:0a.0: PCI bridge, secondary bus 0000:02
pci 0000:00:0a.0:   IO window: 0x4000-0x4fff
pci 0000:00:0a.0:   MEM window: 0xee000000-0xefffffff
pci 0000:00:0a.0:   PREFETCH window: 0x00000050000000-0x000000500fffff
pci 0000:00:0b.0: PCI bridge, secondary bus 0000:03
pci 0000:00:0b.0:   IO window: 0x5000-0xffff
pci 0000:00:0b.0:   MEM window: disabled
pci 0000:00:0b.0:   PREFETCH window: disabled
bus: 00 index 0 io port: [0x00-0xffff]
bus: 00 index 1 mmio: [0x000000-0xffffffffffffffff]
bus: 01 index 0 io port: [0x3000-0x3fff]
bus: 01 index 1 mmio: [0xfd000000-0xfeafffff]
bus: 01 index 2 mmio: [0xf0000000-0xfcffffff]
bus: 01 index 3 mmio: [0x0-0x0]
bus: 02 index 0 io port: [0x4000-0x4fff]
bus: 02 index 1 mmio: [0xee000000-0xefffffff]
bus: 02 index 2 mmio: [0x50000000-0x500fffff]
bus: 02 index 3 mmio: [0x0-0x0]
bus: 03 index 0 io port: [0x5000-0xffff]
bus: 03 index 1 mmio: [0x0-0x0]
bus: 03 index 2 mmio: [0x0-0x0]
bus: 03 index 3 mmio: [0x0-0x0]
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 6, 262144 bytes)
TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 9, 2097152 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs... it is
Freeing initrd memory: 1602k freed
audit: initializing netlink socket (disabled)
type=2000 audit(1230112145.555:1): initialized
HugeTLB registered 2 MB page size, pre-allocated 0 pages
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
msgmni has been set to 2001
SELinux:  Registering netfilter hooks
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
disabled boot interrupts on PCI device 0x1022:0x746b
pci 0000:00:0a.0: AMD8131 rev 12 detected; disabling PCI-X MMRBC
disabled boot interrupts on PCI device 0x1022:0x7450
pci 0000:00:0b.0: AMD8131 rev 12 detected; disabling PCI-X MMRBC
disabled boot interrupts on PCI device 0x1022:0x7450
pci 0000:01:04.0: Boot video device
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
processor ACPI_CPU:00: registered as cooling_device0
ACPI: Processor [CPU3] (supports 8 throttling states)
processor ACPI_CPU:01: registered as cooling_device1
ACPI: Processor [CPU2] (supports 8 throttling states)
processor ACPI_CPU:02: registered as cooling_device2
ACPI: Processor [CPU1] (supports 8 throttling states)
processor ACPI_CPU:03: registered as cooling_device3
ACPI: Processor [CPU0] (supports 8 throttling states)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.103
Serial: 8250/16550 driver4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
erial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
00:02: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:03: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
brd: module loaded
tg3.c:v3.94 (August 14, 2008)
vendor=1022 device=7450
  alloc irq_desc for 24 on cpu 0 node 0
  alloc kstat_irqs on cpu 0 node 0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
IP: [<ffffffff8021f8fd>] add_pin_to_irq_cpu+0x14/0x73
PGD 0 
Oops: 0000 [#1] SMP 
last sysfs file: 
CPU 0 
Modules linked in:
Pid: 1, comm: swapper Not tainted 2.6.28-rc8-autotest-tip #1
RIP: 0010:[<ffffffff8021f8fd>]  [<ffffffff8021f8fd>] add_pin_to_irq_cpu+0x14/0x73
RSP: 0018:ffff88003f9d7b20  EFLAGS: 00010282
RAX: ffff88003e5f0400 RBX: ffff88003e5f0400 RCX: 0000000000000000
RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000001 R08: 0000000000000046 R09: ffff880001046040
R10: 00000000ffffff00 R11: ffffffff8036f11f R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000001
FS:  0000000000000000(0000) GS:ffffffff806f1480(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000000 CR3: 0000000000201000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 1, threadinfo ffff88003f9d6000, task ffff88003f9d8000)
Stack:
 0000000000000018 ffff88003e5f0400 0000000000000018 0000000000000001
 0000000000000000 ffffffff8021f9e1 0000000080020800 0000000000000018
 0000000000000001 0000000000000000 ffff88003f9d7bec 0000000000000018
Call Trace:
 [<ffffffff8021f9e1>] ? io_apic_set_pci_routing+0x85/0xa9
 [<ffffffff8021c5bb>] ? mp_register_gsi+0xab/0xb2
 [<ffffffff80398967>] ? acpi_pci_irq_enable+0x178/0x284
 [<ffffffff803986fa>] ? acpi_pci_allocate_irq+0x0/0x4c
 [<ffffffff80363340>] ? pci_enable_resources+0x2b/0x11a
 [<ffffffff8035f65e>] ? do_pci_enable_device+0x2d/0x48
 [<ffffffff8035f6c2>] ? __pci_enable_device_flags+0x49/0x56
 [<ffffffff80515749>] ? tg3_init_one+0x43/0x12b1
 [<ffffffff80357534>] ? __bitmap_weight+0x6e/0x81
 [<ffffffff802329f9>] ? set_cpus_allowed_ptr+0x114/0x11f
 [<ffffffff802e9fd4>] ? sysfs_find_dirent+0x1b/0x2f
 [<ffffffff80361539>] ? pci_device_probe+0xb6/0x105
 [<ffffffff803cb8a8>] ? driver_probe_device+0xdb/0x168
 [<ffffffff803cb98e>] ? __driver_attach+0x59/0x80
 [<ffffffff803cb935>] ? __driver_attach+0x0/0x80
 [<ffffffff803cae81>] ? bus_for_each_dev+0x44/0x6f
 [<ffffffff803cb2b8>] ? bus_add_driver+0xb4/0x201
 [<ffffffff803cbb3f>] ? driver_register+0x8d/0x102
 [<ffffffff803617f9>] ? __pci_register_driver+0x6a/0x9d
 [<ffffffff8072a8e8>] ? tg3_init+0x0/0x15
 [<ffffffff80209051>] ? do_one_initcall+0x51/0x126
 [<ffffffff802e29b7>] ? create_proc_entry+0x73/0x88
 [<ffffffff8026885b>] ? register_irq_proc+0x9f/0xb7
 [<ffffffff8070792f>] ? kernel_init+0x196/0x1eb
 [<ffffffff8020ceda>] ? child_rip+0xa/0x20
 [<ffffffff80707799>] ? kernel_init+0x0/0x1eb
 [<ffffffff8020ced0>] ? child_rip+0x0/0x20
Code: 48 c7 c7 e3 29 5f 80 31 c0 e8 83 85 01 00 5b 4c 89 e0 41 5c 41 5d c3 41 55 49 89 fd 89 f7 41 54 41 89 cc 55 89 d5 53 48 83 ec 08 <49> 8b 5d 00 48 85 db 75 35 e8 88 ff ff ff 48 85 c0 75 18 5b 5b 
RIP  [<ffffffff8021f8fd>] add_pin_to_irq_cpu+0x14/0x73
 RSP <ffff88003f9d7b20>
CR2: 0000000000000000
---[ end trace bf00ede76e653fb4 ]---
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: swapper Tainted: G      D    2.6.28-rc8-autotest-tip #1
Call Trace:
 [<ffffffff80237321>] panic+0x86/0x144
 [<ffffffff80236bc8>] mm_release+0x3f/0xd3
 [<ffffffff80238b4f>] exit_fs+0x35/0x46
 [<ffffffff80239fd7>] do_exit+0x75/0x78f
 [<ffffffff8052579e>] oops_end+0xa8/0xad
 [<ffffffff80526fed>] do_page_fault+0x756/0x80f
 [<ffffffff80524daf>] page_fault+0x1f/0x30
 [<ffffffff8036f11f>] vgacon_cursor+0x0/0x1a4
 [<ffffffff8021f8fd>] add_pin_to_irq_cpu+0x14/0x73
 [<ffffffff8021f9e1>] io_apic_set_pci_routing+0x85/0xa9
 [<ffffffff8021c5bb>] mp_register_gsi+0xab/0xb2
 [<ffffffff80398967>] acpi_pci_irq_enable+0x178/0x284
 [<ffffffff803986fa>] acpi_pci_allocate_irq+0x0/0x4c
 [<ffffffff80363340>] pci_enable_resources+0x2b/0x11a
 [<ffffffff8035f65e>] do_pci_enable_device+0x2d/0x48
 [<ffffffff8035f6c2>] __pci_enable_device_flags+0x49/0x56
 [<ffffffff80515749>] tg3_init_one+0x43/0x12b1
 [<ffffffff80357534>] __bitmap_weight+0x6e/0x81
 [<ffffffff802329f9>] set_cpus_allowed_ptr+0x114/0x11f
 [<ffffffff802e9fd4>] sysfs_find_dirent+0x1b/0x2f
 [<ffffffff80361539>] pci_device_probe+0xb6/0x105
 [<ffffffff803cb8a8>] driver_probe_device+0xdb/0x168
 [<ffffffff803cb98e>] __driver_attach+0x59/0x80
 [<ffffffff803cb935>] __driver_attach+0x0/0x80
 [<ffffffff803cae81>] bus_for_each_dev+0x44/0x6f
 [<ffffffff803cb2b8>] bus_add_driver+0xb4/0x201
 [<ffffffff803cbb3f>] driver_register+0x8d/0x102
 [<ffffffff803617f9>] __pci_register_driver+0x6a/0x9d
 [<ffffffff8072a8e8>] tg3_init+0x0/0x15
 [<ffffffff80209051>] do_one_initcall+0x51/0x126
 [<ffffffff802e29b7>] create_proc_entry+0x73/0x88
 [<ffffffff8026885b>] register_irq_proc+0x9f/0xb7
 [<ffffffff8070792f>] kernel_init+0x196/0x1eb
 [<ffffffff8020ceda>] child_rip+0xa/0x20
 [<ffffffff80707799>] kernel_init+0x0/0x1eb
 [<ffffffff8020ced0>] child_rip+0x0/0x20
-- 
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

^ permalink raw reply

* Re: linux-next: manual merge of the net tree
From: Cyrill Gorcunov @ 2008-12-24 14:41 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: David Miller, linux-next, James Chapman
In-Reply-To: <20081224101934.0da26dab.sfr@canb.auug.org.au>

[Stephen Rothwell - Wed, Dec 24, 2008 at 10:19:34AM +1100]
| Hi Dave,
| 
| Today's linux-next merge of the net tree got a conflict in
| drivers/net/ppp_generic.c between commit
| 739840d529eb7505d3cbfe9d468bf1440c9a8e27 ("ppp: fix segfaults introduced
| by netdev_priv changes") from the net-current tree and commit
| 7a95d267fb62cd6b80ef73be0592bbbe1dbd5df7 ("net: ppp_generic - use idr
| technique instead of cardmaps") from the net tree.
| 
| I fixed it up (see below) and can carry the fix as necessary.
| -- 
| Cheers,
| Stephen Rothwell                    sfr@canb.auug.org.au
| http://www.canb.auug.org.au/~sfr/
|

Thanks a lot, Stephen!

		- Cyrill -

^ permalink raw reply

* Re: linux-next: manual merge of the net tree
From: David Miller @ 2008-12-24  2:16 UTC (permalink / raw)
  To: sfr; +Cc: linux-next, khc, inaky
In-Reply-To: <20081224101513.def05c7e.sfr@canb.auug.org.au>

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Wed, 24 Dec 2008 10:15:13 +1100

> Today's linux-next merge of the net tree got a conflict in
> Documentation/DocBook/networking.tmpl between commit
> 66aa675719ab82a03a66b75210fd40be6541f8fb ("wimax: Makefile, Kconfig and
> docbook linkage for the stack") from the usb tree and commit
> 72364706c3b7c09a658e356218a918c5f92dcad0 ("WAN: syncppp.c is no longer
> used by any kernel code. Remove it") from the net tree.
> 
> Juts an overlapping add/remove. I fixed it up (see below) and can carry
> the fix as necessary.

Thanks Stephen.  You'll need to carry this one.

^ permalink raw reply

* Re: linux-next: manual merge of the net tree
From: David Miller @ 2008-12-24  2:15 UTC (permalink / raw)
  To: sfr; +Cc: linux-next, jchapman, gorcunov
In-Reply-To: <20081224101934.0da26dab.sfr@canb.auug.org.au>

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Wed, 24 Dec 2008 10:19:34 +1100

> Today's linux-next merge of the net tree got a conflict in
> drivers/net/ppp_generic.c between commit
> 739840d529eb7505d3cbfe9d468bf1440c9a8e27 ("ppp: fix segfaults introduced
> by netdev_priv changes") from the net-current tree and commit
> 7a95d267fb62cd6b80ef73be0592bbbe1dbd5df7 ("net: ppp_generic - use idr
> technique instead of cardmaps") from the net tree.
> 
> I fixed it up (see below) and can carry the fix as necessary.

Thanks Stephen.

Since Linus just pulled my net-2.6 tree into his today,
I merged net-2.6 into net-next-2.6 which will resolve
this.

^ permalink raw reply

* Re: linux-next: usb tree build failure
From: Inaky Perez-Gonzalez @ 2008-12-24  1:07 UTC (permalink / raw)
  To: Greg KH; +Cc: Sam Ravnborg, Stephen Rothwell, linux-next
In-Reply-To: <20081223171726.GB4043@kroah.com>

[-- Attachment #1: Type: text/plain, Size: 1241 bytes --]

On Tuesday 23 December 2008, Greg KH wrote:
> On Tue, Dec 23, 2008 at 02:26:28AM -0800, Inaky Perez-Gonzalez wrote:
> > On Monday 22 December 2008, Greg KH wrote:
> > > On Mon, Dec 22, 2008 at 09:26:43AM -0800, Inaky Perez-Gonzalez wrote:
> > > > On Sunday 21 December 2008, Sam Ravnborg wrote:
> > > >
> > > > ops -- ok, I will. I guess I have to add this in all the similar
> > > > ones, right?
> > > >
> > > > Greg, do you want a new patch series or just another patch on top?
> > >
> > > Just a single replacement patch for when we add this makefile is fine
> > > with me.
> >
> > Hmmm, there was more feedback Sam gave me on Kconfig and Makefiles I
> > added, so at the end the patch touches more files than just this one.
> > Maybe a whole new series will be the way to go.
>
> Ick, I really don't want that.  But feel free to respin them yourself,
> and then just send the different patches?  It's easy to just replace a
> few individual ones than to drop the whole series and redo it (well on
> my end at least...)
>
> Heck, tell me what to edit and I can edit individual patches quite
> easily as well, I'd rather do that as well :)

:) -- find them attached, it's just a couple of them that need a respin
(#10 and #27).

-- 
Inaky

[-- Attachment #2: 0010-wimax-Makefile-Kconfig-and-docbook-linkage-for-the.patch --]
[-- Type: text/x-diff, Size: 3786 bytes --]

From 52ee3acf71f4f8079482f803ce3e510d05214145 Mon Sep 17 00:00:00 2001
Message-Id: <52ee3acf71f4f8079482f803ce3e510d05214145.1230078072.git.inaky@linux.intel.com>
In-Reply-To: <cover.1230078071.git.inaky@linux.intel.com>
References: <cover.1230078071.git.inaky@linux.intel.com>
From: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Date: Tue, 23 Dec 2008 16:18:24 -0800
Subject: [PATCH 10/29] wimax: Makefile, Kconfig and docbook linkage for the stack

This patch provides Makefile and KConfig for the WiMAX stack,
integrating them into the networking stack's Makefile, Kconfig and
doc-book templates.

Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
---
 Documentation/DocBook/networking.tmpl |    8 +++++++
 net/Kconfig                           |    2 +
 net/Makefile                          |    1 +
 net/wimax/Kconfig                     |   38 +++++++++++++++++++++++++++++++++
 net/wimax/Makefile                    |   13 +++++++++++
 5 files changed, 62 insertions(+), 0 deletions(-)
 create mode 100644 net/wimax/Kconfig
 create mode 100644 net/wimax/Makefile

diff --git a/Documentation/DocBook/networking.tmpl b/Documentation/DocBook/networking.tmpl
index f24f9e8..7053c1c 100644
--- a/Documentation/DocBook/networking.tmpl
+++ b/Documentation/DocBook/networking.tmpl
@@ -101,6 +101,14 @@ X!Enet/core/wireless.c
      <sect1><title>Synchronous PPP</title>
 !Edrivers/net/wan/syncppp.c
      </sect1>
+     <sect1><title>WiMAX</title>
+!Enet/wimax/op-msg.c
+!Enet/wimax/op-reset.c
+!Enet/wimax/op-rfkill.c
+!Enet/wimax/stack.c
+!Iinclude/net/wimax.h
+!Iinclude/linux/wimax.h
+     </sect1>
   </chapter>
 
 </book>
diff --git a/net/Kconfig b/net/Kconfig
index d789d79..3bff221 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -251,6 +251,8 @@ source "net/ieee80211/Kconfig"
 
 endif # WIRELESS
 
+source "net/wimax/Kconfig"
+
 source "net/rfkill/Kconfig"
 source "net/9p/Kconfig"
 
diff --git a/net/Makefile b/net/Makefile
index 27d1f10..620a505 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -61,3 +61,4 @@ obj-$(CONFIG_NET_9P)		+= 9p/
 ifeq ($(CONFIG_NET),y)
 obj-$(CONFIG_SYSCTL)		+= sysctl_net.o
 endif
+obj-$(CONFIG_WIMAX)		+= wimax/
diff --git a/net/wimax/Kconfig b/net/wimax/Kconfig
new file mode 100644
index 0000000..0bdbb69
--- /dev/null
+++ b/net/wimax/Kconfig
@@ -0,0 +1,38 @@
+#
+# WiMAX LAN device configuration
+#
+
+menuconfig WIMAX
+	tristate "WiMAX Wireless Broadband support"
+	help
+
+	  Select to configure support for devices that provide
+	  wireless broadband connectivity using the WiMAX protocol
+	  (IEEE 802.16).
+
+	  Please note that most of these devices require signing up
+	  for a service plan with a provider.
+
+	  The different WiMAX drivers can be enabled in the menu entry
+
+	  Device Drivers > Network device support > WiMAX Wireless
+	  Broadband devices
+
+	  If unsure, it is safe to select M (module).
+
+config WIMAX_DEBUG_LEVEL
+	int "WiMAX debug level"
+	depends on WIMAX
+	default 8
+	help
+
+	  Select the maximum debug verbosity level to be compiled into
+	  the WiMAX stack code.
+
+	  By default, debug messages are disabled at runtime and can
+	  be selectively enabled for different parts of the code using
+	  the sysfs debug-levels file.
+
+	  If set at zero, this will compile out all the debug code.
+
+	  It is recommended that it is left at 8.
diff --git a/net/wimax/Makefile b/net/wimax/Makefile
new file mode 100644
index 0000000..5b80b94
--- /dev/null
+++ b/net/wimax/Makefile
@@ -0,0 +1,13 @@
+
+obj-$(CONFIG_WIMAX)		+= wimax.o
+
+wimax-y :=		\
+	id-table.o	\
+	op-msg.o	\
+	op-reset.o	\
+	op-rfkill.o	\
+	stack.o
+
+wimax-$(CONFIG_DEBUG_FS) += debugfs.o
+
+
-- 
1.5.6.5


[-- Attachment #3: 0027-i2400m-Makefile-and-Kconfig.patch --]
[-- Type: text/x-diff, Size: 4912 bytes --]

From 4d704321da4020a0c11396ca6785be2d948fe728 Mon Sep 17 00:00:00 2001
Message-Id: <4d704321da4020a0c11396ca6785be2d948fe728.1230078072.git.inaky@linux.intel.com>
In-Reply-To: <cover.1230078071.git.inaky@linux.intel.com>
References: <cover.1230078071.git.inaky@linux.intel.com>
From: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Date: Tue, 23 Dec 2008 16:18:48 -0800
Subject: [PATCH 27/29] i2400m: Makefile and Kconfig

Integrate the i2400m driver into the kernel's build and Kconfig.

Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
---
 drivers/net/Kconfig               |    2 +
 drivers/net/Makefile              |    1 +
 drivers/net/wimax/Kconfig         |   17 +++++++++++++
 drivers/net/wimax/Makefile        |    5 ++++
 drivers/net/wimax/i2400m/Kconfig  |   49 +++++++++++++++++++++++++++++++++++++
 drivers/net/wimax/i2400m/Makefile |   29 ++++++++++++++++++++++
 6 files changed, 103 insertions(+), 0 deletions(-)
 create mode 100644 drivers/net/wimax/Kconfig
 create mode 100644 drivers/net/wimax/Makefile
 create mode 100644 drivers/net/wimax/i2400m/Kconfig
 create mode 100644 drivers/net/wimax/i2400m/Makefile

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 231eeaf..6255b79 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2585,6 +2585,8 @@ source "drivers/net/tokenring/Kconfig"
 
 source "drivers/net/wireless/Kconfig"
 
+source "drivers/net/wimax/Kconfig"
+
 source "drivers/net/usb/Kconfig"
 
 source "drivers/net/pcmcia/Kconfig"
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index 017383a..32fe7af 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -262,3 +262,4 @@ obj-$(CONFIG_NIU) += niu.o
 obj-$(CONFIG_VIRTIO_NET) += virtio_net.o
 obj-$(CONFIG_SFC) += sfc/
 
+obj-$(CONFIG_WIMAX) += wimax/
diff --git a/drivers/net/wimax/Kconfig b/drivers/net/wimax/Kconfig
new file mode 100644
index 0000000..565018e
--- /dev/null
+++ b/drivers/net/wimax/Kconfig
@@ -0,0 +1,17 @@
+#
+# WiMAX LAN device drivers configuration
+#
+
+
+comment "Enable WiMAX (Networking options) to see the WiMAX drivers"
+	depends on WIMAX = n
+
+if WIMAX
+
+menu "WiMAX Wireless Broadband devices"
+
+source "drivers/net/wimax/i2400m/Kconfig"
+
+endmenu
+
+endif
diff --git a/drivers/net/wimax/Makefile b/drivers/net/wimax/Makefile
new file mode 100644
index 0000000..992bc02
--- /dev/null
+++ b/drivers/net/wimax/Makefile
@@ -0,0 +1,5 @@
+
+obj-$(CONFIG_WIMAX_I2400M)	+= i2400m/
+
+# (from Sam Ravnborg) force kbuild to create built-in.o
+obj- := dummy.o
diff --git a/drivers/net/wimax/i2400m/Kconfig b/drivers/net/wimax/i2400m/Kconfig
new file mode 100644
index 0000000..d623b3d
--- /dev/null
+++ b/drivers/net/wimax/i2400m/Kconfig
@@ -0,0 +1,49 @@
+
+config WIMAX_I2400M
+	tristate
+	depends on WIMAX
+	select FW_LOADER
+
+comment "Enable USB support to see WiMAX USB drivers"
+	depends on USB = n
+
+comment "Enable MMC support to see WiMAX SDIO drivers"
+	depends on MMC = n
+
+config WIMAX_I2400M_USB
+	tristate "Intel Wireless WiMAX Connection 2400 over USB (including 5x50)"
+	depends on WIMAX && USB
+	select WIMAX_I2400M
+	help
+	  Select if you have a device based on the Intel WiMAX
+	  Connection 2400 over USB (like any of the Intel Wireless
+	  WiMAX/WiFi Link 5x50 series).
+
+	  If unsure, it is safe to select M (module).
+
+config WIMAX_I2400M_SDIO
+	tristate "Intel Wireless WiMAX Connection 2400 over SDIO"
+	depends on WIMAX && MMC
+	select WIMAX_I2400M
+	help
+	  Select if you have a device based on the Intel WiMAX
+	  Connection 2400 over SDIO.
+
+	  If unsure, it is safe to select M (module).
+
+config WIMAX_I2400M_DEBUG_LEVEL
+	int "WiMAX i2400m debug level"
+	depends on WIMAX_I2400M
+	default 8
+	help
+
+	  Select the maximum debug verbosity level to be compiled into
+	  the WiMAX i2400m driver code.
+
+	  By default, this is disabled at runtime and can be
+	  selectively enabled at runtime for different parts of the
+	  code using the sysfs debug-levels file.
+
+	  If set at zero, this will compile out all the debug code.
+
+	  It is recommended that it is left at 8.
diff --git a/drivers/net/wimax/i2400m/Makefile b/drivers/net/wimax/i2400m/Makefile
new file mode 100644
index 0000000..1696e93
--- /dev/null
+++ b/drivers/net/wimax/i2400m/Makefile
@@ -0,0 +1,29 @@
+
+obj-$(CONFIG_WIMAX_I2400M) += i2400m.o
+obj-$(CONFIG_WIMAX_I2400M_USB) += i2400m-usb.o
+obj-$(CONFIG_WIMAX_I2400M_SDIO) += i2400m-sdio.o
+
+i2400m-y :=		\
+	control.o	\
+	driver.o	\
+	fw.o		\
+	op-rfkill.o	\
+	netdev.o	\
+	tx.o		\
+	rx.o
+
+i2400m-$(CONFIG_DEBUG_FS) += debugfs.o
+
+i2400m-usb-y :=			\
+	usb-fw.o		\
+	usb-notif.o		\
+	usb-tx.o		\
+	usb-rx.o		\
+	usb.o
+
+
+i2400m-sdio-y := 		\
+	sdio.o      		\
+	sdio-tx.o   		\
+	sdio-fw.o	 	\
+	sdio-rx.o
-- 
1.5.6.5


^ permalink raw reply related

* linux-next: manual merge of the net tree
From: Stephen Rothwell @ 2008-12-23 23:19 UTC (permalink / raw)
  To: David Miller; +Cc: linux-next, James Chapman, Cyrill Gorcunov

Hi Dave,

Today's linux-next merge of the net tree got a conflict in
drivers/net/ppp_generic.c between commit
739840d529eb7505d3cbfe9d468bf1440c9a8e27 ("ppp: fix segfaults introduced
by netdev_priv changes") from the net-current tree and commit
7a95d267fb62cd6b80ef73be0592bbbe1dbd5df7 ("net: ppp_generic - use idr
technique instead of cardmaps") from the net tree.

I fixed it up (see below) and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

diff --cc drivers/net/ppp_generic.c
index 714a230,c832d60..0000000
--- a/drivers/net/ppp_generic.c
+++ b/drivers/net/ppp_generic.c
@@@ -2498,17 -2484,19 +2484,17 @@@ init_ppp_file(struct ppp_file *pf, int 
   */
  static void ppp_shutdown_interface(struct ppp *ppp)
  {
 -	struct net_device *dev;
 -
  	mutex_lock(&all_ppp_mutex);
 -	ppp_lock(ppp);
 -	dev = ppp->dev;
 -	ppp->dev = NULL;
 -	ppp_unlock(ppp);
  	/* This will call dev_close() for us. */
 -	if (dev) {
 -		unregister_netdev(dev);
 -		free_netdev(dev);
 -	}
 +	ppp_lock(ppp);
 +	if (!ppp->closing) {
 +		ppp->closing = 1;
 +		ppp_unlock(ppp);
 +		unregister_netdev(ppp->dev);
 +	} else
 +		ppp_unlock(ppp);
 +
- 	cardmap_set(&all_ppp_units, ppp->file.index, NULL);
+ 	unit_put(&ppp_units_idr, ppp->file.index);
  	ppp->file.dead = 1;
  	ppp->owner = NULL;
  	wake_up_interruptible(&ppp->file.rwait);

^ permalink raw reply

* linux-next: manual merge of the net tree
From: Stephen Rothwell @ 2008-12-23 23:15 UTC (permalink / raw)
  To: David Miller
  Cc: linux-next, "Krzysztof Hałasa", Inaky Perez-Gonzalez

Hi Dave,

Today's linux-next merge of the net tree got a conflict in
Documentation/DocBook/networking.tmpl between commit
66aa675719ab82a03a66b75210fd40be6541f8fb ("wimax: Makefile, Kconfig and
docbook linkage for the stack") from the usb tree and commit
72364706c3b7c09a658e356218a918c5f92dcad0 ("WAN: syncppp.c is no longer
used by any kernel code. Remove it") from the net tree.

Juts an overlapping add/remove. I fixed it up (see below) and can carry
the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

diff --cc Documentation/DocBook/networking.tmpl
index 7053c1c,627707a..0000000
--- a/Documentation/DocBook/networking.tmpl
+++ b/Documentation/DocBook/networking.tmpl
@@@ -98,17 -98,6 +98,14 @@@
  X!Enet/core/wireless.c
       </sect1>
  -->
-      <sect1><title>Synchronous PPP</title>
- !Edrivers/net/wan/syncppp.c
-      </sect1>
 +     <sect1><title>WiMAX</title>
 +!Enet/wimax/op-msg.c
 +!Enet/wimax/op-reset.c
 +!Enet/wimax/op-rfkill.c
 +!Enet/wimax/stack.c
 +!Iinclude/net/wimax.h
 +!Iinclude/linux/wimax.h
 +     </sect1>
    </chapter>
  
  </book>

^ permalink raw reply

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Yinghai Lu @ 2008-12-23 21:09 UTC (permalink / raw)
  To: Kamalesh Babulal; +Cc: Stephen Rothwell, linux-next, LKML, mingo, mel
In-Reply-To: <20081223132127.GA5450@linux.vnet.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 1456 bytes --]

Kamalesh Babulal wrote:
> * Yinghai Lu <yinghai@kernel.org> [2008-12-19 13:02:40]:
> 
> 
> 	I tried testing with today's tip/master and it can be reproduced with it.
> 
> root (hd0,0)
>  Filesystem type is ext2fs, partition type 0x83
> kernel /vmlinuz-autotest root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 c
> onsole=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall
> _debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
>    [Linux-bzImage, setup=0x3000, size=0x273c10]
> initrd /initrd-autotest
>    [Linux-initrd @ 0x37e5f000, 0x190980 bytes]
> 
> Linux version 2.6.28-rc8-autotest-tip (root@bl6-13.ltc.austin.ibm.com) (gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)) #1 SMP Tue Dec 23 06:37:41 CST 2008
> Command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
> Built 1 zonelists in Node order, mobility grouping on.  Total pages: 256240
> Policy zone: DMA32
> Kernel command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
> Initializing CPU#0
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
> IP: [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
> PGD 0 

please try attached debug patch.

Thanks

YH

[-- Attachment #2: sparse_irq_fix1.patch --]
[-- Type: text/x-patch, Size: 1610 bytes --]

diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index 3e070bb..41b29cf 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -180,6 +180,9 @@ void __init arch_early_irq_init(void)
 	cfg = irq_cfgx;
 	count = ARRAY_SIZE(irq_cfgx);
 
+	printk(KERN_DEBUG
+		 "calling arch_early_irq_init with count=%d\n", count);
+
 	for (i = 0; i < count; i++) {
 		desc = irq_to_desc(i);
 		desc->chip_data = &cfg[i];
diff --git a/init/main.c b/init/main.c
index f10a499..dadff40 100644
--- a/init/main.c
+++ b/init/main.c
@@ -544,10 +544,12 @@ void __init __weak thread_info_cache_init(void)
 
 void __init __weak arch_early_irq_init(void)
 {
+	printk(KERN_DEBUG "calling __weak arch_early_irq_init\n");
 }
 
 void __init __weak early_irq_init(void)
 {
+	printk(KERN_DEBUG "calling __weak early_irq_init\n");
 	arch_early_irq_init();
 }
 
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
index 6492400..c7f4404 100644
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -56,10 +56,6 @@ void handle_bad_irq(unsigned int irq, struct irq_desc *desc)
 int nr_irqs = NR_IRQS;
 EXPORT_SYMBOL_GPL(nr_irqs);
 
-void __init __attribute__((weak)) arch_early_irq_init(void)
-{
-}
-
 #ifdef CONFIG_SPARSE_IRQ
 static struct irq_desc irq_desc_init = {
 	.irq	    = -1,
@@ -143,6 +139,9 @@ void __init early_irq_init(void)
 	desc = irq_desc_legacy;
 	legacy_count = ARRAY_SIZE(irq_desc_legacy);
 
+	printk(KERN_DEBUG
+		 "calling early_irq_init with legacy_count=%d\n", legacy_count);
+
 	for (i = 0; i < legacy_count; i++) {
 		desc[i].irq = i;
 		desc[i].kstat_irqs = kstat_irqs_legacy[i];

^ permalink raw reply related

* Re: [PATCH] sparc64: use unsigned long long for u64
From: Sam Ravnborg @ 2008-12-23 17:34 UTC (permalink / raw)
  To: Ken Chen
  Cc: Andrew Morton, David Miller, sparclinux, mingo, sfr, linux-kernel,
	paulus, tglx, hpa, linux-next
In-Reply-To: <b040c32a0812230929u282f0f2bn9221bf2e176d82eb@mail.gmail.com>

On Tue, Dec 23, 2008 at 09:29:52AM -0800, Ken Chen wrote:
> On Tue, Dec 23, 2008 at 9:26 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
> >> wait, why does this need to be changed?
> >
> > We have:
> >        clocksource_tick.read = tick_ops->get_tick;
> >
> > And clocksource_tick is of type clocksource:
> >
> > struct clocksource {
> >        ...
> >        cycle_t (*read)(void);
> >
> > And cycle_t is:
> > /* clocksource cycle base type */
> > typedef u64 cycle_t;
> >
> > And u64 is now:
> > unsigned long long - thus we need to fix prototype
> > of get_tick to fix the warnings.
> >
> > A cast could do it - but fixing the real problem
> > is better here.
> 
> Sounds good to me.  It was just a question.  Thank you for the explanation.

Hey - it triggered me to take a deeper look at it.
And thanks for actually reading the patch - it's always good that
an extra pair of eyes look over it even it is only quick browsing.

	Sam

^ permalink raw reply

* Re: [PATCH] sparc64: use unsigned long long for u64
From: Ken Chen @ 2008-12-23 17:29 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Andrew Morton, David Miller, sparclinux, mingo, sfr, linux-kernel,
	paulus, tglx, hpa, linux-next
In-Reply-To: <20081223172610.GA5957@uranus.ravnborg.org>

On Tue, Dec 23, 2008 at 9:26 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
>> wait, why does this need to be changed?
>
> We have:
>        clocksource_tick.read = tick_ops->get_tick;
>
> And clocksource_tick is of type clocksource:
>
> struct clocksource {
>        ...
>        cycle_t (*read)(void);
>
> And cycle_t is:
> /* clocksource cycle base type */
> typedef u64 cycle_t;
>
> And u64 is now:
> unsigned long long - thus we need to fix prototype
> of get_tick to fix the warnings.
>
> A cast could do it - but fixing the real problem
> is better here.

Sounds good to me.  It was just a question.  Thank you for the explanation.

- Ken

^ permalink raw reply

* Re: [PATCH] sparc64: use unsigned long long for u64
From: Sam Ravnborg @ 2008-12-23 17:26 UTC (permalink / raw)
  To: Ken Chen
  Cc: Andrew Morton, David Miller, sparclinux, mingo, sfr, linux-kernel,
	paulus, tglx, hpa, linux-next
In-Reply-To: <b040c32a0812230905q3a257163r35373b0cb50df35c@mail.gmail.com>

On Tue, Dec 23, 2008 at 09:05:44AM -0800, Ken Chen wrote:
> On Tue, Dec 23, 2008 at 5:17 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
> > Andrew Morton wrote:
> >
> >    People keep on doing
> >
> >            printk("%llu", some_u64);
> >
> >    testing it only on x86_64 and this generates a warning storm on
> >    powerpc, sparc64, etc.  Because they use `long', not `long long'.
> >
> >    Quite a few 64-bit architectures are using `long' for their
> >    s64/u64 types.  We should convert them all to `long long'.
> >
> > Update types.h so we use unsigned long long for u64 and
> > fix all warnings in sparc64 code.
> > Tested with an allnoconfig, defconfig and allmodconfig builds.
> >
> > This patch introduces additional warnings in several drivers.
> > These will be dealt with in separate patches.
> >
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Andrew Morton <akpm@linux-foundation.org>
> > ---
> >
> > It may take a few days before the drivers gets fixed.
> > Christmas is approaching fast by now.
> >
> >        Sam
> >
> > diff --git a/arch/sparc/include/asm/timer_64.h b/arch/sparc/include/asm/timer_64.h
> > index 5b779fd..ef3c368 100644
> > --- a/arch/sparc/include/asm/timer_64.h
> > +++ b/arch/sparc/include/asm/timer_64.h
> > @@ -10,7 +10,7 @@
> >  #include <linux/init.h>
> >
> >  struct sparc64_tick_ops {
> > -       unsigned long (*get_tick)(void);
> > +       unsigned long long (*get_tick)(void);
> 
> wait, why does this need to be changed?

We have:
        clocksource_tick.read = tick_ops->get_tick;

And clocksource_tick is of type clocksource:

struct clocksource {
	...
        cycle_t (*read)(void);

And cycle_t is:
/* clocksource cycle base type */
typedef u64 cycle_t;

And u64 is now:
unsigned long long - thus we need to fix prototype
of get_tick to fix the warnings.

A cast could do it - but fixing the real problem
is better here.

	Sam

^ permalink raw reply

* Re: linux-next: usb tree build failure
From: Greg KH @ 2008-12-23 17:17 UTC (permalink / raw)
  To: Inaky Perez-Gonzalez; +Cc: Sam Ravnborg, Stephen Rothwell, linux-next
In-Reply-To: <200812230226.29519.inaky@linux.intel.com>

On Tue, Dec 23, 2008 at 02:26:28AM -0800, Inaky Perez-Gonzalez wrote:
> On Monday 22 December 2008, Greg KH wrote:
> > On Mon, Dec 22, 2008 at 09:26:43AM -0800, Inaky Perez-Gonzalez wrote:
> > > On Sunday 21 December 2008, Sam Ravnborg wrote:
> > >
> > > ops -- ok, I will. I guess I have to add this in all the similar ones,
> > > right?
> > >
> > > Greg, do you want a new patch series or just another patch on top?
> >
> > Just a single replacement patch for when we add this makefile is fine
> > with me.
> 
> Hmmm, there was more feedback Sam gave me on Kconfig and Makefiles I added,
> so at the end the patch touches more files than just this one. Maybe a whole
> new series will be the way to go.

Ick, I really don't want that.  But feel free to respin them yourself,
and then just send the different patches?  It's easy to just replace a
few individual ones than to drop the whole series and redo it (well on
my end at least...)

Heck, tell me what to edit and I can edit individual patches quite
easily as well, I'd rather do that as well :)

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH] sparc64: use unsigned long long for u64
From: Ken Chen @ 2008-12-23 17:05 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Andrew Morton, David Miller, sparclinux, mingo, sfr, linux-kernel,
	paulus, tglx, hpa, linux-next
In-Reply-To: <20081223131746.GA7456@uranus.ravnborg.org>

On Tue, Dec 23, 2008 at 5:17 AM, Sam Ravnborg <sam@ravnborg.org> wrote:
> Andrew Morton wrote:
>
>    People keep on doing
>
>            printk("%llu", some_u64);
>
>    testing it only on x86_64 and this generates a warning storm on
>    powerpc, sparc64, etc.  Because they use `long', not `long long'.
>
>    Quite a few 64-bit architectures are using `long' for their
>    s64/u64 types.  We should convert them all to `long long'.
>
> Update types.h so we use unsigned long long for u64 and
> fix all warnings in sparc64 code.
> Tested with an allnoconfig, defconfig and allmodconfig builds.
>
> This patch introduces additional warnings in several drivers.
> These will be dealt with in separate patches.
>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> It may take a few days before the drivers gets fixed.
> Christmas is approaching fast by now.
>
>        Sam
>
> diff --git a/arch/sparc/include/asm/timer_64.h b/arch/sparc/include/asm/timer_64.h
> index 5b779fd..ef3c368 100644
> --- a/arch/sparc/include/asm/timer_64.h
> +++ b/arch/sparc/include/asm/timer_64.h
> @@ -10,7 +10,7 @@
>  #include <linux/init.h>
>
>  struct sparc64_tick_ops {
> -       unsigned long (*get_tick)(void);
> +       unsigned long long (*get_tick)(void);

wait, why does this need to be changed?


People having problem with:

        u64 data;
        seq_printf(m, "%llu ", data);

This compiles fine with arch that defines u64 to unsigned long long
(like x86), but generate compile time warning on arch that defines u64
to unsigned long.

Isn't that you just need to convert format string to %llu for u64 type?

- Ken

^ permalink raw reply

* [PATCH] sparc64: fix unsigned long long warnings in drivers
From: Sam Ravnborg @ 2008-12-23 14:42 UTC (permalink / raw)
  To: Andrew Morton, David Miller, sparclinux
  Cc: mingo, sfr, linux-kernel, kenchen, paulus, tglx, hpa, linux-next
In-Reply-To: <20081223131746.GA7456@uranus.ravnborg.org>

Fix warnings caused by the unsigned long long usage in sparc
specific drivers.

The drivers were considered sparc specific more or less from the
filename alone.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---

This turned out easier than expected.
There were a few generic related warnings that I did not touch.
I can split it up in smaller chunks if preferred.

	Sam

 drivers/block/sunvdc.c          |    8 ++++----
 drivers/char/hw_random/n2-drv.c |    2 +-
 drivers/net/sunvnet.c           |    8 ++++----
 drivers/sbus/char/display7seg.c |    2 +-
 sound/sparc/cs4231.c            |    2 +-
 5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/block/sunvdc.c b/drivers/block/sunvdc.c
index 953c0b8..5861e33 100644
--- a/drivers/block/sunvdc.c
+++ b/drivers/block/sunvdc.c
@@ -153,7 +153,7 @@ static int vdc_send_attr(struct vio_driver_state *vio)
 	pkt.vdisk_block_size = port->vdisk_block_size;
 	pkt.max_xfer_size = port->max_xfer_size;
 
-	viodbg(HS, "SEND ATTR xfer_mode[0x%x] blksz[%u] max_xfer[%lu]\n",
+	viodbg(HS, "SEND ATTR xfer_mode[0x%x] blksz[%u] max_xfer[%llu]\n",
 	       pkt.xfer_mode, pkt.vdisk_block_size, pkt.max_xfer_size);
 
 	return vio_ldc_send(&port->vio, &pkt, sizeof(pkt));
@@ -164,8 +164,8 @@ static int vdc_handle_attr(struct vio_driver_state *vio, void *arg)
 	struct vdc_port *port = to_vdc_port(vio);
 	struct vio_disk_attr_info *pkt = arg;
 
-	viodbg(HS, "GOT ATTR stype[0x%x] ops[%lx] disk_size[%lu] disk_type[%x] "
-	       "xfer_mode[0x%x] blksz[%u] max_xfer[%lu]\n",
+	viodbg(HS, "GOT ATTR stype[0x%x] ops[%llx] disk_size[%llu] disk_type[%x] "
+	       "xfer_mode[0x%x] blksz[%u] max_xfer[%llu]\n",
 	       pkt->tag.stype, pkt->operations,
 	       pkt->vdisk_size, pkt->vdisk_type,
 	       pkt->xfer_mode, pkt->vdisk_block_size,
@@ -753,7 +753,7 @@ static int __devinit vdc_port_probe(struct vio_dev *vdev,
 
 	err = -ENODEV;
 	if ((vdev->dev_no << PARTITION_SHIFT) & ~(u64)MINORMASK) {
-		printk(KERN_ERR PFX "Port id [%lu] too large.\n",
+		printk(KERN_ERR PFX "Port id [%llu] too large.\n",
 		       vdev->dev_no);
 		goto err_out_release_mdesc;
 	}
diff --git a/drivers/char/hw_random/n2-drv.c b/drivers/char/hw_random/n2-drv.c
index 8859aea..9b3e09c 100644
--- a/drivers/char/hw_random/n2-drv.c
+++ b/drivers/char/hw_random/n2-drv.c
@@ -482,7 +482,7 @@ static void n2rng_dump_test_buffer(struct n2rng *np)
 	int i;
 
 	for (i = 0; i < SELFTEST_BUFFER_WORDS; i++)
-		dev_err(&np->op->dev, "Test buffer slot %d [0x%016lx]\n",
+		dev_err(&np->op->dev, "Test buffer slot %d [0x%016llx]\n",
 			i, np->test_buffer[i]);
 }
 
diff --git a/drivers/net/sunvnet.c b/drivers/net/sunvnet.c
index a720065..c5335cf 100644
--- a/drivers/net/sunvnet.c
+++ b/drivers/net/sunvnet.c
@@ -336,7 +336,7 @@ static int vnet_walk_rx_one(struct vnet_port *port,
 	if (IS_ERR(desc))
 		return PTR_ERR(desc);
 
-	viodbg(DATA, "vio_walk_rx_one desc[%02x:%02x:%08x:%08x:%lx:%lx]\n",
+	viodbg(DATA, "vio_walk_rx_one desc[%02x:%02x:%08x:%08x:%llx:%llx]\n",
 	       desc->hdr.state, desc->hdr.ack,
 	       desc->size, desc->ncookies,
 	       desc->cookies[0].cookie_addr,
@@ -394,14 +394,14 @@ static int vnet_rx(struct vnet_port *port, void *msgbuf)
 	struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_RX_RING];
 	struct vio_driver_state *vio = &port->vio;
 
-	viodbg(DATA, "vnet_rx stype_env[%04x] seq[%016lx] rcv_nxt[%016lx]\n",
+	viodbg(DATA, "vnet_rx stype_env[%04x] seq[%016llx] rcv_nxt[%016llx]\n",
 	       pkt->tag.stype_env, pkt->seq, dr->rcv_nxt);
 
 	if (unlikely(pkt->tag.stype_env != VIO_DRING_DATA))
 		return 0;
 	if (unlikely(pkt->seq != dr->rcv_nxt)) {
-		printk(KERN_ERR PFX "RX out of sequence seq[0x%lx] "
-		       "rcv_nxt[0x%lx]\n", pkt->seq, dr->rcv_nxt);
+		printk(KERN_ERR PFX "RX out of sequence seq[0x%llx] "
+		       "rcv_nxt[0x%llx]\n", pkt->seq, dr->rcv_nxt);
 		return 0;
 	}
 
diff --git a/drivers/sbus/char/display7seg.c b/drivers/sbus/char/display7seg.c
index 2550af4..1d46205 100644
--- a/drivers/sbus/char/display7seg.c
+++ b/drivers/sbus/char/display7seg.c
@@ -214,7 +214,7 @@ static int __devinit d7s_probe(struct of_device *op,
 
 	writeb(regs,  p->regs);
 
-	printk(KERN_INFO PFX "7-Segment Display%s at [%s:0x%lx] %s\n", 
+	printk(KERN_INFO PFX "7-Segment Display%s at [%s:0x%llx] %s\n", 
 	       op->node->full_name,
 	       (regs & D7S_FLIP) ? " (FLIPPED)" : "",
 	       op->resource[0].start,
diff --git a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c
index d44bf98..41c3875 100644
--- a/sound/sparc/cs4231.c
+++ b/sound/sparc/cs4231.c
@@ -2057,7 +2057,7 @@ static int __devinit cs4231_ebus_probe(struct of_device *op, const struct of_dev
 	if (err)
 		return err;
 
-	sprintf(card->longname, "%s at 0x%lx, irq %d",
+	sprintf(card->longname, "%s at 0x%llx, irq %d",
 		card->shortname,
 		op->resource[0].start,
 		op->irqs[0]);
-- 
1.6.0.2.GIT

^ permalink raw reply related

* Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask
From: Kamalesh Babulal @ 2008-12-23 13:21 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Stephen Rothwell, linux-next, LKML, mingo, mel
In-Reply-To: <494C0BF0.3080109@kernel.org>

* Yinghai Lu <yinghai@kernel.org> [2008-12-19 13:02:40]:

> Kamalesh Babulal wrote:
> > * Yinghai Lu <yinghai@kernel.org> [2008-12-19 03:51:53]:
> > 
> >> On Fri, Dec 19, 2008 at 2:54 AM, Kamalesh Babulal
> >> <kamalesh@linux.vnet.ibm.com> wrote:
> >>> Hi,
> >>>
> >>>        next-200816 kernel panics, while boot up on x86_64 machine.
> >>>
> >>> Initializing CPU#0
> >>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
> >>> IP: [<ffffffff80700449>] init_ISA_irqs+0x18/0x53
> >> .config and good boot log?
> >>
> >> YH
> > Hi,
> > 
> > I am able to reproduce with next-20081218 kernel also, attaching the
> > bootlog and .config file of next-20081218 kernel
> > 
> > root (hd0,0)
> >  Filesystem type is ext2fs, partition type 0x83
> > kernel /vmlinuz-autotest root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 c
> > onsole=ttyS1,19200 selinux=no debug nmi_watchdog=1 initcall_debug earlyprintk=s
> > erial,ttyS1,19200 IDENT=1229689794
> >    [Linux-bzImage, setup=0x3000, size=0x274e50]
> > initrd /initrd-autotest
> >    [Linux-initrd @ 0x37e5f000, 0x190980 bytes]
> > 
> > Command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1229689794
> > KERNEL supported cpus:
> >   Intel GenuineIntel
> >   AMD AuthenticAMD
> >   Centaur CentaurHauls
> > BIOS-provided physical RAM map:
> >  BIOS-e820: 0000000000000000 - 000000000009d400 (usable)
> >  BIOS-e820: 000000000009d400 - 00000000000a0000 (reserved)
> >  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
> >  BIOS-e820: 0000000000100000 - 000000003ffcddc0 (usable)
> >  BIOS-e820: 000000003ffcddc0 - 000000003ffd0000 (ACPI data)
> >  BIOS-e820: 000000003ffd0000 - 0000000040000000 (reserved)
> >  BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
> > DMI 2.3 present.
> > last_pfn = 0x3ffcd max_arch_pfn = 0x3ffffffff
> > init_memory_mapping: 0000000000000000-000000003ffcd000
> >  0000000000 - 003fe00000 page 2M
> >  003fe00000 - 003ffcd000 page 4k
> > kernel direct mapping tables up to 3ffcd000 @ 8000-b000
> > last_map_addr: 3ffcd000 end: 3ffcd000
> > RAMDISK: 37e5f000 - 37fef980
> > ACPI: RSDP 000FDFC0, 0014 (r0 IBM   )
> > ACPI: RSDT 3FFCFF80, 0034 (r1 IBM    SERBLADE     1000 IBM  45444F43)
> > ACPI: FACP 3FFCFEC0, 0084 (r2 IBM    SERBLADE     1000 IBM  45444F43)
> > ACPI: DSDT 3FFCDDC0, 1EA6 (r1 IBM    SERBLADE     1000 INTL  2002025)
> > ACPI: FACS 3FFCFCC0, 0040
> > ACPI: APIC 3FFCFE00, 009C (r1 IBM    SERBLADE     1000 IBM  45444F43)
> > ACPI: SRAT 3FFCFD40, 0098 (r1 IBM    SERBLADE     1000 IBM  45444F43)
> > ACPI: HPET 3FFCFD00, 0038 (r1 IBM    SERBLADE     1000 IBM  45444F43)
> > ACPI: Local APIC address 0xfee00000
> > SRAT: PXM 0 -> APIC 0 -> Node 0
> > SRAT: PXM 0 -> APIC 1 -> Node 0
> > SRAT: PXM 1 -> APIC 2 -> Node 1
> > SRAT: PXM 1 -> APIC 3 -> Node 1
> > SRAT: Node 0 PXM 0 0-40000000
> > NUMA: Using 63 for the hash shift.
> > Bootmem setup node 0 0000000000000000-000000003ffcd000
> >   NODE_DATA [0000000000009000 - 000000000000efff]
> >   bootmap [000000000000f000 -  0000000000016fff] pages 8
> > (6 early reservations) ==> bootmem [0000000000 - 003ffcd000]
> >   #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
> >   #1 [0000006000 - 0000008000]       TRAMPOLINE ==> [0000006000 - 0000008000]
> >   #2 [0000200000 - 00008198b0]    TEXT DATA BSS ==> [0000200000 - 00008198b0]
> >   #3 [0037e5f000 - 0037fef980]          RAMDISK ==> [0037e5f000 - 0037fef980]
> >   #4 [000009d400 - 0000100000]    BIOS reserved ==> [000009d400 - 0000100000]
> >   #5 [0000008000 - 0000009000]          PGTABLE ==> [0000008000 - 0000009000]
> > found SMP MP-table at [ffff88000009d540] 0009d540
> > Zone PFN ranges:
> >   DMA      0x00000000 -> 0x00001000
> >   DMA32    0x00001000 -> 0x00100000
> >   Normal   0x00100000 -> 0x00100000
> > Movable zone start PFN for each node
> > early_node_map[2] active PFN ranges
> >     0: 0x00000000 -> 0x0000009d
> >     0: 0x00000100 -> 0x0003ffcd
> > On node 0 totalpages: 261994
> >   DMA zone: 64 pages used for memmap
> >   DMA zone: 1665 pages reserved
> >   DMA zone: 2268 pages, LIFO batch:0
> >   DMA32 zone: 4032 pages used for memmap
> >   DMA32 zone: 253965 pages, LIFO batch:31
> >   Normal zone: 0 pages used for memmap
> >   Movable zone: 0 pages used for memmap
> > Detected use of extended apic ids on hypertransport bus
> > Detected use of extended apic ids on hypertransport bus
> > ACPI: PM-Timer IO Port: 0x2208
> > ACPI: Local APIC address 0xfee00000
> > ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
> > ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
> > ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
> > ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
> > ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
> > ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
> > ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
> > ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1])
> > ACPI: IOAPIC (id[0x0e] address[0xfec00000] gsi_base[0])
> > IOAPIC[0]: apic_id 14, version 0, address 0xfec00000, GSI 0-23
> > ACPI: IOAPIC (id[0x0d] address[0xfec10000] gsi_base[24])
> > IOAPIC[1]: apic_id 13, version 0, address 0xfec10000, GSI 24-27
> > ACPI: IOAPIC (id[0x0c] address[0xfec20000] gsi_base[48])
> > IOAPIC[2]: apic_id 12, version 0, address 0xfec20000, GSI 48-51
> > ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
> > ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level)
> > ACPI: IRQ0 used by override.
> > ACPI: IRQ2 used by override.
> > ACPI: IRQ11 used by override.
> > Using ACPI (MADT) for SMP configuration information
> > ACPI: HPET id: 0x10228203 base: 0xfecff000
> > SMP: Allowing 4 CPUs, 0 hotplug CPUs
> > Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
> > PERCPU: Allocating 49152 bytes of per cpu data
> > per cpu data for cpu0 on node0 at 000000000100e000
> > per cpu data for cpu1 on node0 at 000000000101a000
> > per cpu data for cpu2 on node0 at 0000000001026000
> > per cpu data for cpu3 on node0 at 0000000001032000
> > NR_CPUS: 255, nr_cpu_ids: 4, nr_node_ids 1
> > Built 1 zonelists in Node order, mobility grouping on.  Total pages: 256233
> > Policy zone: DMA32
> > Kernel command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1229689794
> > Initializing CPU#0
> > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
> > IP: [<ffffffff80714479>] init_ISA_irqs+0x18/0x53
> > PGD 0 
> > Thread overran stack, or stack corrupted
> > Oops: 0002 [#1] SMP 
> > last sysfs file: 
> > CPU 0 
> > Modules linked in:
> > Pid: 0, comm: swapper Not tainted 2.6.28-rc8-next-20081218-autotest #1
> > RIP: 0010:[<ffffffff80714479>]  [<ffffffff80714479>] init_ISA_irqs+0x18/0x53
> > RSP: 0018:ffffffff80705f88  EFLAGS: 00010093
> > RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff80778a80
> > RDX: 0000000000000100 RSI: 0000000000000092 RDI: 0000000000000000
> > RBP: 0000000000000000 R08: ffff88008089e000 R09: 0000000000000000
> > R10: ffff880001012c60 R11: ffffffff803560a0 R12: ffff88000103e040
> > R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
> > FS:  0000000000000000(0000) GS:ffffffff806f73c0(0000) knlGS:0000000000000000
> > CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> > CR2: 0000000000000048 CR3: 0000000000201000 CR4: 00000000000006a0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > Process swapper (pid: 0, threadinfo ffffffff80704000, task ffffffff806843a0)
> > Stack:
> >  ffffffff8073b560 ffffffff807144bd ffffffff806e8f40 ffffffff8050e772
> >  ffffffff8073b560 ffffffff8070daf6 0000000000000000 0000000000093370
> >  0000000000000000 ffffffff8070d394 80708e000010d136 00000000ffffffff
> > Call Trace:
> >  [<ffffffff807144bd>] native_init_IRQ+0x9/0x931
> >  [<ffffffff8050e772>] register_cpu_notifier+0x1f/0x23
> >  [<ffffffff8070daf6>] start_kernel+0x1a8/0x319
> >  [<ffffffff8070d394>] x86_64_start_kernel+0xde/0xe2
> > Code: 85 c0 75 0d 59 48 c7 c7 20 5f 68 80 e9 65 74 cb ff 5a c3 53 31 db e8 ba 85 00 00 31 ff e8 52 ad af ff 89 df e8 6a 12 b5 ff 89 df <c7> 40 48 00 02 00 00 48 c7 40 40 00 00 00 00 c7 40 4c 01 00 00 
> > RIP  [<ffffffff80714479>] init_ISA_irqs+0x18/0x53
> >  RSP <ffffffff80705f88>
> > CR2: 0000000000000048
> 
> can you check if tip works or not?
> 
> YH
Hi,

	I tried testing with today's tip/master and it can be reproduced with it.

root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /vmlinuz-autotest root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 c
onsole=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall
_debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
   [Linux-bzImage, setup=0x3000, size=0x273c10]
initrd /initrd-autotest
   [Linux-initrd @ 0x37e5f000, 0x190980 bytes]

Linux version 2.6.28-rc8-autotest-tip (root@bl6-13.ltc.austin.ibm.com) (gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)) #1 SMP Tue Dec 23 06:37:41 CST 2008
Command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
KERNEL supported cpus:
  Intel GenuineIntel
  AMD AuthenticAMD
  Centaur CentaurHauls
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009d400 (usable)
 BIOS-e820: 000000000009d400 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003ffcddc0 (usable)
 BIOS-e820: 000000003ffcddc0 - 000000003ffd0000 (ACPI data)
 BIOS-e820: 000000003ffd0000 - 0000000040000000 (reserved)
 BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
console [earlyser0] enabled
DMI 2.3 present.
last_pfn = 0x3ffcd max_arch_pfn = 0x100000000
init_memory_mapping: 0000000000000000-000000003ffcd000
 0000000000 - 003fe00000 page 2M
 003fe00000 - 003ffcd000 page 4k
kernel direct mapping tables up to 3ffcd000 @ 8000-b000
last_map_addr: 3ffcd000 end: 3ffcd000
RAMDISK: 37e5f000 - 37fef980
ACPI: RSDP 000FDFC0, 0014 (r0 IBM   )
ACPI: RSDT 3FFCFF80, 0034 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: FACP 3FFCFEC0, 0084 (r2 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: DSDT 3FFCDDC0, 1EA6 (r1 IBM    SERBLADE     1000 INTL  2002025)
ACPI: FACS 3FFCFCC0, 0040
ACPI: APIC 3FFCFE00, 009C (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: SRAT 3FFCFD40, 0098 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: HPET 3FFCFD00, 0038 (r1 IBM    SERBLADE     1000 IBM  45444F43)
ACPI: Local APIC address 0xfee00000
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 1 -> APIC 2 -> Node 1
SRAT: PXM 1 -> APIC 3 -> Node 1
SRAT: Node 0 PXM 0 0-40000000
NUMA: Using 63 for the hash shift.
Bootmem setup node 0 0000000000000000-000000003ffcd000
  NODE_DATA [0000000000009000 - 000000000000efff]
  bootmap [000000000000f000 -  0000000000016fff] pages 8
(6 early reservations) ==> bootmem [0000000000 - 003ffcd000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
  #1 [0000006000 - 0000008000]       TRAMPOLINE ==> [0000006000 - 0000008000]
  #2 [0000200000 - 00008127f0]    TEXT DATA BSS ==> [0000200000 - 00008127f0]
  #3 [0037e5f000 - 0037fef980]          RAMDISK ==> [0037e5f000 - 0037fef980]
  #4 [000009d400 - 0000100000]    BIOS reserved ==> [000009d400 - 0000100000]
  #5 [0000008000 - 0000009000]          PGTABLE ==> [0000008000 - 0000009000]
found SMP MP-table at [ffff88000009d540] 0009d540
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  DMA32    0x00001000 -> 0x00100000
  Normal   0x00100000 -> 0x00100000
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000000 -> 0x0000009d
    0: 0x00000100 -> 0x0003ffcd
On node 0 totalpages: 261994
  DMA zone: 64 pages used for memmap
  DMA zone: 1658 pages reserved
  DMA zone: 2275 pages, LIFO batch:0
  DMA32 zone: 4032 pages used for memmap
  DMA32 zone: 253965 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
Detected use of extended apic ids on hypertransport bus
Detected use of extended apic ids on hypertransport bus
ACPI: PM-Timer IO Port: 0x2208
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1])
ACPI: IOAPIC (id[0x0e] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 14, version 0, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x0d] address[0xfec10000] gsi_base[24])
IOAPIC[1]: apic_id 13, version 0, address 0xfec10000, GSI 24-27
ACPI: IOAPIC (id[0x0c] address[0xfec20000] gsi_base[48])
IOAPIC[2]: apic_id 12, version 0, address 0xfec20000, GSI 48-51
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ11 used by override.
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x10228203 base: 0xfecff000
SMP: Allowing 4 CPUs, 0 hotplug CPUs
Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
NR_CPUS:255 nr_cpumask_bits:255 nr_cpu_ids:4 nr_node_ids:1
PERCPU: Allocating 49152 bytes of per cpu data
per cpu data for cpu0 on node0 at 000000000100e000
per cpu data for cpu1 on node0 at 000000000101a000
per cpu data for cpu2 on node0 at 0000000001026000
per cpu data for cpu3 on node0 at 0000000001032000
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 256240
Policy zone: DMA32
Kernel command line: root=/dev/mapper/VolGroup00-LogVol00 ro console=tty0 console=ttyS1,19200 selinux=no debug nmi_watchdog=1 unknown_nmi_panic=1 initcall_debug earlyprintk=serial,ttyS1,19200 IDENT=1230036460
Initializing CPU#0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
IP: [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
PGD 0 
Thread overran stack, or stack corrupted
Oops: 0002 [#1] SMP 
last sysfs file: 
CPU 0 
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.28-rc8-autotest-tip #1
RIP: 0010:[<ffffffff8070e46a>]  [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
RSP: 0018:ffffffff806fff68  EFLAGS: 00010093
RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff80773b40
RDX: 0000000000000100 RSI: 0000000000000096 RDI: 0000000000000000
RBP: 0000000000000000 R08: ffff8800808a3000 R09: 0000000000000000
R10: ffff880001012ce0 R11: ffffffff80355720 R12: 0000000000000000
R13: ffffffff80735860 R14: ffffffff807380a0 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffffffff806f1480(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000048 CR3: 0000000000201000 CR4: 00000000000006a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 0, threadinfo ffffffff806fe000, task ffffffff8067e3a0)
Stack:
 0000000000000003 ffffffff8070e4ae ffffffff806e2f40 ffffffff8050e443
 0000000000000003 ffffffff80707b21 0000000000000000 00000000008127f0
 ffffffff807380a0 0000000000093370 0000000000000000 0000000000000000
Call Trace:
 [<ffffffff8070e4ae>] native_init_IRQ+0x9/0x9b5
 [<ffffffff8050e443>] register_cpu_notifier+0x1f/0x23
 [<ffffffff80707b21>] start_kernel+0x1c2/0x31d
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
Code: 85 c0 75 0d 59 48 c7 c7 a0 ff 67 80 e9 7c bf cb ff 5a c3 53 31 db e8 6e 87 00 00 31 ff e8 51 0e b0 ff 89 df e8 a1 81 b5 ff 89 df <c7> 40 48 00 02 00 00 48 c7 40 40 00 00 00 00 c7 40 4c 01 00 00 
RIP  [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
 RSP <ffffffff806fff68>
CR2: 0000000000000048
---[ end trace 4eaa2a86a8e2da22 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Pid: 0, comm: swapper Tainted: G      D    2.6.28-rc8-autotest-tip #1
Call Trace:
 [<ffffffff80237321>] panic+0x86/0x144
 [<ffffffff80237eb1>] printk+0x4e/0x56
 [<ffffffff80239fd7>] do_exit+0x75/0x78f
 [<ffffffff8052579e>] oops_end+0xa8/0xad
 [<ffffffff80526fed>] do_page_fault+0x756/0x80f
 [<ffffffff80524daf>] page_fault+0x1f/0x30
 [<ffffffff80355720>] delay_loop+0x0/0x29
 [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
 [<ffffffff8070e468>] init_ISA_irqs+0x16/0x53
 [<ffffffff8070e4ae>] native_init_IRQ+0x9/0x9b5
 [<ffffffff8050e443>] register_cpu_notifier+0x1f/0x23
 [<ffffffff80707b21>] start_kernel+0x1c2/0x31d
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
------------[ cut here ]------------
WARNING: at kernel/smp.c:333 smp_call_function_mask+0x36/0x224()
Hardware name: IBM eServer BladeCenter LS20 -[885055U]-
Modules linked in:
Pid: 0, comm: swapper Tainted: G      D    2.6.28-rc8-autotest-tip #1
Call Trace:
 [<ffffffff80237274>] warn_slowpath+0xd8/0xf5
 [<ffffffff80524be1>] _spin_lock_irqsave+0x9/0xe
 [<ffffffff8024c2fa>] up+0xe/0x37
 [<ffffffff80237945>] release_console_sem+0x186/0x1a1
 [<ffffffff80524be1>] _spin_lock_irqsave+0x9/0xe
 [<ffffffff8024c2fa>] up+0xe/0x37
 [<ffffffff80237945>] release_console_sem+0x186/0x1a1
 [<ffffffff80211d37>] stop_this_cpu+0x0/0x1d
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
 [<ffffffff80237eb1>] printk+0x4e/0x56
 [<ffffffff80253dab>] smp_call_function_mask+0x36/0x224
 [<ffffffff80237eb1>] printk+0x4e/0x56
 [<ffffffff8034f382>] __next_cpu_nr+0x1a/0x21
 [<ffffffff8021e8d8>] touch_nmi_watchdog+0x43/0x53
 [<ffffffff8020f13d>] print_trace_address+0x1d/0x2d
 [<ffffffff80247747>] __kernel_text_address+0x1a/0x26
 [<ffffffff8020f20f>] print_context_stack+0x90/0xa6
 [<ffffffff80259d75>] crash_kexec+0xe6/0xef
 [<ffffffff8020e4a7>] dump_trace+0x249/0x258
 [<ffffffff80253fc3>] smp_call_function+0x2a/0x2f
 [<ffffffff8021d3e3>] native_smp_send_stop+0x1a/0x26
 [<ffffffff80237335>] panic+0x9a/0x144
 [<ffffffff80237eb1>] printk+0x4e/0x56
 [<ffffffff80239fd7>] do_exit+0x75/0x78f
 [<ffffffff8052579e>] oops_end+0xa8/0xad
 [<ffffffff80526fed>] do_page_fault+0x756/0x80f
 [<ffffffff80524daf>] page_fault+0x1f/0x30
 [<ffffffff80355720>] delay_loop+0x0/0x29
 [<ffffffff8070e46a>] init_ISA_irqs+0x18/0x53
 [<ffffffff8070e468>] init_ISA_irqs+0x16/0x53
 [<ffffffff8070e4ae>] native_init_IRQ+0x9/0x9b5
 [<ffffffff8050e443>] register_cpu_notifier+0x1f/0x23
 [<ffffffff80707b21>] start_kernel+0x1c2/0x31d
 [<ffffffff80707394>] x86_64_start_kernel+0xde/0xe2
---[ end trace 4eaa2a86a8e2da22 ]---
-- 
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

^ permalink raw reply

* [PATCH] sparc64: use unsigned long long for u64
From: Sam Ravnborg @ 2008-12-23 13:17 UTC (permalink / raw)
  To: Andrew Morton, sparclinux
  Cc: mingo, sfr, linux-kernel, kenchen, paulus, tglx, hpa, linux-next,
	davem
In-Reply-To: <20081222151338.3b6ef997.akpm@linux-foundation.org>

Andrew Morton wrote:

    People keep on doing

            printk("%llu", some_u64);

    testing it only on x86_64 and this generates a warning storm on
    powerpc, sparc64, etc.  Because they use `long', not `long long'.

    Quite a few 64-bit architectures are using `long' for their
    s64/u64 types.  We should convert them all to `long long'.

Update types.h so we use unsigned long long for u64 and
fix all warnings in sparc64 code.
Tested with an allnoconfig, defconfig and allmodconfig builds.

This patch introduces additional warnings in several drivers.
These will be dealt with in separate patches.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
---

It may take a few days before the drivers gets fixed.
Christmas is approaching fast by now.

	Sam

 arch/sparc/include/asm/timer_64.h |    2 +-
 arch/sparc/include/asm/types.h    |    2 +-
 arch/sparc/kernel/ds.c            |   34 +++++++++++++++++-----------------
 arch/sparc/kernel/iommu.c         |    2 +-
 arch/sparc/kernel/mdesc.c         |   14 +++++++-------
 arch/sparc/kernel/of_device_64.c  |    2 +-
 arch/sparc/kernel/pci.c           |    2 +-
 arch/sparc/kernel/pci_common.c    |    2 +-
 arch/sparc/kernel/pci_msi.c       |    4 ++--
 arch/sparc/kernel/pci_schizo.c    |    2 +-
 arch/sparc/kernel/pci_sun4v.c     |    2 +-
 arch/sparc/kernel/power.c         |    2 +-
 arch/sparc/kernel/prom_irqtrans.c |    2 +-
 arch/sparc/kernel/psycho_common.c |    2 +-
 arch/sparc/kernel/smp_64.c        |    4 ++--
 arch/sparc/kernel/time_64.c       |   12 ++++++------
 arch/sparc/kernel/traps_64.c      |   20 ++++++++++----------
 arch/sparc/kernel/vio.c           |    4 ++--
 arch/sparc/mm/init_64.c           |   16 ++++++++--------
 19 files changed, 65 insertions(+), 65 deletions(-)

diff --git a/arch/sparc/include/asm/timer_64.h b/arch/sparc/include/asm/timer_64.h
index 5b779fd..ef3c368 100644
--- a/arch/sparc/include/asm/timer_64.h
+++ b/arch/sparc/include/asm/timer_64.h
@@ -10,7 +10,7 @@
 #include <linux/init.h>
 
 struct sparc64_tick_ops {
-	unsigned long (*get_tick)(void);
+	unsigned long long (*get_tick)(void);
 	int (*add_compare)(unsigned long);
 	unsigned long softint_mask;
 	void (*disable_irq)(void);
diff --git a/arch/sparc/include/asm/types.h b/arch/sparc/include/asm/types.h
index 8c28fde..2237118 100644
--- a/arch/sparc/include/asm/types.h
+++ b/arch/sparc/include/asm/types.h
@@ -11,7 +11,7 @@
 #if defined(__sparc__) && defined(__arch64__)
 
 /*** SPARC 64 bit ***/
-#include <asm-generic/int-l64.h>
+#include <asm-generic/int-ll64.h>
 
 #ifndef __ASSEMBLY__
 
diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c
index f52e053..57c3984 100644
--- a/arch/sparc/kernel/ds.c
+++ b/arch/sparc/kernel/ds.c
@@ -286,7 +286,7 @@ static void md_update_data(struct ds_info *dp,
 
 	rp = (struct ds_md_update_req *) (dpkt + 1);
 
-	printk(KERN_INFO "ds-%lu: Machine description update.\n", dp->id);
+	printk(KERN_INFO "ds-%llu: Machine description update.\n", dp->id);
 
 	mdesc_update();
 
@@ -325,7 +325,7 @@ static void domain_shutdown_data(struct ds_info *dp,
 
 	rp = (struct ds_shutdown_req *) (dpkt + 1);
 
-	printk(KERN_ALERT "ds-%lu: Shutdown request from "
+	printk(KERN_ALERT "ds-%llu: Shutdown request from "
 	       "LDOM manager received.\n", dp->id);
 
 	memset(&pkt, 0, sizeof(pkt));
@@ -365,7 +365,7 @@ static void domain_panic_data(struct ds_info *dp,
 
 	rp = (struct ds_panic_req *) (dpkt + 1);
 
-	printk(KERN_ALERT "ds-%lu: Panic request from "
+	printk(KERN_ALERT "ds-%llu: Panic request from "
 	       "LDOM manager received.\n", dp->id);
 
 	memset(&pkt, 0, sizeof(pkt));
@@ -549,7 +549,7 @@ static int __cpuinit dr_cpu_configure(struct ds_info *dp,
 	for_each_cpu_mask(cpu, *mask) {
 		int err;
 
-		printk(KERN_INFO "ds-%lu: Starting cpu %d...\n",
+		printk(KERN_INFO "ds-%llu: Starting cpu %d...\n",
 		       dp->id, cpu);
 		err = cpu_up(cpu);
 		if (err) {
@@ -565,7 +565,7 @@ static int __cpuinit dr_cpu_configure(struct ds_info *dp,
 				res = DR_CPU_RES_CPU_NOT_RESPONDING;
 			}
 
-			printk(KERN_INFO "ds-%lu: CPU startup failed err=%d\n",
+			printk(KERN_INFO "ds-%llu: CPU startup failed err=%d\n",
 			       dp->id, err);
 			dr_cpu_mark(resp, cpu, ncpus, res, stat);
 		}
@@ -605,7 +605,7 @@ static int dr_cpu_unconfigure(struct ds_info *dp,
 	for_each_cpu_mask(cpu, *mask) {
 		int err;
 
-		printk(KERN_INFO "ds-%lu: Shutting down cpu %d...\n",
+		printk(KERN_INFO "ds-%llu: Shutting down cpu %d...\n",
 		       dp->id, cpu);
 		err = cpu_down(cpu);
 		if (err)
@@ -684,7 +684,7 @@ static void ds_pri_data(struct ds_info *dp,
 
 	rp = (struct ds_pri_msg *) (dpkt + 1);
 
-	printk(KERN_INFO "ds-%lu: PRI REQ [%lx:%lx], len=%d\n",
+	printk(KERN_INFO "ds-%llu: PRI REQ [%llx:%llx], len=%d\n",
 	       dp->id, rp->req_num, rp->type, len);
 }
 
@@ -816,7 +816,7 @@ void ldom_set_var(const char *var, const char *value)
 
 		if (ds_var_doorbell == 0 ||
 		    ds_var_response != DS_VAR_SUCCESS)
-			printk(KERN_ERR "ds-%lu: var-config [%s:%s] "
+			printk(KERN_ERR "ds-%llu: var-config [%s:%s] "
 			       "failed, response(%d).\n",
 			       dp->id, var, value,
 			       ds_var_response);
@@ -850,7 +850,7 @@ void ldom_power_off(void)
 
 static void ds_conn_reset(struct ds_info *dp)
 {
-	printk(KERN_ERR "ds-%lu: ds_conn_reset() from %p\n",
+	printk(KERN_ERR "ds-%llu: ds_conn_reset() from %p\n",
 	       dp->id, __builtin_return_address(0));
 }
 
@@ -912,11 +912,11 @@ static int ds_handshake(struct ds_info *dp, struct ds_msg_tag *pkt)
 		struct ds_cap_state *cp = find_cap(dp, ap->handle);
 
 		if (!cp) {
-			printk(KERN_ERR "ds-%lu: REG ACK for unknown "
-			       "handle %lx\n", dp->id, ap->handle);
+			printk(KERN_ERR "ds-%llu: REG ACK for unknown "
+			       "handle %llx\n", dp->id, ap->handle);
 			return 0;
 		}
-		printk(KERN_INFO "ds-%lu: Registered %s service.\n",
+		printk(KERN_INFO "ds-%llu: Registered %s service.\n",
 		       dp->id, cp->service_id);
 		cp->state = CAP_STATE_REGISTERED;
 	} else if (pkt->type == DS_REG_NACK) {
@@ -924,8 +924,8 @@ static int ds_handshake(struct ds_info *dp, struct ds_msg_tag *pkt)
 		struct ds_cap_state *cp = find_cap(dp, np->handle);
 
 		if (!cp) {
-			printk(KERN_ERR "ds-%lu: REG NACK for "
-			       "unknown handle %lx\n",
+			printk(KERN_ERR "ds-%llu: REG NACK for "
+			       "unknown handle %llx\n",
 			       dp->id, np->handle);
 			return 0;
 		}
@@ -982,8 +982,8 @@ static void process_ds_work(void)
 		int req_len = qp->req_len;
 
 		if (!cp) {
-			printk(KERN_ERR "ds-%lu: Data for unknown "
-			       "handle %lu\n",
+			printk(KERN_ERR "ds-%llu: Data for unknown "
+			       "handle %llu\n",
 			       dp->id, dpkt->handle);
 
 			spin_lock_irqsave(&ds_lock, flags);
@@ -1085,7 +1085,7 @@ static void ds_event(void *arg, int event)
 	}
 
 	if (event != LDC_EVENT_DATA_READY) {
-		printk(KERN_WARNING "ds-%lu: Unexpected LDC event %d\n",
+		printk(KERN_WARNING "ds-%llu: Unexpected LDC event %d\n",
 		       dp->id, event);
 		spin_unlock_irqrestore(&ds_lock, flags);
 		return;
diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
index 1cc1995..d8900e1 100644
--- a/arch/sparc/kernel/iommu.c
+++ b/arch/sparc/kernel/iommu.c
@@ -434,7 +434,7 @@ static void strbuf_flush(struct strbuf *strbuf, struct iommu *iommu,
 		val = iommu_read(matchreg);
 		if (unlikely(val)) {
 			printk(KERN_WARNING "strbuf_flush: ctx flush "
-			       "timeout matchreg[%lx] ctx[%lx]\n",
+			       "timeout matchreg[%llx] ctx[%lx]\n",
 			       val, ctx);
 			goto do_page_flush;
 		}
diff --git a/arch/sparc/kernel/mdesc.c b/arch/sparc/kernel/mdesc.c
index 3c539a6..3f79f0c 100644
--- a/arch/sparc/kernel/mdesc.c
+++ b/arch/sparc/kernel/mdesc.c
@@ -536,24 +536,24 @@ static void __init report_platform_properties(void)
 
 	v = mdesc_get_property(hp, pn, "hostid", NULL);
 	if (v)
-		printk("PLATFORM: hostid [%08lx]\n", *v);
+		printk("PLATFORM: hostid [%08llx]\n", *v);
 	v = mdesc_get_property(hp, pn, "serial#", NULL);
 	if (v)
-		printk("PLATFORM: serial# [%08lx]\n", *v);
+		printk("PLATFORM: serial# [%08llx]\n", *v);
 	v = mdesc_get_property(hp, pn, "stick-frequency", NULL);
-	printk("PLATFORM: stick-frequency [%08lx]\n", *v);
+	printk("PLATFORM: stick-frequency [%08llx]\n", *v);
 	v = mdesc_get_property(hp, pn, "mac-address", NULL);
 	if (v)
-		printk("PLATFORM: mac-address [%lx]\n", *v);
+		printk("PLATFORM: mac-address [%llx]\n", *v);
 	v = mdesc_get_property(hp, pn, "watchdog-resolution", NULL);
 	if (v)
-		printk("PLATFORM: watchdog-resolution [%lu ms]\n", *v);
+		printk("PLATFORM: watchdog-resolution [%llu ms]\n", *v);
 	v = mdesc_get_property(hp, pn, "watchdog-max-timeout", NULL);
 	if (v)
-		printk("PLATFORM: watchdog-max-timeout [%lu ms]\n", *v);
+		printk("PLATFORM: watchdog-max-timeout [%llu ms]\n", *v);
 	v = mdesc_get_property(hp, pn, "max-cpus", NULL);
 	if (v)
-		printk("PLATFORM: max-cpus [%lu]\n", *v);
+		printk("PLATFORM: max-cpus [%llu]\n", *v);
 
 #ifdef CONFIG_SMP
 	{
diff --git a/arch/sparc/kernel/of_device_64.c b/arch/sparc/kernel/of_device_64.c
index 0f616ae..d8b8ad9 100644
--- a/arch/sparc/kernel/of_device_64.c
+++ b/arch/sparc/kernel/of_device_64.c
@@ -554,7 +554,7 @@ static void __init build_device_resources(struct of_device *op,
 		memset(r, 0, sizeof(*r));
 
 		if (of_resource_verbose)
-			printk("%s reg[%d] -> %lx\n",
+			printk("%s reg[%d] -> %llx\n",
 			       op->node->full_name, index,
 			       result);
 
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
index bdb7c0a..923e9bb 100644
--- a/arch/sparc/kernel/pci.c
+++ b/arch/sparc/kernel/pci.c
@@ -223,7 +223,7 @@ static void pci_parse_of_addrs(struct of_device *op,
 			continue;
 		i = addrs[0] & 0xff;
 		if (ofpci_verbose)
-			printk("  start: %lx, end: %lx, i: %x\n",
+			printk("  start: %llx, end: %llx, i: %x\n",
 			       op_res->start, op_res->end, i);
 
 		if (PCI_BASE_ADDRESS_0 <= i && i <= PCI_BASE_ADDRESS_5) {
diff --git a/arch/sparc/kernel/pci_common.c b/arch/sparc/kernel/pci_common.c
index 23b8808..64e6edf 100644
--- a/arch/sparc/kernel/pci_common.c
+++ b/arch/sparc/kernel/pci_common.c
@@ -457,7 +457,7 @@ void pci_determine_mem_io_space(struct pci_pbm_info *pbm)
 		prom_halt();
 	}
 
-	printk("%s: PCI IO[%lx] MEM[%lx]\n",
+	printk("%s: PCI IO[%llx] MEM[%llx]\n",
 	       pbm->name,
 	       pbm->io_space.start,
 	       pbm->mem_space.start);
diff --git a/arch/sparc/kernel/pci_msi.c b/arch/sparc/kernel/pci_msi.c
index 2e680f3..a4d38cf 100644
--- a/arch/sparc/kernel/pci_msi.c
+++ b/arch/sparc/kernel/pci_msi.c
@@ -426,8 +426,8 @@ void sparc64_pbm_msi_init(struct pci_pbm_info *pbm,
 		       pbm->name,
 		       pbm->msi_first, pbm->msi_num, pbm->msi_data_mask,
 		       pbm->msix_data_width);
-		printk(KERN_INFO "%s: MSI addr32[0x%lx:0x%x] "
-		       "addr64[0x%lx:0x%x]\n",
+		printk(KERN_INFO "%s: MSI addr32[0x%llx:0x%x] "
+		       "addr64[0x%llx:0x%x]\n",
 		       pbm->name,
 		       pbm->msi32_start, pbm->msi32_len,
 		       pbm->msi64_start, pbm->msi64_len);
diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c
index 45d9dba..2b5cdde 100644
--- a/arch/sparc/kernel/pci_schizo.c
+++ b/arch/sparc/kernel/pci_schizo.c
@@ -794,7 +794,7 @@ static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id)
 		   pbm->controller_regs + SCHIZO_SAFARI_ERRLOG);
 
 	if (!(errlog & BUS_ERROR_UNMAP)) {
-		printk("%s: Unexpected Safari/JBUS error interrupt, errlog[%016lx]\n",
+		printk("%s: Unexpected Safari/JBUS error interrupt, errlog[%016llx]\n",
 		       pbm->name, errlog);
 
 		return IRQ_HANDLED;
diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c
index 34a1fde..0ef0ab3 100644
--- a/arch/sparc/kernel/pci_sun4v.c
+++ b/arch/sparc/kernel/pci_sun4v.c
@@ -73,7 +73,7 @@ static long iommu_batch_flush(struct iommu_batch *p)
 		if (unlikely(num < 0)) {
 			if (printk_ratelimit())
 				printk("iommu_batch_flush: IOMMU map of "
-				       "[%08lx:%08lx:%lx:%lx:%lx] failed with "
+				       "[%08lx:%08llx:%lx:%lx:%lx] failed with "
 				       "status %ld\n",
 				       devhandle, HV_PCI_TSBID(0, entry),
 				       npages, prot, __pa(pglist), num);
diff --git a/arch/sparc/kernel/power.c b/arch/sparc/kernel/power.c
index 076cad7..ae88f06 100644
--- a/arch/sparc/kernel/power.c
+++ b/arch/sparc/kernel/power.c
@@ -40,7 +40,7 @@ static int __devinit power_probe(struct of_device *op, const struct of_device_id
 
 	power_reg = of_ioremap(res, 0, 0x4, "power");
 
-	printk(KERN_INFO "%s: Control reg at %lx\n",
+	printk(KERN_INFO "%s: Control reg at %llx\n",
 	       op->node->name, res->start);
 
 	if (has_button_interrupt(irq, op->node)) {
diff --git a/arch/sparc/kernel/prom_irqtrans.c b/arch/sparc/kernel/prom_irqtrans.c
index 96958c4..5702ad4 100644
--- a/arch/sparc/kernel/prom_irqtrans.c
+++ b/arch/sparc/kernel/prom_irqtrans.c
@@ -346,7 +346,7 @@ static void tomatillo_wsync_handler(unsigned int ino, void *_arg1, void *_arg2)
 			break;
 	}
 	if (limit <= 0) {
-		printk("tomatillo_wsync_handler: DMA won't sync [%lx:%lx]\n",
+		printk("tomatillo_wsync_handler: DMA won't sync [%llx:%llx]\n",
 		       val, mask);
 	}
 
diff --git a/arch/sparc/kernel/psycho_common.c b/arch/sparc/kernel/psycho_common.c
index 7909964..f6193bc 100644
--- a/arch/sparc/kernel/psycho_common.c
+++ b/arch/sparc/kernel/psycho_common.c
@@ -331,7 +331,7 @@ irqreturn_t psycho_pcierr_intr(int irq, void *dev_id)
 	       (afsr & PSYCHO_PCIAFSR_BMSK) >> 32UL,
 	       (afsr & PSYCHO_PCIAFSR_MID) >> 25UL,
 	       (afsr & PSYCHO_PCIAFSR_BLK) ? 1 : 0);
-	printk(KERN_ERR "%s: PCI AFAR [%016lx]\n", pbm->name, afar);
+	printk(KERN_ERR "%s: PCI AFAR [%016llx]\n", pbm->name, afar);
 	printk(KERN_ERR "%s: PCI Secondary errors [", pbm->name);
 	reported = 0;
 	if (afsr & PSYCHO_PCIAFSR_SMA) {
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
index bfe99d8..6aa3aa1 100644
--- a/arch/sparc/kernel/smp_64.c
+++ b/arch/sparc/kernel/smp_64.c
@@ -453,7 +453,7 @@ again:
 	__asm__ __volatile__("wrpr %0, 0x0, %%pstate"
 			     : : "r" (pstate));
 	if (stuck == 0) {
-		printk("CPU[%d]: mondo stuckage result[%016lx]\n",
+		printk("CPU[%d]: mondo stuckage result[%016llx]\n",
 		       smp_processor_id(), result);
 	} else {
 		udelay(2);
@@ -588,7 +588,7 @@ retry:
 			/* Busy bits will not clear, continue instead
 			 * of freezing up on this cpu.
 			 */
-			printk("CPU[%d]: mondo stuckage result[%016lx]\n",
+			printk("CPU[%d]: mondo stuckage result[%016llx]\n",
 			       smp_processor_id(), dispatch_stat);
 		} else {
 			int i, this_busy_nack = 0;
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c
index 141da37..22a1f63 100644
--- a/arch/sparc/kernel/time_64.c
+++ b/arch/sparc/kernel/time_64.c
@@ -106,7 +106,7 @@ static void tick_init_tick(void)
 	tick_disable_irq();
 }
 
-static unsigned long tick_get_tick(void)
+static unsigned long long tick_get_tick(void)
 {
 	unsigned long ret;
 
@@ -208,7 +208,7 @@ static void stick_init_tick(void)
 	stick_disable_irq();
 }
 
-static unsigned long stick_get_tick(void)
+static unsigned long long stick_get_tick(void)
 {
 	unsigned long ret;
 
@@ -352,7 +352,7 @@ static void hbtick_init_tick(void)
 	hbtick_disable_irq();
 }
 
-static unsigned long hbtick_get_tick(void)
+static unsigned long long hbtick_get_tick(void)
 {
 	return __hbird_read_stick() & ~TICK_PRIV_BIT;
 }
@@ -422,7 +422,7 @@ static int __devinit rtc_probe(struct of_device *op, const struct of_device_id *
 {
 	struct resource *r;
 
-	printk(KERN_INFO "%s: RTC regs at 0x%lx\n",
+	printk(KERN_INFO "%s: RTC regs at 0x%llx\n",
 	       op->node->full_name, op->resource[0].start);
 
 	/* The CMOS RTC driver only accepts IORESOURCE_IO, so cons
@@ -478,7 +478,7 @@ static struct platform_device rtc_bq4802_device = {
 static int __devinit bq4802_probe(struct of_device *op, const struct of_device_id *match)
 {
 
-	printk(KERN_INFO "%s: BQ4802 regs at 0x%lx\n",
+	printk(KERN_INFO "%s: BQ4802 regs at 0x%llx\n",
 	       op->node->full_name, op->resource[0].start);
 
 	rtc_bq4802_device.resource = &op->resource[0];
@@ -542,7 +542,7 @@ static int __devinit mostek_probe(struct of_device *op, const struct of_device_i
 	    strcmp(dp->parent->parent->name, "central") != 0)
 		return -ENODEV;
 
-	printk(KERN_INFO "%s: Mostek regs at 0x%lx\n",
+	printk(KERN_INFO "%s: Mostek regs at 0x%llx\n",
 	       dp->full_name, op->resource[0].start);
 
 	m48t59_rtc.resource = &op->resource[0];
diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
index 4638af2..bca3b4e 100644
--- a/arch/sparc/kernel/traps_64.c
+++ b/arch/sparc/kernel/traps_64.c
@@ -1168,20 +1168,20 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
 	}
 
 	/* Now dump the cache snapshots. */
-	printk("%s" "ERROR(%d): D-cache idx[%x] tag[%016lx] utag[%016lx] stag[%016lx]\n",
+	printk("%s" "ERROR(%d): D-cache idx[%x] tag[%016llx] utag[%016llx] stag[%016llx]\n",
 	       (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
 	       (int) info->dcache_index,
 	       info->dcache_tag,
 	       info->dcache_utag,
 	       info->dcache_stag);
-	printk("%s" "ERROR(%d): D-cache data0[%016lx] data1[%016lx] data2[%016lx] data3[%016lx]\n",
+	printk("%s" "ERROR(%d): D-cache data0[%016llx] data1[%016llx] data2[%016llx] data3[%016llx]\n",
 	       (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
 	       info->dcache_data[0],
 	       info->dcache_data[1],
 	       info->dcache_data[2],
 	       info->dcache_data[3]);
-	printk("%s" "ERROR(%d): I-cache idx[%x] tag[%016lx] utag[%016lx] stag[%016lx] "
-	       "u[%016lx] l[%016lx]\n",
+	printk("%s" "ERROR(%d): I-cache idx[%x] tag[%016llx] utag[%016llx] stag[%016llx] "
+	       "u[%016llx] l[%016llx]\n",
 	       (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
 	       (int) info->icache_index,
 	       info->icache_tag,
@@ -1189,22 +1189,22 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
 	       info->icache_stag,
 	       info->icache_upper,
 	       info->icache_lower);
-	printk("%s" "ERROR(%d): I-cache INSN0[%016lx] INSN1[%016lx] INSN2[%016lx] INSN3[%016lx]\n",
+	printk("%s" "ERROR(%d): I-cache INSN0[%016llx] INSN1[%016llx] INSN2[%016llx] INSN3[%016llx]\n",
 	       (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
 	       info->icache_data[0],
 	       info->icache_data[1],
 	       info->icache_data[2],
 	       info->icache_data[3]);
-	printk("%s" "ERROR(%d): I-cache INSN4[%016lx] INSN5[%016lx] INSN6[%016lx] INSN7[%016lx]\n",
+	printk("%s" "ERROR(%d): I-cache INSN4[%016llx] INSN5[%016llx] INSN6[%016llx] INSN7[%016llx]\n",
 	       (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
 	       info->icache_data[4],
 	       info->icache_data[5],
 	       info->icache_data[6],
 	       info->icache_data[7]);
-	printk("%s" "ERROR(%d): E-cache idx[%x] tag[%016lx]\n",
+	printk("%s" "ERROR(%d): E-cache idx[%x] tag[%016llx]\n",
 	       (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
 	       (int) info->ecache_index, info->ecache_tag);
-	printk("%s" "ERROR(%d): E-cache data0[%016lx] data1[%016lx] data2[%016lx] data3[%016lx]\n",
+	printk("%s" "ERROR(%d): E-cache data0[%016llx] data1[%016llx] data2[%016llx] data3[%016llx]\n",
 	       (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
 	       info->ecache_data[0],
 	       info->ecache_data[1],
@@ -1794,7 +1794,7 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
 	int cnt;
 
 	printk("%s: Reporting on cpu %d\n", pfx, cpu);
-	printk("%s: err_handle[%lx] err_stick[%lx] err_type[%08x:%s]\n",
+	printk("%s: err_handle[%llx] err_stick[%llx] err_type[%08x:%s]\n",
 	       pfx,
 	       ent->err_handle, ent->err_stick,
 	       ent->err_type,
@@ -1818,7 +1818,7 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
 		"privileged" : ""),
 	       ((ent->err_attrs & SUN4V_ERR_ATTRS_RES_QUEUE_FULL) ?
 		"queue-full" : ""));
-	printk("%s: err_raddr[%016lx] err_size[%u] err_cpu[%u]\n",
+	printk("%s: err_raddr[%016llx] err_size[%u] err_cpu[%u]\n",
 	       pfx,
 	       ent->err_raddr, ent->err_size, ent->err_cpu);
 
diff --git a/arch/sparc/kernel/vio.c b/arch/sparc/kernel/vio.c
index 92b1f8e..753d128 100644
--- a/arch/sparc/kernel/vio.c
+++ b/arch/sparc/kernel/vio.c
@@ -263,10 +263,10 @@ static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp,
 		dev_set_name(&vdev->dev, "%s", bus_id_name);
 		vdev->dev_no = ~(u64)0;
 	} else if (!cfg_handle) {
-		dev_set_name(&vdev->dev, "%s-%lu", bus_id_name, *id);
+		dev_set_name(&vdev->dev, "%s-%llu", bus_id_name, *id);
 		vdev->dev_no = *id;
 	} else {
-		dev_set_name(&vdev->dev, "%s-%lu-%lu", bus_id_name,
+		dev_set_name(&vdev->dev, "%s-%llu-%llu", bus_id_name,
 			     *cfg_handle, *id);
 		vdev->dev_no = *cfg_handle;
 	}
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 6ea73da..be157a7 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -769,8 +769,8 @@ static int find_node(unsigned long addr)
 	return -1;
 }
 
-static unsigned long nid_range(unsigned long start, unsigned long end,
-			       int *nid)
+static unsigned long long nid_range(unsigned long long start,
+				    unsigned long long end, int *nid)
 {
 	*nid = find_node(start);
 	start += PAGE_SIZE;
@@ -788,8 +788,8 @@ static unsigned long nid_range(unsigned long start, unsigned long end,
 	return start;
 }
 #else
-static unsigned long nid_range(unsigned long start, unsigned long end,
-			       int *nid)
+static unsigned long long nid_range(unsigned long long start,
+				    unsigned long long end, int *nid)
 {
 	*nid = 0;
 	return end;
@@ -1016,8 +1016,8 @@ static int __init grab_mlgroups(struct mdesc_handle *md)
 		val = mdesc_get_property(md, node, "address-mask", NULL);
 		m->mask = *val;
 
-		numadbg("MLGROUP[%d]: node[%lx] latency[%lx] "
-			"match[%lx] mask[%lx]\n",
+		numadbg("MLGROUP[%d]: node[%llx] latency[%llx] "
+			"match[%llx] mask[%llx]\n",
 			count - 1, m->node, m->latency, m->match, m->mask);
 	}
 
@@ -1056,7 +1056,7 @@ static int __init grab_mblocks(struct mdesc_handle *md)
 					 "address-congruence-offset", NULL);
 		m->offset = *val;
 
-		numadbg("MBLOCK[%d]: base[%lx] size[%lx] offset[%lx]\n",
+		numadbg("MBLOCK[%d]: base[%llx] size[%llx] offset[%llx]\n",
 			count - 1, m->base, m->size, m->offset);
 	}
 
@@ -1127,7 +1127,7 @@ static int __init numa_attach_mlgroup(struct mdesc_handle *md, u64 grp,
 	n->mask = candidate->mask;
 	n->val = candidate->match;
 
-	numadbg("NUMA NODE[%d]: mask[%lx] val[%lx] (latency[%lx])\n",
+	numadbg("NUMA NODE[%d]: mask[%lx] val[%lx] (latency[%llx])\n",
 		index, n->mask, n->val, candidate->latency);
 
 	return 0;
-- 
1.6.0.2.GIT

^ permalink raw reply related

* Re: linux-next: usb tree build failure
From: Inaky Perez-Gonzalez @ 2008-12-23 10:26 UTC (permalink / raw)
  To: Greg KH; +Cc: Sam Ravnborg, Stephen Rothwell, linux-next
In-Reply-To: <20081223043139.GG1928@kroah.com>

On Monday 22 December 2008, Greg KH wrote:
> On Mon, Dec 22, 2008 at 09:26:43AM -0800, Inaky Perez-Gonzalez wrote:
> > On Sunday 21 December 2008, Sam Ravnborg wrote:
> >
> > ops -- ok, I will. I guess I have to add this in all the similar ones,
> > right?
> >
> > Greg, do you want a new patch series or just another patch on top?
>
> Just a single replacement patch for when we add this makefile is fine
> with me.

Hmmm, there was more feedback Sam gave me on Kconfig and Makefiles I added,
so at the end the patch touches more files than just this one. Maybe a whole
new series will be the way to go.

-- 
Inaky

^ permalink raw reply


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