bcb48185ed
The passed parameter to sysrq handlers is a key (a character). So change the type from 'int' to 'u8'. Let it specifically be 'u8' for two reasons: * unsigned: unsigned values come from the upper layers (devices) and the tty layer assumes unsigned on most places, and * 8-bit: as that what's supposed to be one day in all the layers built on the top of tty. (Currently, we use mostly 'unsigned char' and somewhere still only 'char'. (But that also translates to the former thanks to -funsigned-char.)) Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Cc: Richard Henderson <richard.henderson@linaro.org> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Matt Turner <mattst88@gmail.com> Cc: Huacai Chen <chenhuacai@kernel.org> Cc: WANG Xuerui <kernel@xen0n.name> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Christophe Leroy <christophe.leroy@csgroup.eu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: David Airlie <airlied@gmail.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Jason Wessel <jason.wessel@windriver.com> Cc: Daniel Thompson <daniel.thompson@linaro.org> Cc: Douglas Anderson <dianders@chromium.org> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: Len Brown <len.brown@intel.com> Cc: Pavel Machek <pavel@ucw.cz> Cc: "Paul E. McKenney" <paulmck@kernel.org> Cc: Frederic Weisbecker <frederic@kernel.org> Cc: Neeraj Upadhyay <quic_neeraju@quicinc.com> Cc: Joel Fernandes <joel@joelfernandes.org> Cc: Josh Triplett <josh@joshtriplett.org> Cc: Boqun Feng <boqun.feng@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Lai Jiangshan <jiangshanlai@gmail.com> Cc: Zqiang <qiang.zhang1211@gmail.com> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> # DRM Acked-by: WANG Xuerui <git@xen0n.name> # loongarch Acked-by: Paul E. McKenney <paulmck@kernel.org> Acked-by: Daniel Thompson <daniel.thompson@linaro.org> Link: https://lore.kernel.org/r/20230712081811.29004-3-jirislaby@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
67 lines
1.3 KiB
C
67 lines
1.3 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* MIPS specific sysrq operations.
|
|
*
|
|
* Copyright (C) 2015 Imagination Technologies Ltd.
|
|
*/
|
|
#include <linux/init.h>
|
|
#include <linux/smp.h>
|
|
#include <linux/spinlock.h>
|
|
#include <linux/sysrq.h>
|
|
#include <linux/workqueue.h>
|
|
|
|
#include <asm/cpu-features.h>
|
|
#include <asm/mipsregs.h>
|
|
#include <asm/tlbdebug.h>
|
|
|
|
/*
|
|
* Dump TLB entries on all CPUs.
|
|
*/
|
|
|
|
static DEFINE_SPINLOCK(show_lock);
|
|
|
|
static void sysrq_tlbdump_single(void *dummy)
|
|
{
|
|
unsigned long flags;
|
|
|
|
spin_lock_irqsave(&show_lock, flags);
|
|
|
|
pr_info("CPU%d:\n", smp_processor_id());
|
|
dump_tlb_regs();
|
|
pr_info("\n");
|
|
dump_tlb_all();
|
|
pr_info("\n");
|
|
|
|
spin_unlock_irqrestore(&show_lock, flags);
|
|
}
|
|
|
|
#ifdef CONFIG_SMP
|
|
static void sysrq_tlbdump_othercpus(struct work_struct *dummy)
|
|
{
|
|
smp_call_function(sysrq_tlbdump_single, NULL, 0);
|
|
}
|
|
|
|
static DECLARE_WORK(sysrq_tlbdump, sysrq_tlbdump_othercpus);
|
|
#endif
|
|
|
|
static void sysrq_handle_tlbdump(u8 key)
|
|
{
|
|
sysrq_tlbdump_single(NULL);
|
|
#ifdef CONFIG_SMP
|
|
schedule_work(&sysrq_tlbdump);
|
|
#endif
|
|
}
|
|
|
|
static const struct sysrq_key_op sysrq_tlbdump_op = {
|
|
.handler = sysrq_handle_tlbdump,
|
|
.help_msg = "show-tlbs(x)",
|
|
.action_msg = "Show TLB entries",
|
|
.enable_mask = SYSRQ_ENABLE_DUMP,
|
|
};
|
|
|
|
static int __init mips_sysrq_init(void)
|
|
{
|
|
return register_sysrq_key('x', &sysrq_tlbdump_op);
|
|
}
|
|
arch_initcall(mips_sysrq_init);
|