Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c30bb2a2 authored by KAMEZAWA Hiroyuki's avatar KAMEZAWA Hiroyuki Committed by Linus Torvalds
Browse files

kcore: add kclist types



Presently, kclist_add() only eats start address and size as its arguments.
Considering to make kclist dynamically reconfigulable, it's necessary to
know which kclists are for System RAM and which are not.

This patch add kclist types as
  KCORE_RAM
  KCORE_VMALLOC
  KCORE_TEXT
  KCORE_OTHER

This "type" is used in a patch following this for detecting KCORE_RAM.

Signed-off-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 2ef43ec7
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -639,9 +639,10 @@ mem_init (void)


	high_memory = __va(max_low_pfn * PAGE_SIZE);
	high_memory = __va(max_low_pfn * PAGE_SIZE);


	kclist_add(&kcore_mem, __va(0), max_low_pfn * PAGE_SIZE);
	kclist_add(&kcore_mem, __va(0), max_low_pfn * PAGE_SIZE, KCORE_RAM);
	kclist_add(&kcore_vmem, (void *)VMALLOC_START, VMALLOC_END-VMALLOC_START);
	kclist_add(&kcore_vmem, (void *)VMALLOC_START,
	kclist_add(&kcore_kernel, _stext, _end - _stext);
			VMALLOC_END-VMALLOC_START, KCORE_VMALLOC);
	kclist_add(&kcore_kernel, _stext, _end - _stext, KCORE_TEXT);


	for_each_online_pgdat(pgdat)
	for_each_online_pgdat(pgdat)
		if (pgdat->bdata->node_bootmem_map)
		if (pgdat->bdata->node_bootmem_map)
+4 −3
Original line number Original line Diff line number Diff line
@@ -409,11 +409,12 @@ void __init mem_init(void)
	if ((unsigned long) &_text > (unsigned long) CKSEG0)
	if ((unsigned long) &_text > (unsigned long) CKSEG0)
		/* The -4 is a hack so that user tools don't have to handle
		/* The -4 is a hack so that user tools don't have to handle
		   the overflow.  */
		   the overflow.  */
		kclist_add(&kcore_kseg0, (void *) CKSEG0, 0x80000000 - 4);
		kclist_add(&kcore_kseg0, (void *) CKSEG0,
				0x80000000 - 4, KCORE_TEXT);
#endif
#endif
	kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT);
	kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM);
	kclist_add(&kcore_vmalloc, (void *)VMALLOC_START,
	kclist_add(&kcore_vmalloc, (void *)VMALLOC_START,
		   VMALLOC_END-VMALLOC_START);
		   VMALLOC_END-VMALLOC_START, KCORE_VMALLOC);


	printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, "
	printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, "
	       "%ldk reserved, %ldk data, %ldk init, %ldk highmem)\n",
	       "%ldk reserved, %ldk data, %ldk init, %ldk highmem)\n",
+2 −2
Original line number Original line Diff line number Diff line
@@ -268,11 +268,11 @@ static int __init setup_kcore(void)
						size);
						size);
		}
		}


		kclist_add(kcore_mem, __va(base), size);
		kclist_add(kcore_mem, __va(base), size, KCORE_RAM);
	}
	}


	kclist_add(&kcore_vmem, (void *)VMALLOC_START,
	kclist_add(&kcore_vmem, (void *)VMALLOC_START,
		VMALLOC_END-VMALLOC_START);
		VMALLOC_END-VMALLOC_START, KCORE_VMALLOC);


	return 0;
	return 0;
}
}
+3 −2
Original line number Original line Diff line number Diff line
@@ -128,10 +128,11 @@ static int __init setup_kcore(void)
		if (!kcore_mem)
		if (!kcore_mem)
			panic("%s: kmalloc failed\n", __func__);
			panic("%s: kmalloc failed\n", __func__);


		kclist_add(kcore_mem, __va(base), size);
		kclist_add(kcore_mem, __va(base), size, KCORE_RAM);
	}
	}


	kclist_add(&kcore_vmem, (void *)VMALLOC_START, VMALLOC_END-VMALLOC_START);
	kclist_add(&kcore_vmem, (void *)VMALLOC_START,
		VMALLOC_END-VMALLOC_START, KCORE_VMALLOC);


	return 0;
	return 0;
}
}
+2 −2
Original line number Original line Diff line number Diff line
@@ -226,9 +226,9 @@ void __init mem_init(void)
	datasize =  (unsigned long) &_edata - (unsigned long) &_etext;
	datasize =  (unsigned long) &_edata - (unsigned long) &_etext;
	initsize =  (unsigned long) &__init_end - (unsigned long) &__init_begin;
	initsize =  (unsigned long) &__init_end - (unsigned long) &__init_begin;


	kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT);
	kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM);
	kclist_add(&kcore_vmalloc, (void *)VMALLOC_START,
	kclist_add(&kcore_vmalloc, (void *)VMALLOC_START,
		   VMALLOC_END - VMALLOC_START);
		   VMALLOC_END - VMALLOC_START, KCORE_VMALLOC);


	printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, "
	printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, "
	       "%dk data, %dk init)\n",
	       "%dk data, %dk init)\n",
Loading