History

staging: binder: Fix death notifications

The change (008fa749e0fe5b2fffd20b7fe4891bb80d072c6a) that moved the node release code to a separate function broke death notifications in some cases. When it encountered a reference without a death notification request, it would skip looking at the remaining references, and therefore fail to send death notifications for them.

Arve Hjønnevåg committed 12 years ago

Commit e194fd81 parent 6d0abec1 file · +1 −2Browse files

Unified · Split

drivers/staging/android/binder.c+1−2
@@ -2904,7 +2904,7 @@ static int binder_node_release(struct binder_node *node, int refs) · 2903 unmodified lines
2904 refs++;2904 refs++;
2905 2905
2906 if (!ref->death)2906 if (!ref->death)
2907 goto out;2907 continue;
2908 2908
2909 death++;2909 death++;
2910 2910
@@ -2917,7 +2917,6 @@ static int binder_node_release(struct binder_node *node, int refs) · 6 unmodified lines
2917 BUG();2917 BUG();
2918 }2918 }
2919 2919
2920out:
2921 binder_debug(BINDER_DEBUG_DEAD_BINDER,2920 binder_debug(BINDER_DEBUG_DEAD_BINDER,
2922 "node %d now dead, refs %d, death %d\n",2921 "node %d now dead, refs %d, death %d\n",
2923 node->debug_id, refs, death);2922 node->debug_id, refs, death);