This patch modifies the functions that need to be passed the explicit
command to use a boolean flag. This way we can reuse the code for 64bit
compat commands.

Signed-off-by: Serban Constantinescu <serban.constantine...@arm.com>
---
 drivers/staging/android/binder.c |   35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c
index 6fbb340..16109cd 100644
--- a/drivers/staging/android/binder.c
+++ b/drivers/staging/android/binder.c
@@ -1701,7 +1701,7 @@ err_no_context_mgr_node:
 }
 
 static void bc_increfs_done(struct binder_proc *proc,
-               struct binder_thread *thread, uint32_t cmd,
+               struct binder_thread *thread, bool acquire,
                void __user *node_ptr, void __user *cookie)
 {
        struct binder_node *node;
@@ -1710,22 +1710,22 @@ static void bc_increfs_done(struct binder_proc *proc,
        if (node == NULL) {
                binder_user_error("%d:%d %s u%p no match\n",
                        proc->pid, thread->pid,
-                       cmd == BC_INCREFS_DONE ?
-                       "BC_INCREFS_DONE" :
-                       "BC_ACQUIRE_DONE",
+                       acquire ?
+                       "BC_ACQUIRE_DONE" :
+                       "BC_INCREFS_DONE",
                        node_ptr);
                return;
        }
        if (cookie != node->cookie) {
                binder_user_error("%d:%d %s u%p node %d cookie mismatch %p != 
%p\n",
                        proc->pid, thread->pid,
-                       cmd == BC_INCREFS_DONE ?
-                       "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE",
+                       acquire ?
+                       "BC_ACQUIRE_DONE" : "BC_INCREFS_DONE",
                        node_ptr, node->debug_id,
                        cookie, node->cookie);
                return;
        }
-       if (cmd == BC_ACQUIRE_DONE) {
+       if (acquire) {
                if (node->pending_strong_ref == 0) {
                        binder_user_error("%d:%d BC_ACQUIRE_DONE node %d has no 
pending acquire request\n",
                                proc->pid, thread->pid,
@@ -1742,13 +1742,13 @@ static void bc_increfs_done(struct binder_proc *proc,
                }
                node->pending_weak_ref = 0;
        }
-       binder_dec_node(node, cmd == BC_ACQUIRE_DONE, 0);
+       binder_dec_node(node, acquire, 0);
        binder_debug(BINDER_DEBUG_USER_REFS,
                     "%d:%d %s node %d ls %d lw %d\n",
                     proc->pid, thread->pid,
-                    cmd == BC_INCREFS_DONE ?
-                    "BC_INCREFS_DONE" :
-                    "BC_ACQUIRE_DONE",
+                    acquire ?
+                    "BC_ACQUIRE_DONE" :
+                    "BC_INCREFS_DONE",
                     node->debug_id, node->local_strong_refs,
                     node->local_weak_refs);
        return;
@@ -1793,7 +1793,7 @@ static void bc_free_buffer(struct binder_proc *proc,
 }
 
 static void bc_clear_death_notif(struct binder_proc *proc,
-                   struct binder_thread *thread, uint32_t cmd,
+                   struct binder_thread *thread, bool request,
                    uint32_t target, void __user *cookie)
 {
        struct binder_ref *ref;
@@ -1803,7 +1803,7 @@ static void bc_clear_death_notif(struct binder_proc *proc,
        if (ref == NULL) {
                binder_user_error("%d:%d %s invalid ref %d\n",
                        proc->pid, thread->pid,
-                       cmd == BC_REQUEST_DEATH_NOTIFICATION ?
+                       request ?
                        "BC_REQUEST_DEATH_NOTIFICATION" :
                        "BC_CLEAR_DEATH_NOTIFICATION",
                        target);
@@ -1813,13 +1813,13 @@ static void bc_clear_death_notif(struct binder_proc 
*proc,
        binder_debug(BINDER_DEBUG_DEATH_NOTIFICATION,
                     "%d:%d %s %p ref %d desc %d s %d w %d for node %d\n",
                     proc->pid, thread->pid,
-                    cmd == BC_REQUEST_DEATH_NOTIFICATION ?
+                    request ?
                     "BC_REQUEST_DEATH_NOTIFICATION" :
                     "BC_CLEAR_DEATH_NOTIFICATION",
                     cookie, ref->debug_id, ref->desc,
                     ref->strong, ref->weak, ref->node->debug_id);
 
-       if (cmd == BC_REQUEST_DEATH_NOTIFICATION) {
+       if (request) {
                if (ref->death) {
                        binder_user_error("%d:%d BC_REQUEST_DEATH_NOTIFICATION 
death notification already set\n",
                                proc->pid, thread->pid);
@@ -1993,7 +1993,7 @@ static int binder_thread_write(struct binder_proc *proc,
                        if (get_user(cookie, (void * __user *)ptr))
                                return -EFAULT;
                        ptr += sizeof(void *);
-                       bc_increfs_done(proc, thread, cmd, node_ptr, cookie);
+                       bc_increfs_done(proc, thread, cmd == BC_ACQUIRE_DONE, 
node_ptr, cookie);
                        break;
                }
                case BC_ATTEMPT_ACQUIRE:
@@ -2071,7 +2071,8 @@ static int binder_thread_write(struct binder_proc *proc,
                        if (get_user(cookie, (void __user * __user *)ptr))
                                return -EFAULT;
                        ptr += sizeof(void *);
-                       bc_clear_death_notif(proc, thread, cmd, target, cookie);
+                       bc_clear_death_notif(proc, thread, cmd == 
BC_REQUEST_DEATH_NOTIFICATION,
+                                            target, cookie);
                        break;
                }
                case BC_DEAD_BINDER_DONE: {
-- 
1.7.9.5

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to