Re: 2.1.122-pre1 and pre2: boot logo no-go

Francis Devereux (f.devereux@cs.ucl.ac.uk)
Sat, 12 Sep 1998 20:10:33 +0100


This is a multi-part message in MIME format.
--------------895E19F3D75A8DDB61238478
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

The attached patch will bring back the boot logo. I'm not sure that
this is the right way to do things in the long run but it should work
for now.

Francis
--------------895E19F3D75A8DDB61238478
Content-Type: text/plain; charset=us-ascii; name="initmem_freed.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="initmem_freed.diff"

diff -ur linux-2.1.122-pre1.orig/arch/alpha/mm/init.c linux-2.1.122-pre1/arch/alpha/mm/init.c
--- linux-2.1.122-pre1.orig/arch/alpha/mm/init.c Thu Sep 10 22:22:16 1998
+++ linux-2.1.122-pre1/arch/alpha/mm/init.c Thu Sep 10 23:18:47 1998
@@ -323,6 +323,8 @@
return;
}

+int initmem_freed = 0;
+
void
free_initmem (void)
{
@@ -336,6 +338,7 @@
kill_page(addr);
free_page(addr);
}
+ initmem_freed = 1;
printk ("Freeing unused kernel memory: %ldk freed\n",
(&__init_end - &__init_begin) >> 10);
}
diff -ur linux-2.1.122-pre1.orig/arch/arm/mm/init.c linux-2.1.122-pre1/arch/arm/mm/init.c
--- linux-2.1.122-pre1.orig/arch/arm/mm/init.c Thu Sep 10 22:22:16 1998
+++ linux-2.1.122-pre1/arch/arm/mm/init.c Thu Sep 10 23:32:50 1998
@@ -194,6 +194,8 @@
initpages << (PAGE_SHIFT-10));
}

+int initmem_freed = 0;
+
void free_initmem (void)
{
unsigned long addr;
@@ -204,6 +206,7 @@
atomic_set(&mem_map[MAP_NR(addr)].count, 1);
free_page(addr);
}
+ initmem_freed = 1;
printk ("Freeing unused kernel memory: %dk freed\n", (&__init_end - &__init_begin) >> 10);
}

diff -ur linux-2.1.122-pre1.orig/arch/i386/mm/init.c linux-2.1.122-pre1/arch/i386/mm/init.c
--- linux-2.1.122-pre1.orig/arch/i386/mm/init.c Thu Sep 10 22:22:17 1998
+++ linux-2.1.122-pre1/arch/i386/mm/init.c Thu Sep 10 23:18:02 1998
@@ -495,6 +495,8 @@
test_wp_bit();
}

+int initmem_freed = 0;
+
void free_initmem(void)
{
unsigned long addr;
@@ -505,6 +507,7 @@
atomic_set(&mem_map[MAP_NR(addr)].count, 1);
free_page(addr);
}
+ initmem_freed = 1;
printk ("Freeing unused kernel memory: %dk freed\n", (&__init_end - &__init_begin) >> 10);
}

diff -ur linux-2.1.122-pre1.orig/arch/m68k/mm/init.c linux-2.1.122-pre1/arch/m68k/mm/init.c
--- linux-2.1.122-pre1.orig/arch/m68k/mm/init.c Thu Sep 10 22:21:41 1998
+++ linux-2.1.122-pre1/arch/m68k/mm/init.c Thu Sep 10 23:21:41 1998
@@ -488,6 +488,8 @@
initpages << (PAGE_SHIFT-10));
}

+int initmem_freed = 0;
+
void free_initmem(void)
{
unsigned long addr;
@@ -498,6 +500,7 @@
atomic_set(&mem_map[MAP_NR(addr)].count, 1);
free_page(addr);
}
+ initmem_freed = 1;
}

void si_meminfo(struct sysinfo *val)
diff -ur linux-2.1.122-pre1.orig/arch/mips/mm/init.c linux-2.1.122-pre1/arch/mips/mm/init.c
--- linux-2.1.122-pre1.orig/arch/mips/mm/init.c Thu Sep 10 22:22:17 1998
+++ linux-2.1.122-pre1/arch/mips/mm/init.c Thu Sep 10 23:20:12 1998
@@ -243,6 +243,8 @@

extern char __init_begin, __init_end;

