From: Will Deacon Date: Tue, 25 Nov 2014 10:05:35 +0000 (+0000) Subject: arm64: fix return code check when changing emulation handler X-Git-Tag: v3.19-rc1~173^2~34 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=909633957d85561dab7655d69a9d17dd16231d92;p=~emulex%2Finfiniband.git 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 Signed-off-by: Will Deacon --- diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c index 529aad93336..c363671d750 100644 --- a/arch/arm64/kernel/armv8_deprecated.c +++ b/arch/arm64/kernel/armv8_deprecated.c @@ -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);