public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [Patch] i386 bootioremap / kexec fix
@ 2006-09-22  2:54 keith mannthey
  2006-09-22  3:16 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: keith mannthey @ 2006-09-22  2:54 UTC (permalink / raw)
  To: lkml; +Cc: andrew, Vivek goyal, dave hansen


  With CONFIG_PHYSICAL_START set to a non default values the i386
boot_ioremap code calculated its pte index wrong and users of
boot_ioremap have their areas incorrectly mapped  (for me SRAT table not
mapped during early boot). This patch removes the addr < BOOT_PTE_PTRS
constraint. 

Signed-off-by: Keith Mannthey<kmannth@us.ibm.com>
---
 boot_ioremap.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff -urN linux-2.6.18-rc6-mm2-orig/arch/i386/mm/boot_ioremap.c
linux-2.6.17/arch/i386/mm/boot_ioremap.c
--- linux-2.6.18-rc6-mm2-orig/arch/i386/mm/boot_ioremap.c	2006-09-18
01:19:22.000000000 -0700
+++ linux-2.6.17/arch/i386/mm/boot_ioremap.c	2006-09-18
01:23:33.000000000 -0700
@@ -29,8 +29,11 @@
  */
 
 #define BOOT_PTE_PTRS (PTRS_PER_PTE*2)
-#define boot_pte_index(address) \
-	     (((address) >> PAGE_SHIFT) & (BOOT_PTE_PTRS - 1))
+
+static unsigned long boot_pte_index(unsigned long vaddr) 
+{
+	return __pa(vaddr) >> PAGE_SHIFT;
+}
 
 static inline boot_pte_t* boot_vaddr_to_pte(void *address)
 {



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

* Re: [Patch] i386 bootioremap / kexec fix
  2006-09-22  2:54 [Patch] i386 bootioremap / kexec fix keith mannthey
@ 2006-09-22  3:16 ` Andrew Morton
  2006-09-22 17:11   ` keith mannthey
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2006-09-22  3:16 UTC (permalink / raw)
  To: kmannth; +Cc: lkml, Vivek goyal, dave hansen

On Thu, 21 Sep 2006 19:54:45 -0700
keith mannthey <kmannth@us.ibm.com> wrote:

> 
>   With CONFIG_PHYSICAL_START set to a non default values the i386
> boot_ioremap code calculated its pte index wrong and users of
> boot_ioremap have their areas incorrectly mapped  (for me SRAT table not
> mapped during early boot). This patch removes the addr < BOOT_PTE_PTRS
> constraint. 
> 
> Signed-off-by: Keith Mannthey<kmannth@us.ibm.com>
> ---
>  boot_ioremap.c |    7 +++++--
>  1 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff -urN linux-2.6.18-rc6-mm2-orig/arch/i386/mm/boot_ioremap.c
> linux-2.6.17/arch/i386/mm/boot_ioremap.c
> --- linux-2.6.18-rc6-mm2-orig/arch/i386/mm/boot_ioremap.c	2006-09-18
> 01:19:22.000000000 -0700
> +++ linux-2.6.17/arch/i386/mm/boot_ioremap.c	2006-09-18
> 01:23:33.000000000 -0700
> @@ -29,8 +29,11 @@
>   */
>  
>  #define BOOT_PTE_PTRS (PTRS_PER_PTE*2)
> -#define boot_pte_index(address) \
> -	     (((address) >> PAGE_SHIFT) & (BOOT_PTE_PTRS - 1))
> +
> +static unsigned long boot_pte_index(unsigned long vaddr) 
> +{
> +	return __pa(vaddr) >> PAGE_SHIFT;
> +}
>  
>  static inline boot_pte_t* boot_vaddr_to_pte(void *address)
>  {

Thanks.  This patch is against 2.6.18-rc6-mm2, yes?  Does it fix a bug which
is only in -mm?  If so, do you know which patch introduced it?  Seems to me
that this is a 2.6.18 fix?

Is this the thing which was causing your NUMA machine to fail?  If so, does
2.6.18 boot OK now?

You have a bit of wordwrapping happening there btw.

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

* Re: [Patch] i386 bootioremap / kexec fix
  2006-09-22  3:16 ` Andrew Morton
@ 2006-09-22 17:11   ` keith mannthey
  0 siblings, 0 replies; 3+ messages in thread
From: keith mannthey @ 2006-09-22 17:11 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml, Vivek goyal, dave hansen

On Thu, 2006-09-21 at 20:16 -0700, Andrew Morton wrote:
> On Thu, 21 Sep 2006 19:54:45 -0700
> keith mannthey <kmannth@us.ibm.com> wrote:
> 
> > 
> >   With CONFIG_PHYSICAL_START set to a non default values the i386
> > boot_ioremap code calculated its pte index wrong and users of
> > boot_ioremap have their areas incorrectly mapped  (for me SRAT table not
> > mapped during early boot). This patch removes the addr < BOOT_PTE_PTRS
> > constraint. 
> > 
> > Signed-off-by: Keith Mannthey<kmannth@us.ibm.com>
> > ---
> >  boot_ioremap.c |    7 +++++--
> >  1 files changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff -urN linux-2.6.18-rc6-mm2-orig/arch/i386/mm/boot_ioremap.c
> > linux-2.6.17/arch/i386/mm/boot_ioremap.c
> > --- linux-2.6.18-rc6-mm2-orig/arch/i386/mm/boot_ioremap.c	2006-09-18
> > 01:19:22.000000000 -0700
> > +++ linux-2.6.17/arch/i386/mm/boot_ioremap.c	2006-09-18
> > 01:23:33.000000000 -0700
> > @@ -29,8 +29,11 @@
> >   */
> >  
> >  #define BOOT_PTE_PTRS (PTRS_PER_PTE*2)
> > -#define boot_pte_index(address) \
> > -	     (((address) >> PAGE_SHIFT) & (BOOT_PTE_PTRS - 1))
> > +
> > +static unsigned long boot_pte_index(unsigned long vaddr) 
> > +{
> > +	return __pa(vaddr) >> PAGE_SHIFT;
> > +}
> >  
> >  static inline boot_pte_t* boot_vaddr_to_pte(void *address)
> >  {
> 
> Thanks.  This patch is against 2.6.18-rc6-mm2, yes?  Does it fix a bug which
> is only in -mm?  If so, do you know which patch introduced it?  Seems to me
> that this is a 2.6.18 fix?

The patch was against 2.6.18-rc6-mm2 but the problem is a 2.6.1[678]
issue.  The problem has always been present but my great new config
(KDUMP Kernel starts 16mb) brought it to the surface. 

For a little more context about how the fix came to be see
http://lkml.org/lkml/2006/9/12/357

> 
> Is this the thing which was causing your NUMA machine to fail?  If so, does
> 2.6.18 boot OK now?
Yes boots better now.  With the SRAT discovered it can setup 2 nodes in the VM.  

> You have a bit of wordwrapping happening there btw.
Sorry about I will work to be more careful. 

Thanks,
  Keith 


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

end of thread, other threads:[~2006-09-22 17:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-22  2:54 [Patch] i386 bootioremap / kexec fix keith mannthey
2006-09-22  3:16 ` Andrew Morton
2006-09-22 17:11   ` keith mannthey

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