Message ID | 1392674322-9036-2-git-send-email-john.stultz@linaro.org |
---|---|
State | Accepted |
Headers | show |
On Tue, Feb 18, 2014 at 11:02 AM, Greg KH <gregkh@linuxfoundation.org> wrote: > On Mon, Feb 17, 2014 at 01:58:29PM -0800, John Stultz wrote: >> From: Arve Hjønnevåg <arve@android.com> >> >> 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. >> >> Cc: Greg KH <gregkh@linuxfoundation.org> >> Cc: Colin Cross <ccross@android.com> >> Cc: Arve Hjønnevåg <arve@android.com> >> Cc: Android Kernel Team <kernel-team@android.com> >> Signed-off-by: Arve Hjønnevåg <arve@android.com> >> Signed-off-by: John Stultz <john.stultz@linaro.org> >> --- >> drivers/staging/android/binder.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) > > As this broke in 3.10, shouldn't this go to staging-linus and get > backported to the stable trees too? Right. I rearranged this fix to be in the front of this series because of this, and mentioned in the cover letter that it might be considered for 3.14. If that's considered ok, then it can be pushed to stable as well. thanks -john -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c index eaec1da..1432d95 100644 --- a/drivers/staging/android/binder.c +++ b/drivers/staging/android/binder.c @@ -2904,7 +2904,7 @@ static int binder_node_release(struct binder_node *node, int refs) refs++; if (!ref->death) - goto out; + continue; death++; @@ -2917,7 +2917,6 @@ static int binder_node_release(struct binder_node *node, int refs) BUG(); } -out: binder_debug(BINDER_DEBUG_DEAD_BINDER, "node %d now dead, refs %d, death %d\n", node->debug_id, refs, death);