Revision 677379bc9139ac24b310a281fcb21a2f04288353 authored by Julien Thierry on 29 July 2019, 14:57:46 UTC, committed by Will Deacon on 01 August 2019, 13:59:48 UTC
On a system with two security states, if SCR_EL3.FIQ is cleared, non-secure IRQ priorities get shifted to fit the secure view but priority masks aren't. On such system, it turns out that GIC_PRIO_IRQON masks the priority of normal interrupts, which obviously ends up in a hang. Increase GIC_PRIO_IRQON value (i.e. lower priority) to make sure interrupts are not blocked by it. Cc: Oleg Nesterov <oleg@redhat.com> Fixes: bd82d4bd21880b7c ("arm64: Fix incorrect irqflag restore for priority masking") Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Julien Thierry <julien.thierry.kdev@gmail.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> [will: fixed Fixes: tag] Signed-off-by: Will Deacon <will@kernel.org>
1 parent f1d4836
misc.c
// SPDX-License-Identifier: GPL-2.0
#include <linux/kernel.h>
#include "ubifs.h"
/* Normal UBIFS messages */
void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...)
{
struct va_format vaf;
va_list args;
va_start(args, fmt);
vaf.fmt = fmt;
vaf.va = &args;
pr_notice("UBIFS (ubi%d:%d): %pV\n",
c->vi.ubi_num, c->vi.vol_id, &vaf);
va_end(args);
} \
/* UBIFS error messages */
void ubifs_err(const struct ubifs_info *c, const char *fmt, ...)
{
struct va_format vaf;
va_list args;
va_start(args, fmt);
vaf.fmt = fmt;
vaf.va = &args;
pr_err("UBIFS error (ubi%d:%d pid %d): %ps: %pV\n",
c->vi.ubi_num, c->vi.vol_id, current->pid,
__builtin_return_address(0),
&vaf);
va_end(args);
} \
/* UBIFS warning messages */
void ubifs_warn(const struct ubifs_info *c, const char *fmt, ...)
{
struct va_format vaf;
va_list args;
va_start(args, fmt);
vaf.fmt = fmt;
vaf.va = &args;
pr_warn("UBIFS warning (ubi%d:%d pid %d): %ps: %pV\n",
c->vi.ubi_num, c->vi.vol_id, current->pid,
__builtin_return_address(0),
&vaf);
va_end(args);
}
static char *assert_names[] = {
[ASSACT_REPORT] = "report",
[ASSACT_RO] = "read-only",
[ASSACT_PANIC] = "panic",
};
const char *ubifs_assert_action_name(struct ubifs_info *c)
{
return assert_names[c->assert_action];
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...