-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
powerpc/32: Move early_init() in a separate file
In preparation of KASAN, move early_init() into a separate file in order to allow deactivation of KASAN for that function. Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
- Loading branch information
Christophe Leroy
authored and
Michael Ellerman
committed
May 2, 2019
1 parent
0692391
commit d69ca6b
Showing
3 changed files
with
37 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
|
||
/* | ||
* Early init before relocation | ||
*/ | ||
|
||
#include <linux/init.h> | ||
#include <linux/kernel.h> | ||
#include <asm/setup.h> | ||
#include <asm/sections.h> | ||
#include <asm/asm-prototypes.h> | ||
|
||
/* | ||
* We're called here very early in the boot. | ||
* | ||
* Note that the kernel may be running at an address which is different | ||
* from the address that it was linked at, so we must use RELOC/PTRRELOC | ||
* to access static data (including strings). -- paulus | ||
*/ | ||
notrace unsigned long __init early_init(unsigned long dt_ptr) | ||
{ | ||
unsigned long offset = reloc_offset(); | ||
|
||
/* First zero the BSS -- use memset_io, some platforms don't have caches on yet */ | ||
memset_io((void __iomem *)PTRRELOC(&__bss_start), 0, __bss_stop - __bss_start); | ||
|
||
/* | ||
* Identify the CPU type and fix up code sections | ||
* that depend on which cpu we have. | ||
*/ | ||
identify_cpu(offset, mfspr(SPRN_PVR)); | ||
|
||
apply_feature_fixups(); | ||
|
||
return KERNELBASE + offset; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters