Make sure to clear bss before jumping to a kernel copied from load buffer.
This will fix yet another boot failure issue "screen white-out after loading a kernel" https://mail-index.netbsd.org/port-zaurus/2019/10/26/msg000072.html Should be pulled up to netbsd-8 and netbsd-9.
This commit is contained in:
parent
3ed59424a4
commit
0239d27890
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: compat_linux.h,v 1.6 2011/12/11 14:05:39 nonaka Exp $ */
|
||||
/* $NetBSD: compat_linux.h,v 1.7 2019/10/28 15:26:09 tsutsui Exp $ */
|
||||
/* $OpenBSD: compat_linux.h,v 1.5 2006/01/15 17:58:27 deraadt Exp $ */
|
||||
|
||||
/*
|
||||
@ -64,6 +64,7 @@ extern int register_chrdev(unsigned int, const char *, struct file_operations *)
|
||||
extern int unregister_chrdev(unsigned int, const char *);
|
||||
extern void printk(const char *, ...) __printflike(1, 2);
|
||||
extern void *memcpy(void *, const void *, size_t);
|
||||
extern void *memset(void *, int, size_t);
|
||||
|
||||
/* procfs support */
|
||||
struct proc_dir_entry {
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: zbsdmod.c,v 1.10 2019/10/26 09:58:40 tsutsui Exp $ */
|
||||
/* $NetBSD: zbsdmod.c,v 1.11 2019/10/28 15:26:09 tsutsui Exp $ */
|
||||
/* $OpenBSD: zbsdmod.c,v 1.7 2005/05/02 02:45:29 uwe Exp $ */
|
||||
|
||||
/*
|
||||
@ -262,6 +262,10 @@ elf32bsdboot(void)
|
||||
(((char *)elf) + phdr[i].p_offset)[sz];
|
||||
}
|
||||
}
|
||||
if (IS_BSS(phdr[i])) {
|
||||
memset((void *)(phdr[i].p_vaddr + phdr[i].p_filesz), 0,
|
||||
phdr[i].p_memsz - phdr[i].p_filesz);
|
||||
}
|
||||
}
|
||||
|
||||
addr = (int *)(elf->e_entry);
|
||||
|
Loading…
Reference in New Issue
Block a user