All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] FLATMEM: allow memory to start at pfn != 0
@ 2006-12-06 15:48 Franck Bui-Huu
  2006-12-06 15:48 ` [PATCH 1/3] paging_init(): use highend_pfn/highstart_pfn Franck Bui-Huu
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Franck Bui-Huu @ 2006-12-06 15:48 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips

This patchset relaxes this constraint. Basically you just need to
define in your platform code (include/asm-mips/mach-foo/spaces.h
probably) PHYS_OFFSET that corresponds to the start of your
physical memory and you're done.

The first patch is just a fix for HIGHMEM, I just found it while
writing this patchset. I haven't done any tests though, I have
no hardwares to play with.

The second and third patchs are the real meat. There are 2 points
that I'm not really sure:

	- PHYS_OFFSET is defined in page.h, I'm not sure if it's
	the right place though.

	- ARCH_PFN_OFFSET is always defined whatever the memory
	model. I don't think it will hurt since physical memory
	always has a starting point in all cases.



Please consider.

		Franck
---

 arch/mips/kernel/setup.c |   30 ++++++++++++++++++++++--------
 arch/mips/mm/init.c      |   30 +++++++++++++-----------------
 include/asm-mips/dma.h   |    1 +
 include/asm-mips/io.h    |    4 ++--
 include/asm-mips/page.h  |   25 +++++++++++++++++++++----
 5 files changed, 59 insertions(+), 31 deletions(-)

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

* [PATCH 1/3] paging_init(): use highend_pfn/highstart_pfn
  2006-12-06 15:48 [RFC] FLATMEM: allow memory to start at pfn != 0 Franck Bui-Huu
@ 2006-12-06 15:48 ` Franck Bui-Huu
  2006-12-06 15:48 ` [PATCH 2/3] Setup min_low_pfn/max_low_pfn correctly Franck Bui-Huu
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Franck Bui-Huu @ 2006-12-06 15:48 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips, Franck Bui-Huu

From: Franck Bui-Huu <fbuihuu@gmail.com>

This patch makes paging_init() use highend_pfn/highstart_pfn globals.

It removes the need of 'high' local which was needed only by
HIGHMEM config.

More important perhaps, it fixes a bug when HIGHMEM is set
but there's actually no physical highmem (highend_pfn = 0)

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 arch/mips/mm/init.c |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 1db991d..30245c0 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -341,7 +341,7 @@ static int __init page_is_ram(unsigned l
 void __init paging_init(void)
 {
 	unsigned long zones_size[MAX_NR_ZONES] = { 0, };
-	unsigned long max_dma, high, low;
+	unsigned long max_dma, low;
 #ifndef CONFIG_FLATMEM
 	unsigned long zholes_size[MAX_NR_ZONES] = { 0, };
 	unsigned long i, j, pfn;
@@ -356,7 +356,6 @@ void __init paging_init(void)
 
 	max_dma = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT;
 	low = max_low_pfn;
-	high = highend_pfn;
 
 #ifdef CONFIG_ISA
 	if (low < max_dma)
@@ -369,13 +368,13 @@ void __init paging_init(void)
 	zones_size[ZONE_DMA] = low;
 #endif
 #ifdef CONFIG_HIGHMEM
-	if (cpu_has_dc_aliases) {
-		printk(KERN_WARNING "This processor doesn't support highmem.");
-		if (high - low)
-			printk(" %ldk highmem ignored", high - low);
-		printk("\n");
-	} else
-		zones_size[ZONE_HIGHMEM] = high - low;
+	zones_size[ZONE_HIGHMEM] = highend_pfn - highstart_pfn;
+
+	if (cpu_has_dc_aliases && zones_size[ZONE_HIGHMEM]) {
+		printk(KERN_WARNING "This processor doesn't support highmem."
+		       " %ldk highmem ignored\n", zones_size[ZONE_HIGHMEM]);
+		zones_size[ZONE_HIGHMEM] = 0;
+	}
 #endif
 
 #ifdef CONFIG_FLATMEM
-- 
1.4.4.1

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

* [PATCH 2/3] Setup min_low_pfn/max_low_pfn correctly
  2006-12-06 15:48 [RFC] FLATMEM: allow memory to start at pfn != 0 Franck Bui-Huu
  2006-12-06 15:48 ` [PATCH 1/3] paging_init(): use highend_pfn/highstart_pfn Franck Bui-Huu
