Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e194fd8a authored by Arve Hjønnevåg's avatar Arve Hjønnevåg Committed by Greg Kroah-Hartman
Browse files

staging: binder: Fix death notifications



The change (008fa749) 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.

Cc: Colin Cross <ccross@android.com>
Cc: Android Kernel Team <kernel-team@android.com>
Cc: stable <stable@vger.kernel.org> # 3.10
Signed-off-by: default avatarArve Hjønnevåg <arve@android.com>
Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
Signed-off-by: default avatarJeremy Compostella <jeremy.compostella@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6d0abeca
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -2904,7 +2904,7 @@ static int binder_node_release(struct binder_node *node, int refs)
		refs++;
		refs++;


		if (!ref->death)
		if (!ref->death)
			goto out;
			continue;


		death++;
		death++;


@@ -2917,7 +2917,6 @@ static int binder_node_release(struct binder_node *node, int refs)
			BUG();
			BUG();
	}
	}


out:
	binder_debug(BINDER_DEBUG_DEAD_BINDER,
	binder_debug(BINDER_DEBUG_DEAD_BINDER,
		     "node %d now dead, refs %d, death %d\n",
		     "node %d now dead, refs %d, death %d\n",
		     node->debug_id, refs, death);
		     node->debug_id, refs, death);