forked from luck/tmp_suning_uos_patched
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>
79 lines
1.5 KiB
C
79 lines
1.5 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.
|
|
*
|
|
* Copyright (C) 2006, 07 by Ralf Baechle (ralf@linux-mips.org)
|
|
*
|
|
* Symmetric Uniprocessor (TM) Support
|
|
*/
|
|
#include <linux/kernel.h>
|
|
#include <linux/sched.h>
|
|
|
|
/*
|
|
* Send inter-processor interrupt
|
|
*/
|
|
static void up_send_ipi_single(int cpu, unsigned int action)
|
|
{
|
|
panic(KERN_ERR "%s called", __func__);
|
|
}
|
|
|
|
static inline void up_send_ipi_mask(const struct cpumask *mask,
|
|
unsigned int action)
|
|
{
|
|
panic(KERN_ERR "%s called", __func__);
|
|
}
|
|
|
|
/*
|
|
* After we've done initial boot, this function is called to allow the
|
|
* board code to clean up state, if needed
|
|
*/
|
|
static void up_init_secondary(void)
|
|
{
|
|
}
|
|
|
|
static void up_smp_finish(void)
|
|
{
|
|
}
|
|
|
|
/*
|
|
* Firmware CPU startup hook
|
|
*/
|
|
static void up_boot_secondary(int cpu, struct task_struct *idle)
|
|
{
|
|
}
|
|
|
|
static void __init up_smp_setup(void)
|
|
{
|
|
}
|
|
|
|
static void __init up_prepare_cpus(unsigned int max_cpus)
|
|
{
|
|
}
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
static int up_cpu_disable(void)
|
|
{
|
|
return -ENOSYS;
|
|
}
|
|
|
|
static void up_cpu_die(unsigned int cpu)
|
|
{
|
|
BUG();
|
|
}
|
|
#endif
|
|
|
|
const struct plat_smp_ops up_smp_ops = {
|
|
.send_ipi_single = up_send_ipi_single,
|
|
.send_ipi_mask = up_send_ipi_mask,
|
|
.init_secondary = up_init_secondary,
|
|
.smp_finish = up_smp_finish,
|
|
.boot_secondary = up_boot_secondary,
|
|
.smp_setup = up_smp_setup,
|
|
.prepare_cpus = up_prepare_cpus,
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
.cpu_disable = up_cpu_disable,
|
|
.cpu_die = up_cpu_die,
|
|
#endif
|
|
};
|