Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Aug 2016 03:36:37 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r304829 - head/sys/powerpc/powerpc
Message-ID:  <201608260336.u7Q3abC4002522@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhibbits
Date: Fri Aug 26 03:36:37 2016
New Revision: 304829
URL: https://svnweb.freebsd.org/changeset/base/304829

Log:
  Prevent BSS from being cleared twice on BookE
  
  Summary:
  First time BSS is cleared in booke_init(), Second time it's cleared in
  powerpc_init().  Any variable initialized between two those guys gets wiped out
  what is wrong. In particular it wipes tlb1_entries initialized by tlb1_init(),
  which was fine when tlb1_init() was called a second time, but this was removed
  in r304656.
  
  Submitted by:	Ivan Krivonos <int0dster_gmail.com>
  Differential Revision: https://reviews.freebsd.org/D7638

Modified:
  head/sys/powerpc/powerpc/machdep.c

Modified: head/sys/powerpc/powerpc/machdep.c
==============================================================================
--- head/sys/powerpc/powerpc/machdep.c	Fri Aug 26 02:46:47 2016	(r304828)
+++ head/sys/powerpc/powerpc/machdep.c	Fri Aug 26 03:36:37 2016	(r304829)
@@ -284,8 +284,14 @@ powerpc_init(vm_offset_t fdt, vm_offset_
 #endif
 		}
 	} else {
+#if !defined(BOOKE)
+		/*
+		 * On BOOKE the BSS is already cleared and some variables
+		 * initialized.  Do not wipe them out.
+		 */
 		bzero(__sbss_start, __sbss_end - __sbss_start);
 		bzero(__bss_start, _end - __bss_start);
+#endif
 		init_static_kenv(NULL, 0);
 	}
 	/* Store boot environment state */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201608260336.u7Q3abC4002522>