Lines Matching defs:death
368 * @work: worklist element for death notifications
406 * @death: pointer to death notification (ref_death) if requested
423 struct binder_ref_death *death;
463 * @delivered_death: list of delivered death notification
1572 if (ref->death) {
1574 "%d delete ref %d desc %d has death notification\n",
1577 binder_dequeue_work(ref->proc, &ref->death->work);
1700 * (if non-NULL) and the binder_ref_death indicated by ref->death.
1706 kfree(ref->death);
4300 struct binder_ref_death *death = NULL;
4310 * Allocate memory for death notification
4313 death = kzalloc(sizeof(*death), GFP_KERNEL);
4314 if (death == NULL) {
4338 kfree(death);
4354 if (ref->death) {
4355 binder_user_error("%d:%d BC_REQUEST_DEATH_NOTIFICATION death notification already set\n",
4359 kfree(death);
4363 INIT_LIST_HEAD(&death->work.entry);
4364 death->cookie = cookie;
4365 ref->death = death;
4367 ref->death->work.type = BINDER_WORK_DEAD_BINDER;
4371 &ref->death->work, &proc->todo);
4376 if (ref->death == NULL) {
4377 binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION death notification not active\n",
4383 death = ref->death;
4384 if (death->cookie != cookie) {
4385 binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION death notification cookie mismatch %016llx != %016llx\n",
4387 (u64)death->cookie,
4393 ref->death = NULL;
4395 if (list_empty(&death->work.entry)) {
4396 death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION;
4402 &death->work);
4405 &death->work,
4411 BUG_ON(death->work.type != BINDER_WORK_DEAD_BINDER);
4412 death->work.type = BINDER_WORK_DEAD_BINDER_AND_CLEAR;
4422 struct binder_ref_death *death = NULL;
4437 death = tmp_death;
4444 death);
4445 if (death == NULL) {
4451 binder_dequeue_work_ilocked(&death->work);
4452 if (death->work.type == BINDER_WORK_DEAD_BINDER_AND_CLEAR) {
4453 death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION;
4458 thread, &death->work);
4461 &death->work,
4825 struct binder_ref_death *death;
4829 death = container_of(w, struct binder_ref_death, work);
4834 cookie = death->cookie;
4845 kfree(death);
5075 struct binder_ref_death *death;
5077 death = container_of(w, struct binder_ref_death, work);
5079 "undelivered death notification, %016llx\n",
5080 (u64)death->cookie);
5081 kfree(death);
5881 int death = 0;
5916 * death notifications.
5919 if (!ref->death) {
5924 death++;
5926 BUG_ON(!list_empty(&ref->death->work.entry));
5927 ref->death->work.type = BINDER_WORK_DEAD_BINDER;
5928 binder_enqueue_work_ilocked(&ref->death->work,
5935 "node %d now dead, refs %d, death %d\n",
5936 node->debug_id, refs, death);
6147 seq_printf(m, "%shas cleared death notification\n", prefix);
6230 ref->data.weak, ref->death);
6350 "death",