ANDROID: binder: correct the cmd print for BINDER_WORK_RETURN_ERROR
author宋金时 <songjinshi@xiaomi.com>
Thu, 10 May 2018 02:05:03 +0000 (02:05 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 May 2018 14:06:48 +0000 (16:06 +0200)
When to execute binder_stat_br the e->cmd has been modifying as BR_OK
instead of the original return error cmd, in fact we want to know the
original return error, such as BR_DEAD_REPLY or BR_FAILED_REPLY, etc.
instead of always BR_OK, in order to avoid the value of the e->cmd is
always BR_OK, so we need assign the value of the e->cmd to cmd before
e->cmd = BR_OK.

Signed-off-by: songjinshi <songjinshi@xiaomi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/android/binder.c

index 35f48a39144c04b515db0cc4c096a5527b5d5786..9c30d38c6f0d893cb85e0df3f15cbe62ae351dce 100644 (file)
@@ -3921,10 +3921,11 @@ retry:
                        binder_inner_proc_unlock(proc);
                        if (put_user(e->cmd, (uint32_t __user *)ptr))
                                return -EFAULT;
+                       cmd = e->cmd;
                        e->cmd = BR_OK;
                        ptr += sizeof(uint32_t);
 
-                       binder_stat_br(proc, thread, e->cmd);
+                       binder_stat_br(proc, thread, cmd);
                } break;
                case BINDER_WORK_TRANSACTION_COMPLETE: {
                        binder_inner_proc_unlock(proc);