t->from = thread;
        else
                t->from = NULL;
+       t->from_pid = proc->pid;
+       t->from_tid = thread->pid;
        t->sender_euid = task_euid(proc->tsk);
        t->to_proc = target_proc;
        t->to_thread = target_thread;
        seq_printf(m,
                   "%s %d: %pK from %d:%d to %d:%d code %x flags %x pri %ld r%d elapsed %lldms",
                   prefix, t->debug_id, t,
-                  t->from ? t->from->proc->pid : 0,
-                  t->from ? t->from->pid : 0,
+                  t->from_pid,
+                  t->from_tid,
                   to_proc ? to_proc->pid : 0,
                   t->to_thread ? t->to_thread->pid : 0,
                   t->code, t->flags, t->priority, t->need_reply,
 
        int debug_id;
        struct binder_work work;
        struct binder_thread *from;
+       pid_t from_pid;
+       pid_t from_tid;
        struct binder_transaction *from_parent;
        struct binder_proc *to_proc;
        struct binder_thread *to_thread;