mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 17:54:13 +08:00
ff2c8252bf
smp_ops providers do not modify their ops structures, so they should be made const for robustness. Since currently the MIPS kernel is not mapped with memory protection, this does not in itself provide any security benefit, but it still makes sense to make this change. There are also slight code size efficincies from the structure being made read-only, saving 128 bytes of kernel text on a pistachio_defconfig. Before: text data bss dec hex filename 7187239 1772752 470224 9430215 8fe4c7 vmlinux After: text data bss dec hex filename 7187111 1772752 470224 9430087 8fe447 vmlinux Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Marcin Nowakowski <marcin.nowakowski@imgtec.com> Cc: Bart Van Assche <bart.vanassche@sandisk.com> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Huacai Chen <chenhc@lemote.com> Cc: Paul Gortmaker <paul.gortmaker@windriver.com> Cc: Kevin Cernekee <cernekee@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Doug Ledford <dledford@redhat.com> Cc: James Hogan <james.hogan@imgtec.com> Cc: Joe Perches <joe@perches.com> Cc: Florian Fainelli <f.fainelli@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Paul Burton <paul.burton@imgtec.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Steven J. Hill <steven.hill@cavium.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/16784/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
60 lines
1.2 KiB
C
60 lines
1.2 KiB
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* PROM library initialisation code.
|
|
*
|
|
* Copyright (C) 1996 David S. Miller (davem@davemloft.net)
|
|
*/
|
|
#include <linux/init.h>
|
|
#include <linux/kernel.h>
|
|
|
|
#include <asm/bootinfo.h>
|
|
#include <asm/sgialib.h>
|
|
#include <asm/smp-ops.h>
|
|
|
|
#undef DEBUG_PROM_INIT
|
|
|
|
/* Master romvec interface. */
|
|
struct linux_romvec *romvec;
|
|
int prom_argc;
|
|
LONG *_prom_argv, *_prom_envp;
|
|
|
|
void __init prom_init(void)
|
|
{
|
|
PSYSTEM_PARAMETER_BLOCK pb = PROMBLOCK;
|
|
|
|
romvec = ROMVECTOR;
|
|
|
|
prom_argc = fw_arg0;
|
|
_prom_argv = (LONG *) fw_arg1;
|
|
_prom_envp = (LONG *) fw_arg2;
|
|
|
|
if (pb->magic != 0x53435241) {
|
|
printk(KERN_CRIT "Aieee, bad prom vector magic %08lx\n",
|
|
(unsigned long) pb->magic);
|
|
while(1)
|
|
;
|
|
}
|
|
|
|
prom_init_cmdline();
|
|
prom_identify_arch();
|
|
printk(KERN_INFO "PROMLIB: ARC firmware Version %d Revision %d\n",
|
|
pb->ver, pb->rev);
|
|
prom_meminit();
|
|
|
|
#ifdef DEBUG_PROM_INIT
|
|
pr_info("Press a key to reboot\n");
|
|
ArcRead(0, &c, 1, &cnt);
|
|
ArcEnterInteractiveMode();
|
|
#endif
|
|
#ifdef CONFIG_SGI_IP27
|
|
{
|
|
extern const struct plat_smp_ops ip27_smp_ops;
|
|
|
|
register_smp_ops(&ip27_smp_ops);
|
|
}
|
|
#endif
|
|
}
|