@ 2006-12-06 15:48 ` Franck Bui-Huu
  2006-12-11 18:16   ` Ralf Baechle
  2006-12-06 15:48 ` [PATCH 3/3] FLATMEM: allow memory to start at pfn != 0 Franck Bui-Huu
  2006-12-11 18:46 ` [RFC] " Ralf Baechle
  3 siblings, 1 reply; 9+ messages in thread
From: Franck Bui-Huu @ 2006-12-06 15:48 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips, Franck Bui-Huu

From: Franck Bui-Huu <fbuihuu@gmail.com>

The old code was assuming that min_low_pfn was always 0. This
means that we can't handle platforms with a big hole at start
of memory since mem_map[] size would blew up.

This patch does not relax this constraint but it's a first
step to achieve that.

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 arch/mips/kernel/setup.c |   27 +++++++++++++++++++--------
 arch/mips/mm/init.c      |   15 ++++++---------
 include/asm-mips/dma.h   |    1 +
 3 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 89440a0..8e58d7f 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -271,7 +271,6 @@ static void __init bootmem_init(void)
 static void __init bootmem_init(void)
 {
 	unsigned long reserved_end;
-	unsigned long highest = 0;
 	unsigned long mapstart = -1UL;
 	unsigned long bootmap_size;
 	int i;
@@ -284,6 +283,13 @@ static void __init bootmem_init(void)
 	reserved_end = max(init_initrd(), PFN_UP(__pa_symbol(&_end)));
 
 	/*
+	 * max_low_pfn is not a number of pages. The number of pages
+	 * of the system is given by 'max_low_pfn - min_low_pfn'.
+	 */
+	min_low_pfn = -1UL;
+	max_low_pfn = 0;
+
+	/*
 	 * Find the highest page frame number we have available.
 	 */
 	for (i = 0; i < boot_mem_map.nr_map; i++) {
@@ -296,8 +302,10 @@ static void __init bootmem_init(void)
 		end = PFN_DOWN(boot_mem_map.map[i].addr
 				+ boot_mem_map.map[i].size);
 
-		if (end > highest)
-			highest = end;
+		if (end > max_low_pfn)
+			max_low_pfn = end;
+		if (start < min_low_pfn)
+			min_low_pfn = start;
 		if (end <= reserved_end)
 			continue;
 		if (start >= mapstart)
@@ -305,22 +313,25 @@ static void __init bootmem_init(void)
 		mapstart = max(reserved_end, start);
 	}
 
+	if (min_low_pfn >= max_low_pfn)
+		panic("Boggus memory mapping !!!");
+
 	/*
 	 * Determine low and high memory ranges
 	 */
-	if (highest > PFN_DOWN(HIGHMEM_START)) {
+	if (max_low_pfn > PFN_DOWN(HIGHMEM_START)) {
 #ifdef CONFIG_HIGHMEM
 		highstart_pfn = PFN_DOWN(HIGHMEM_START);
-		highend_pfn = highest;
+		highend_pfn = max_low_pfn;
 #endif
-		highest = PFN_DOWN(HIGHMEM_START);
+		max_low_pfn = PFN_DOWN(HIGHMEM_START);
 	}
 
 	/*
 	 * Initialize the boot-time allocator with low memory only.
 	 */
-	bootmap_size = init_bootmem(mapstart, highest);
-
+	bootmap_size = init_bootmem_node(NODE_DATA(0), mapstart,
+					 min_low_pfn, max_low_pfn);
 	/*
 	 * Register fully available low RAM pages with the bootmem allocator.
 	 */
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 30245c0..e78a1b1 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -341,7 +341,6 @@ static int __init page_is_ram(unsigned l
 void __init paging_init(void)
 {
 	unsigned long zones_size[MAX_NR_ZONES] = { 0, };
-	unsigned long max_dma, low;
 #ifndef CONFIG_FLATMEM
 	unsigned long zholes_size[MAX_NR_ZONES] = { 0, };
 	unsigned long i, j, pfn;
@@ -354,18 +353,16 @@ void __init paging_init(void)
 #endif
 	kmap_coherent_init();
 
-	max_dma = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT;
-	low = max_low_pfn;
-
 #ifdef CONFIG_ISA
-	if (low < max_dma)
-		zones_size[ZONE_DMA] = low;
+	if (max_low_pfn < MAX_DMA_PFN)
+		zones_size[ZONE_DMA] = max_low_pfn;
 	else {
-		zones_size[ZONE_DMA] = max_dma;
-		zones_size[ZONE_NORMAL] = low - max_dma;
+		unsigned long start_normal_zone = max(min_low_pfn, MAX_DMA_PFN);
+		zones_size[ZONE_DMA] = MAX_DMA_PFN;
+		zones_size[ZONE_NORMAL] = max_low_pfn - start_normal_zone;
 	}
 #else
-	zones_size[ZONE_DMA] = low;
+	zones_size[ZONE_DMA] = max_low_pfn - min_low_pfn;
 #endif
 #ifdef CONFIG_HIGHMEM
 	zones_size[ZONE_HIGHMEM] = highend_pfn - highstart_pfn;
diff --git a/include/asm-mips/dma.h b/include/asm-mips/dma.h
index 23f789c..e06ef07 100644
--- a/include/asm-mips/dma.h
+++ b/include/asm-mips/dma.h
@@ -91,6 +91,7 @@
 #else
 #define MAX_DMA_ADDRESS		(PAGE_OFFSET + 0x01000000)
 #endif
+#define MAX_DMA_PFN		PFN_DOWN(virt_to_phys((void *)MAX_DMA_ADDRESS))
 
 /* 8237 DMA controllers */
 #define IO_DMA1_BASE	0x00	/* 8 bit slave DMA, channels 0..3 */
-- 
1.4.4.1

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

* [PATCH 3/3] FLATMEM: allow memory to start at pfn != 0
  2006-12-06 15:48 [RFC] FLATMEM: allow memory to start at pfn != 0 Franck Bui-Huu
  2006-12-06 15:48 ` [PATCH 1/3] paging_init(): use highend_pfn/highstart_pfn Franck Bui-Huu
  2006-12-06 15:48 ` [PATCH 2/3] Setup min_low_pfn/max_low_pfn correctly Franck Bui-Huu
@ 2006-12-06 15:48 ` Franck Bui-Huu
  2006-12-11 18:46 ` [RFC] " Ralf Baechle
  3 siblings, 0 replies; 9+ messages in thread
From: Franck Bui-Huu @ 2006-12-06 15:48 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips, Franck Bui-Huu

From: Franck Bui-Huu <fbuihuu@gmail.com>

This patch introduces PHYS_OFFSET define which is the start of the
physical memory and uses it wherever needed. Specially when converting
physical/virtual addresses into virtual/physical ones.

Currently all platforms defines PHYS_OFFSET to 0.

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 arch/mips/kernel/setup.c |    3 +++
 include/asm-mips/io.h    |    4 ++--
 include/asm-mips/page.h  |   25 +++++++++++++++++++++----
 3 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 8e58d7f..46312c2 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -315,6 +315,9 @@ static void __init bootmem_init(void)
 
 	if (min_low_pfn >= max_low_pfn)
 		panic("Boggus memory mapping !!!");
+	if (min_low_pfn != ARCH_PFN_OFFSET)
+		panic("PHYS_OFFSET(%lx) and your mem start(%lx) don't match",
+		      PHYS_OFFSET, PFN_PHYS(min_low_pfn));
 
 	/*
 	 * Determine low and high memory ranges
diff --git a/include/asm-mips/io.h b/include/asm-mips/io.h
index 38d1399..e1592af 100644
--- a/include/asm-mips/io.h
+++ b/include/asm-mips/io.h
@@ -115,7 +115,7 @@ static inline void set_io_port_base(unsi
  */
 static inline unsigned long virt_to_phys(volatile const void *address)
 {
-	return (unsigned long)address - PAGE_OFFSET;
+	return (unsigned long)address - PAGE_OFFSET + PHYS_OFFSET;
 }
 
 /*
@@ -132,7 +132,7 @@ static inline unsigned long virt_to_phys
  */
 static inline void * phys_to_virt(unsigned long address)
 {
-	return (void *)(address + PAGE_OFFSET);
+	return (void *)(address + PAGE_OFFSET - PHYS_OFFSET);
 }
 
 /*
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h
index 5c4284b..6894dc2 100644
--- a/include/asm-mips/page.h
+++ b/include/asm-mips/page.h
@@ -34,6 +34,20 @@
 
 #ifndef __ASSEMBLY__
 
+/*
+ * This gives the physical RAM offset.
+ */
+#ifndef PHYS_OFFSET
+#define PHYS_OFFSET		0UL
+#endif
+
+/*
+ * It's normally defined only for FLATMEM config but it's
+ * used in our early mem init code for all memory models.
+ * So always define it.
+ */
+#define ARCH_PFN_OFFSET		PFN_UP(PHYS_OFFSET)
+
 #include <linux/pfn.h>
 #include <asm/cpu-features.h>
 #include <asm/io.h>
@@ -133,20 +147,23 @@ typedef struct { unsigned long pgprot; }
 /* to align the pointer to the (next) page boundary */
 #define PAGE_ALIGN(addr)	(((addr) + PAGE_SIZE - 1) & PAGE_MASK)
 
+/*
+ * __pa()/__va() should be used only during mem init.
+ */
 #if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64)
 #define __pa_page_offset(x)	((unsigned long)(x) < CKSEG0 ? PAGE_OFFSET : CKSEG0)
 #else
 #define __pa_page_offset(x)	PAGE_OFFSET
 #endif
-#define __pa(x)			((unsigned long)(x) - __pa_page_offset(x))
-#define __pa_symbol(x)		__pa(RELOC_HIDE((unsigned long)(x),0))
-#define __va(x)			((void *)((unsigned long)(x) + PAGE_OFFSET))
+#define __pa(x)		((unsigned long)(x) - __pa_page_offset(x) + PHYS_OFFSET)
+#define __va(x)		((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET))
+#define __pa_symbol(x)	__pa(RELOC_HIDE((unsigned long)(x),0))
 
 #define pfn_to_kaddr(pfn)	__va((pfn) << PAGE_SHIFT)
 
 #ifdef CONFIG_FLATMEM
 
-#define pfn_valid(pfn)		((pfn) < max_mapnr)
+#define pfn_valid(pfn)		((pfn) >= ARCH_PFN_OFFSET && (pfn) < max_mapnr)
 
 #elif defined(CONFIG_SPARSEMEM)
 
-- 
1.4.4.1

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

* Re: [PATCH 2/3] Setup min_low_pfn/max_low_pfn correctly
  2006-12-06 15:48 ` [PATCH 2/3] Setup min_low_pfn/max_low_pfn correctly Franck Bui-Huu
@ 2006-12-11 18:16   ` Ralf Baechle
  2006-12-12  9:14     ` Franck Bui-Huu
  0 siblings, 1 reply; 9+ messages in thread
From: Ralf Baechle @ 2006-12-11 18:16 UTC (permalink / raw)
  To: Franck Bui-Huu; +Cc: linux-mips, Franck Bui-Huu

On Wed, Dec 06, 2006 at 04:48:29PM +0100, Franck Bui-Huu wrote:

> The old code was assuming that min_low_pfn was always 0. This
> means that we can't handle platforms with a big hole at start
> of memory since mem_map[] size would blew up.

It was - and IP22 was paying a high price for that.  It's currently 1MB
on 32-bit and 1.75MB on 64-bit kernels - but used to be much higher in
the past.

Btw, I think you're confusing the terms here; your patch description reads
wrong while the patch looks fine.  PFN is page frame number, not physical
frame number.  To avoid wasting dead mem_map[] entries idealy the pfn for
the first allocatable page should be zero.
So ignoring NUMA and discontig memory for a moment (those make everything
more complicated ...) PFN 0 is the first entry in mem_map[] - which usually
but not necessarily is physical address 0x0.

> This patch does not relax this constraint but it's a first
> step to achieve that.

> diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
> index 89440a0..8e58d7f 100644
> --- a/arch/mips/kernel/setup.c
> +++ b/arch/mips/kernel/setup.c
> @@ -271,7 +271,6 @@ static void __init bootmem_init(void)
>  static void __init bootmem_init(void)
>  {
>  	unsigned long reserved_end;
> -	unsigned long highest = 0;
>  	unsigned long mapstart = -1UL;

Assigning a negative number to an unsigned long variable ...

>  	unsigned long bootmap_size;
>  	int i;
> @@ -284,6 +283,13 @@ static void __init bootmem_init(void)
>  	reserved_end = max(init_initrd(), PFN_UP(__pa_symbol(&_end)));
>  
>  	/*
> +	 * max_low_pfn is not a number of pages. The number of pages
> +	 * of the system is given by 'max_low_pfn - min_low_pfn'.
> +	 */
> +	min_low_pfn = -1UL;

Assigning a negative number to an unsigned long variable ...

  Ralf

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

* Re: [RFC] FLATMEM: allow memory to start at pfn != 0
  2006-12-06 15:48 [RFC] FLATMEM: allow memory to start at pfn != 0 Franck Bui-Huu
                   ` (2 preceding siblings ...)
  2006-12-06 15:48 ` [PATCH 3/3] FLATMEM: allow memory to start at pfn != 0 Franck Bui-Huu
@ 2006-12-11 18:46 ` Ralf Baechle
  2006-12-12  8:55   ` Franck Bui-Huu
  2006-12-16 11:17   ` Franck Bui-Huu
  3 siblings, 2 replies; 9+ messages in thread
From: Ralf Baechle @ 2006-12-11 18:46 UTC (permalink / raw)
  To: Franck Bui-Huu; +Cc: linux-mips

On Wed, Dec 06, 2006 at 04:48:27PM +0100, Franck Bui-Huu wrote:

I just tested this on a Malta.  So patch 2/3 makes Malta die pretty
spectacularly, so I'm going to remve patches 2/3 and 3/3 again from my
tree.

Btw, there's spelling mistake in 2/3:

+               panic("Boggus memory mapping !!!");

  Ralf

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

* Re: [RFC] FLATMEM: allow memory to start at pfn != 0
  2006-12-11 18:46 ` [RFC] " Ralf Baechle
@ 2006-12-12  8:55   ` Franck Bui-Huu
  2006-12-16 11:17   ` Franck Bui-Huu
  1 sibling, 0 replies; 9+ messages in thread
From: Franck Bui-Huu @ 2006-12-12  8:55 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux-mips

Hi Ralf,

On 12/11/06, Ralf Baechle <ralf@linux-mips.org> wrote:
> On Wed, Dec 06, 2006 at 04:48:27PM +0100, Franck Bui-Huu wrote:
>
> I just tested this on a Malta.  So patch 2/3 makes Malta die pretty
> spectacularly, so I'm going to remve patches 2/3 and 3/3 again from my
> tree.
>

Thanks for your review ! Could you give me some info about your config
to help me to find out the issue ? For example what's your value of
PHYS_OFFSET ? your memory mapping ?

> Btw, there's spelling mistake in 2/3:
>
> +               panic("Boggus memory mapping !!!");

I'll fix it by "Incorrect memory mapping !!!"

thanks
-- 
               Franck

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

* Re: [PATCH 2/3] Setup min_low_pfn/max_low_pfn correctly
  2006-12-11 18:16   ` Ralf Baechle
@ 2006-12-12  9:14     ` Franck Bui-Huu
  0 siblings, 0 replies; 9+ messages in thread
From: Franck Bui-Huu @ 2006-12-12  9:14 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux-mips, Franck Bui-Huu

On 12/11/06, Ralf Baechle <ralf@linux-mips.org> wrote:
> On Wed, Dec 06, 2006 at 04:48:29PM +0100, Franck Bui-Huu wrote:
>
> > The old code was assuming that min_low_pfn was always 0. This
> > means that we can't handle platforms with a big hole at start
> > of memory since mem_map[] size would blew up.
>
> It was - and IP22 was paying a high price for that.  It's currently 1MB
> on 32-bit and 1.75MB on 64-bit kernels - but used to be much higher in
> the past.
>
> Btw, I think you're confusing the terms here; your patch description reads
> wrong while the patch looks fine.  PFN is page frame number, not physical
> frame number.  To avoid wasting dead mem_map[] entries idealy the pfn for
> the first allocatable page should be zero.
> So ignoring NUMA and discontig memory for a moment (those make everything
> more complicated ...) PFN 0 is the first entry in mem_map[] - which usually
> but not necessarily is physical address 0x0.
>

well if you look at the generic definition of pfn_to_page(), you find:

        #define __pfn_to_page(pfn)      (mem_map + ((pfn) - ARCH_PFN_OFFSET))

With the current implementation, PFN 0 is something that does not
exist. PFN ARCH_PFN_OFFSET is the first entry in mem_map[]...

I think I'm missing your point....

> > This patch does not relax this constraint but it's a first
> > step to achieve that.
>
> > diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
> > index 89440a0..8e58d7f 100644
> > --- a/arch/mips/kernel/setup.c
> > +++ b/arch/mips/kernel/setup.c
> > @@ -271,7 +271,6 @@ static void __init bootmem_init(void)
> >  static void __init bootmem_init(void)
> >  {
> >       unsigned long reserved_end;
> > -     unsigned long highest = 0;
> >       unsigned long mapstart = -1UL;
>
> Assigning a negative number to an unsigned long variable ...
>

Well, it's a convenient way to set mapstart to 0xffffffff on both
32bits and 64bits kernels as you guessed. I think it's quite readable
thanks to the 'UL' suffix. But I'll change the whole line with:

        unsigned long mapstart = ~(0UL);

> >       unsigned long bootmap_size;
> >       int i;
> > @@ -284,6 +283,13 @@ static void __init bootmem_init(void)
> >       reserved_end = max(init_initrd(), PFN_UP(__pa_symbol(&_end)));
> >
> >       /*
> > +      * max_low_pfn is not a number of pages. The number of pages
> > +      * of the system is given by 'max_low_pfn - min_low_pfn'.
> > +      */
> > +     min_low_pfn = -1UL;
>
> Assigning a negative number to an unsigned long variable ...

ditto

thanks
-- 
               Franck

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

* Re: [RFC] FLATMEM: allow memory to start at pfn != 0
  2006-12-11 18:46 ` [RFC] " Ralf Baechle
  2006-12-12  8:55   ` Franck Bui-Huu
@ 2006-12-16 11:17   ` Franck Bui-Huu
  1 sibling, 0 replies; 9+ messages in thread
From: Franck Bui-Huu @ 2006-12-16 11:17 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux-mips

On 12/11/06, Ralf Baechle <ralf@linux-mips.org> wrote:
> On Wed, Dec 06, 2006 at 04:48:27PM +0100, Franck Bui-Huu wrote:
>
> I just tested this on a Malta.  So patch 2/3 makes Malta die pretty
> spectacularly, so I'm going to remve patches 2/3 and 3/3 again from my
> tree.
>

When you'll have time, could you test only patch 2/3. It's only a
clean up patch, which eases integration of patch 3/3 ? This clean up
should improve current code even if you don't merge patch 3/3. And
more importantly,  knowing that patch 2/3 woks should help me to find
out what's wrong with your config.

Thanks
                Franck

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

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

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-06 15:48 [RFC] FLATMEM: allow memory to start at pfn != 0 Franck Bui-Huu
2006-12-06 15:48 ` [PATCH 1/3] paging_init(): use highend_pfn/highstart_pfn Franck Bui-Huu
2006-12-06 15:48 ` [PATCH 2/3] Setup min_low_pfn/max_low_pfn correctly Franck Bui-Huu
2006-12-11 18:16   ` Ralf Baechle
2006-12-12  9:14     ` Franck Bui-Huu
2006-12-06 15:48 ` [PATCH 3/3] FLATMEM: allow memory to start at pfn != 0 Franck Bui-Huu
2006-12-11 18:46 ` [RFC] " Ralf Baechle
2006-12-12  8:55   ` Franck Bui-Huu
2006-12-16 11:17   ` Franck Bui-Huu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.