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: Gene Hackmann <ghackmann@google.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
parent
7f73f7aef8
commit
909633957d
|
@ -165,7 +165,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write,
|
|||
goto ret;
|
||||
|
||||
ret = update_insn_emulation_mode(insn, prev_mode);
|
||||
if (!ret) {
|
||||
if (ret) {
|
||||
/* Mode change failed, revert to previous mode. */
|
||||
insn->current_mode = prev_mode;
|
||||
update_insn_emulation_mode(insn, INSN_UNDEF);
|
||||
|
|
Loading…
Reference in New Issue