Commit 90963395 authored by Will Deacon's avatar Will Deacon

arm64: fix return code check when changing emulation handler

update_insn_emulation_mode() returns 0 on success, so we should be
treating any non-zero values as failure, rather than the other way
around. Otherwise, writes to the sysctl file controlling the emulation
are ignored and immediately rolled back.
Reported-by: default avatarGene Hackmann <ghackmann@google.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 7f73f7ae
...@@ -165,7 +165,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write, ...@@ -165,7 +165,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write,
goto ret; goto ret;
ret = update_insn_emulation_mode(insn, prev_mode); ret = update_insn_emulation_mode(insn, prev_mode);
if (!ret) { if (ret) {
/* Mode change failed, revert to previous mode. */ /* Mode change failed, revert to previous mode. */
insn->current_mode = prev_mode; insn->current_mode = prev_mode;
update_insn_emulation_mode(insn, INSN_UNDEF); update_insn_emulation_mode(insn, INSN_UNDEF);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment