mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 15:03:04 +00:00
parisc: Add support for CONFIG_SYSCTL_ARCH_UNALIGN_NO_WARN
Allow users to disable kernel warnings for unaligned memory accesses from kernel via the /proc/sys/kernel/ignore-unaligned-usertrap procfs entry. That way users can disable those warnings in case they happen too often. Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
2fd4e52e44
commit
cbade82334
|
@ -454,7 +454,7 @@ ignore-unaligned-usertrap
|
||||||
|
|
||||||
On architectures where unaligned accesses cause traps, and where this
|
On architectures where unaligned accesses cause traps, and where this
|
||||||
feature is supported (``CONFIG_SYSCTL_ARCH_UNALIGN_NO_WARN``;
|
feature is supported (``CONFIG_SYSCTL_ARCH_UNALIGN_NO_WARN``;
|
||||||
currently, ``arc`` and ``loongarch``), controls whether all
|
currently, ``arc``, ``parisc`` and ``loongarch``), controls whether all
|
||||||
unaligned traps are logged.
|
unaligned traps are logged.
|
||||||
|
|
||||||
= =============================================================
|
= =============================================================
|
||||||
|
|
|
@ -45,6 +45,7 @@ config PARISC
|
||||||
select GENERIC_CPU_DEVICES if !SMP
|
select GENERIC_CPU_DEVICES if !SMP
|
||||||
select GENERIC_LIB_DEVMEM_IS_ALLOWED
|
select GENERIC_LIB_DEVMEM_IS_ALLOWED
|
||||||
select SYSCTL_ARCH_UNALIGN_ALLOW
|
select SYSCTL_ARCH_UNALIGN_ALLOW
|
||||||
|
select SYSCTL_ARCH_UNALIGN_NO_WARN
|
||||||
select SYSCTL_EXCEPTION_TRACE
|
select SYSCTL_EXCEPTION_TRACE
|
||||||
select HAVE_MOD_ARCH_SPECIFIC
|
select HAVE_MOD_ARCH_SPECIFIC
|
||||||
select MODULES_USE_ELF_RELA
|
select MODULES_USE_ELF_RELA
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
#define ERR_NOTHANDLED -1
|
#define ERR_NOTHANDLED -1
|
||||||
|
|
||||||
int unaligned_enabled __read_mostly = 1;
|
int unaligned_enabled __read_mostly = 1;
|
||||||
|
int no_unaligned_warning __read_mostly;
|
||||||
|
|
||||||
static int emulate_ldh(struct pt_regs *regs, int toreg)
|
static int emulate_ldh(struct pt_regs *regs, int toreg)
|
||||||
{
|
{
|
||||||
|
@ -399,6 +400,7 @@ void handle_unaligned(struct pt_regs *regs)
|
||||||
} else {
|
} else {
|
||||||
static DEFINE_RATELIMIT_STATE(kernel_ratelimit, 5 * HZ, 5);
|
static DEFINE_RATELIMIT_STATE(kernel_ratelimit, 5 * HZ, 5);
|
||||||
if (!(current->thread.flags & PARISC_UAC_NOPRINT) &&
|
if (!(current->thread.flags & PARISC_UAC_NOPRINT) &&
|
||||||
|
!no_unaligned_warning &&
|
||||||
__ratelimit(&kernel_ratelimit))
|
__ratelimit(&kernel_ratelimit))
|
||||||
pr_warn("Kernel: unaligned access to " RFMT " in %pS "
|
pr_warn("Kernel: unaligned access to " RFMT " in %pS "
|
||||||
"(iir " RFMT ")\n",
|
"(iir " RFMT ")\n",
|
||||||
|
|
Loading…
Reference in New Issue
Block a user