+int initmem_freed = 0;
+
void free_initmem(void)
{
unsigned long addr;
@@ -253,6 +255,7 @@
atomic_set(&mem_map[MAP_NR(addr)].count, 1);
free_page(addr);
}
+ initmem_freed = 1;
printk("Freeing unused kernel memory: %dk freed\n",
(&__init_end - &__init_begin) >> 10);
}
diff -ur linux-2.1.122-pre1.orig/arch/ppc/mm/init.c linux-2.1.122-pre1/arch/ppc/mm/init.c
--- linux-2.1.122-pre1.orig/arch/ppc/mm/init.c Thu Sep 10 22:22:17 1998
+++ linux-2.1.122-pre1/arch/ppc/mm/init.c Thu Sep 10 23:21:10 1998
@@ -879,6 +879,8 @@
return p;
}

+int initmem_freed = 0;
+
__initfunc(void free_initmem(void))
{
unsigned long a;
@@ -913,6 +915,7 @@
break;
}

+ initmem_freed = 1;
printk ("Freeing unused kernel memory: %ldk init",
(num_freed_pages * PAGE_SIZE) >> 10);
if ( num_prep_pages )
diff -ur linux-2.1.122-pre1.orig/arch/sparc/mm/init.c linux-2.1.122-pre1/arch/sparc/mm/init.c
--- linux-2.1.122-pre1.orig/arch/sparc/mm/init.c Thu Sep 10 22:22:17 1998
+++ linux-2.1.122-pre1/arch/sparc/mm/init.c Thu Sep 10 23:19:43 1998
@@ -320,6 +320,8 @@
freepages.high = freepages.min + freepages.min;
}

+int initmem_freed = 0;
+
void free_initmem (void)
{
unsigned long addr;
@@ -330,6 +332,7 @@
atomic_set(&mem_map[MAP_NR(addr)].count, 1);
free_page(addr);
}
+ initmem_freed = 1;
}

void si_meminfo(struct sysinfo *val)
diff -ur linux-2.1.122-pre1.orig/arch/sparc64/mm/init.c linux-2.1.122-pre1/arch/sparc64/mm/init.c
--- linux-2.1.122-pre1.orig/arch/sparc64/mm/init.c Wed Aug 26 13:14:15 1998
+++ linux-2.1.122-pre1/arch/sparc64/mm/init.c Thu Sep 10 23:31:58 1998
@@ -1189,6 +1189,8 @@
freepages.high = freepages.low + i;
}

+int initmem_freed = 0;
+
void free_initmem (void)
{
unsigned long addr;
@@ -1202,6 +1204,7 @@
atomic_set(&mem_map[MAP_NR(page)].count, 1);
free_page(page);
}
+ initmem_freed = 1;
}

void si_meminfo(struct sysinfo *val)
diff -ur linux-2.1.122-pre1.orig/drivers/video/fbcon.c linux-2.1.122-pre1/drivers/video/fbcon.c
--- linux-2.1.122-pre1.orig/drivers/video/fbcon.c Thu Sep 10 22:22:19 1998
+++ linux-2.1.122-pre1/drivers/video/fbcon.c Thu Sep 10 23:36:12 1998
@@ -398,8 +398,6 @@
int nr_rows, nr_cols;
int old_rows, old_cols;
unsigned short *save = NULL, *r, *q;
- /* Only if not module */
- int initmem_freed = 1;
struct fbcon_font_desc *font;
if (con != fg_console || initmem_freed || p->type == FB_TYPE_TEXT)
logo = 0;
diff -ur linux-2.1.122-pre1.orig/include/linux/init.h linux-2.1.122-pre1/include/linux/init.h
--- linux-2.1.122-pre1.orig/include/linux/init.h Wed Aug 26 13:13:34 1998
+++ linux-2.1.122-pre1/include/linux/init.h Thu Sep 10 23:38:34 1998
@@ -42,6 +42,12 @@
*/

/*
+ * initmem_freed is 0 before initialization memory has been freed and 1
+ * after initialization memory has been freed.
+ */
+extern int initmem_freed;
+
+/*
* Disable the __initfunc macros if a file that is a part of a
* module attempts to use them. We do not want to interfere
* with module linking.

--------------895E19F3D75A8DDB61238478--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/faq.html