From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8523118273133910366==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: [linux-next:master 13837/13940] drivers/android/binder.c:3991: Error: unrecognized keyword/register name `l.lwz Date: Thu, 06 Aug 2020 07:40:46 +0800 Message-ID: <202008060737.J0DU6LBL%lkp@intel.com> List-Id: --===============8523118273133910366== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git= master head: d15fe4ec043588beee823781602ddb51d0bc84c8 commit: b957d5e4f5d1d8ed8cfed49c9bca45f96f2816f4 [13837/13940] Merge remote= -tracking branch 'char-misc/char-misc-next' config: openrisc-randconfig-r025-20200805 (attached as .config) compiler: or1k-linux-gcc (GCC) 9.3.0 reproduce (this is a W=3D1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout b957d5e4f5d1d8ed8cfed49c9bca45f96f2816f4 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dgcc-9.3.0 make.cross = ARCH=3Dopenrisc = If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): drivers/android/binder.c: Assembler messages: >> drivers/android/binder.c:3991: Error: unrecognized keyword/register name= `l.lwz ?ap,4(r28)' drivers/android/binder.c:3996: Error: unrecognized keyword/register name= `l.addi ?ap,r0,0' vim +3991 drivers/android/binder.c 44d8047f1d87ad drivers/android/binder.c Todd Kjos 2018= -08-28 3598 = fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar 2013= -09-02 3599 static int binder_thread_write(struct binder_proc *proc, fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar 2013= -09-02 3600 struct binder_thread *thread, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3601 binder_uintptr_t binder_buffer, size_t size, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3602 binder_size_t *consumed) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3603 { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3604 uint32_t cmd; 342e5c90b60134 drivers/android/binder.c Martijn Coenen 2017= -02-03 3605 struct binder_context *context =3D proc->context; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3606 void __user *buffer =3D (void __user *)(uintptr_t)= binder_buffer; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3607 void __user *ptr =3D buffer + *consumed; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3608 void __user *end =3D buffer + size; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3609 = 26549d17741035 drivers/android/binder.c Todd Kjos 2017= -06-29 3610 while (ptr < end && thread->return_error.cmd =3D=3D BR_OK) { 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3611 int ret; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3612 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3613 if (get_user(cmd, (uint32_t __user *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3614 return -EFAULT; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3615 ptr +=3D sizeof(uint32_t); 975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2012-10-16 3616 trace_binder_command(cmd); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3617 if (_IOC_NR(cmd) < ARRAY_SIZE(binder_stats.bc)) { 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017= -06-29 3618 atomic_inc(&binder_stats.bc[_IOC_NR(cmd)]); 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017= -06-29 3619 atomic_inc(&proc->stats.bc[_IOC_NR(cmd)]); 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017= -06-29 3620 atomic_inc(&thread->stats.bc[_IOC_NR(cmd)]); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3621 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3622 switch (cmd) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3623 case BC_INCREFS: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3624 case BC_ACQUIRE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3625 case BC_RELEASE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3626 case BC_DECREFS: { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3627 uint32_t target; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3628 const char *debug_string; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3629 bool strong =3D cmd =3D=3D BC_ACQUIRE || cmd =3D=3D BC_REL= EASE; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3630 bool increment =3D cmd =3D=3D BC_INCREFS || cmd =3D=3D BC_= ACQUIRE; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3631 struct binder_ref_data rdata; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3632 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3633 if (get_user(target, (uint32_t __user *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3634 return -EFAULT; c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3635 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3636 ptr +=3D sizeof(uint32_t); 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3637 ret =3D -1; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3638 if (increment && !target) { c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3639 struct binder_node *ctx_mgr_node; c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3640 mutex_lock(&context->context_mgr_node_lock); c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3641 ctx_mgr_node =3D context->binder_context_mgr_node; 4b836a1426cb0f drivers/android/binder.c Jann Horn 2020= -07-27 3642 if (ctx_mgr_node) { 4b836a1426cb0f drivers/android/binder.c Jann Horn 2020= -07-27 3643 if (ctx_mgr_node->proc =3D=3D proc) { 4b836a1426cb0f drivers/android/binder.c Jann Horn 2020= -07-27 3644 binder_user_error("%d:%d context manager tried to acqui= re desc 0\n", 4b836a1426cb0f drivers/android/binder.c Jann Horn 2020= -07-27 3645 proc->pid, thread->pid); 4b836a1426cb0f drivers/android/binder.c Jann Horn 2020= -07-27 3646 mutex_unlock(&context->context_mgr_node_lock); 4b836a1426cb0f drivers/android/binder.c Jann Horn 2020= -07-27 3647 return -EINVAL; 4b836a1426cb0f drivers/android/binder.c Jann Horn 2020= -07-27 3648 } 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3649 ret =3D binder_inc_ref_for_node( 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3650 proc, ctx_mgr_node, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3651 strong, NULL, &rdata); 4b836a1426cb0f drivers/android/binder.c Jann Horn 2020= -07-27 3652 } c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3653 mutex_unlock(&context->context_mgr_node_lock); c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3654 } 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3655 if (ret) 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3656 ret =3D binder_update_ref_for_handle( 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3657 proc, target, increment, strong, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3658 &rdata); 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3659 if (!ret && rdata.desc !=3D target) { 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3660 binder_user_error("%d:%d tried to acquire reference to de= sc %d, got %d instead\n", 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3661 proc->pid, thread->pid, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3662 target, rdata.desc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3663 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3664 switch (cmd) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3665 case BC_INCREFS: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3666 debug_string =3D "IncRefs"; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3667 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3668 case BC_ACQUIRE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3669 debug_string =3D "Acquire"; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3670 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3671 case BC_RELEASE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3672 debug_string =3D "Release"; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3673 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3674 case BC_DECREFS: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3675 default: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3676 debug_string =3D "DecRefs"; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3677 break; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3678 } 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3679 if (ret) { 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3680 binder_user_error("%d:%d %s %d refcount change on invalid= ref %d ret %d\n", 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3681 proc->pid, thread->pid, debug_string, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3682 strong, target, ret); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3683 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3684 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3685 binder_debug(BINDER_DEBUG_USER_REFS, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3686 "%d:%d %s ref %d desc %d s %d w %d\n", 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3687 proc->pid, thread->pid, debug_string, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3688 rdata.debug_id, rdata.desc, rdata.strong, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3689 rdata.weak); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3690 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3691 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3692 case BC_INCREFS_DONE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3693 case BC_ACQUIRE_DONE: { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3694 binder_uintptr_t node_ptr; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3695 binder_uintptr_t cookie; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3696 struct binder_node *node; 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3697 bool free_node; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3698 = da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3699 if (get_user(node_ptr, (binder_uintptr_t __user = *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3700 return -EFAULT; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3701 ptr +=3D sizeof(binder_uintptr_t); da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3702 if (get_user(cookie, (binder_uintptr_t __user *)= ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3703 return -EFAULT; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3704 ptr +=3D sizeof(binder_uintptr_t); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3705 node =3D binder_get_node(proc, node_ptr); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3706 if (node =3D=3D NULL) { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3707 binder_user_error("%d:%d %s u%016llx no match\n= ", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3708 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3709 cmd =3D=3D BC_INCREFS_DONE ? 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3710 "BC_INCREFS_DONE" : 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3711 "BC_ACQUIRE_DONE", da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3712 (u64)node_ptr); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3713 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3714 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3715 if (cookie !=3D node->cookie) { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3716 binder_user_error("%d:%d %s u%016llx node %d co= okie mismatch %016llx !=3D %016llx\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3717 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3718 cmd =3D=3D BC_INCREFS_DONE ? 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3719 "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE", da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3720 (u64)node_ptr, node->debug_id, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3721 (u64)cookie, (u64)node->cookie); adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3722 binder_put_node(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3723 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3724 } 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3725 binder_node_inner_lock(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3726 if (cmd =3D=3D BC_ACQUIRE_DONE) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3727 if (node->pending_strong_ref =3D=3D 0) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3728 binder_user_error("%d:%d BC_ACQUIRE_DONE node %d has no = pending acquire request\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3729 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3730 node->debug_id); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3731 binder_node_inner_unlock(node); adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3732 binder_put_node(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3733 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3734 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3735 node->pending_strong_ref =3D 0; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3736 } else { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3737 if (node->pending_weak_ref =3D=3D 0) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3738 binder_user_error("%d:%d BC_INCREFS_DONE node %d has no = pending increfs request\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3739 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3740 node->debug_id); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3741 binder_node_inner_unlock(node); adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3742 binder_put_node(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3743 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3744 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3745 node->pending_weak_ref =3D 0; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3746 } 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3747 free_node =3D binder_dec_node_nilocked(node, 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3748 cmd =3D=3D BC_ACQUIRE_DONE, 0); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3749 WARN_ON(free_node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3750 binder_debug(BINDER_DEBUG_USER_REFS, adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3751 "%d:%d %s node %d ls %d lw %d tr %d\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3752 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3753 cmd =3D=3D BC_INCREFS_DONE ? "BC_INCREFS_DONE" : "BC= _ACQUIRE_DONE", adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3754 node->debug_id, node->local_strong_refs, adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3755 node->local_weak_refs, node->tmp_refs); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3756 binder_node_inner_unlock(node); adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3757 binder_put_node(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3758 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3759 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3760 case BC_ATTEMPT_ACQUIRE: 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3761 pr_err("BC_ATTEMPT_ACQUIRE not supported\n"); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3762 return -EINVAL; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3763 case BC_ACQUIRE_RESULT: 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3764 pr_err("BC_ACQUIRE_RESULT not supported\n"); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3765 return -EINVAL; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3766 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3767 case BC_FREE_BUFFER: { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3768 binder_uintptr_t data_ptr; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3769 struct binder_buffer *buffer; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3770 = da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3771 if (get_user(data_ptr, (binder_uintptr_t __user = *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3772 return -EFAULT; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3773 ptr +=3D sizeof(binder_uintptr_t); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3774 = 53d311cfa19ad3 drivers/android/binder.c Todd Kjos 2017= -06-29 3775 buffer =3D binder_alloc_prepare_to_free(&proc->alloc, 19c987241ca121 drivers/android/binder.c Todd Kjos 2017= -06-29 3776 data_ptr); 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3777 if (IS_ERR_OR_NULL(buffer)) { 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3778 if (PTR_ERR(buffer) =3D=3D -EPERM) { 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3779 binder_user_error( 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3780 "%d:%d BC_FREE_BUFFER u%016llx matched unreturned or cu= rrently freeing buffer\n", 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3781 proc->pid, thread->pid, 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3782 (u64)data_ptr); 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3783 } else { 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3784 binder_user_error( 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3785 "%d:%d BC_FREE_BUFFER u%016llx no match\n", 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3786 proc->pid, thread->pid, 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3787 (u64)data_ptr); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3788 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3789 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3790 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3791 binder_debug(BINDER_DEBUG_FREE_BUFFER, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3792 "%d:%d BC_FREE_BUFFER u%016llx found buffe= r %d for %s transaction\n", da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3793 proc->pid, thread->pid, (u64)data_ptr, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3794 buffer->debug_id, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3795 buffer->transaction ? "active" : "finished"); 44d8047f1d87ad drivers/android/binder.c Todd Kjos 2018= -08-28 3796 binder_free_buf(proc, buffer); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3797 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3798 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3799 = 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3800 case BC_TRANSACTION_SG: 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3801 case BC_REPLY_SG: { 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3802 struct binder_transaction_data_sg tr; 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3803 = 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3804 if (copy_from_user(&tr, ptr, sizeof(tr))) 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3805 return -EFAULT; 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3806 ptr +=3D sizeof(tr); 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3807 binder_transaction(proc, thread, &tr.transaction_data, 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3808 cmd =3D=3D BC_REPLY_SG, tr.buffers_size); 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3809 break; 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3810 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3811 case BC_TRANSACTION: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3812 case BC_REPLY: { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3813 struct binder_transaction_data tr; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3814 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3815 if (copy_from_user(&tr, ptr, sizeof(tr))) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3816 return -EFAULT; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3817 ptr +=3D sizeof(tr); 4bfac80af3a63f drivers/android/binder.c Martijn Coenen 2017= -02-03 3818 binder_transaction(proc, thread, &tr, 4bfac80af3a63f drivers/android/binder.c Martijn Coenen 2017= -02-03 3819 cmd =3D=3D BC_REPLY, 0); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3820 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3821 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3822 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3823 case BC_REGISTER_LOOPER: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3824 binder_debug(BINDER_DEBUG_THREADS, 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3825 "%d:%d BC_REGISTER_LOOPER\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3826 proc->pid, thread->pid); b3e6861283790d drivers/android/binder.c Todd Kjos 2017= -06-29 3827 binder_inner_proc_lock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3828 if (thread->looper & BINDER_LOOPER_STATE_ENTERED) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3829 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3830 binder_user_error("%d:%d ERROR: BC_REGISTER_LOOPER called= after BC_ENTER_LOOPER\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3831 proc->pid, thread->pid); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3832 } else if (proc->requested_threads =3D=3D 0) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3833 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3834 binder_user_error("%d:%d ERROR: BC_REGISTER_LOOPER called= without request\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3835 proc->pid, thread->pid); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3836 } else { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3837 proc->requested_threads--; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3838 proc->requested_threads_started++; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3839 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3840 thread->looper |=3D BINDER_LOOPER_STATE_REGISTERED; b3e6861283790d drivers/android/binder.c Todd Kjos 2017= -06-29 3841 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3842 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3843 case BC_ENTER_LOOPER: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3844 binder_debug(BINDER_DEBUG_THREADS, 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3845 "%d:%d BC_ENTER_LOOPER\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3846 proc->pid, thread->pid); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3847 if (thread->looper & BINDER_LOOPER_STATE_REGISTERED) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3848 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3849 binder_user_error("%d:%d ERROR: BC_ENTER_LOOPER called af= ter BC_REGISTER_LOOPER\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3850 proc->pid, thread->pid); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3851 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3852 thread->looper |=3D BINDER_LOOPER_STATE_ENTERED; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3853 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3854 case BC_EXIT_LOOPER: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3855 binder_debug(BINDER_DEBUG_THREADS, 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3856 "%d:%d BC_EXIT_LOOPER\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3857 proc->pid, thread->pid); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3858 thread->looper |=3D BINDER_LOOPER_STATE_EXITED; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3859 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3860 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3861 case BC_REQUEST_DEATH_NOTIFICATION: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3862 case BC_CLEAR_DEATH_NOTIFICATION: { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3863 uint32_t target; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3864 binder_uintptr_t cookie; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3865 struct binder_ref *ref; 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3866 struct binder_ref_death *death =3D NULL; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3867 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3868 if (get_user(target, (uint32_t __user *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3869 return -EFAULT; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3870 ptr +=3D sizeof(uint32_t); da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3871 if (get_user(cookie, (binder_uintptr_t __user *)= ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3872 return -EFAULT; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3873 ptr +=3D sizeof(binder_uintptr_t); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3874 if (cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION) { 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3875 /* 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3876 * Allocate memory for death notification 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3877 * before taking lock 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3878 */ 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3879 death =3D kzalloc(sizeof(*death), GFP_KERNEL); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3880 if (death =3D=3D NULL) { 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3881 WARN_ON(thread->return_error.cmd !=3D 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3882 BR_OK); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3883 thread->return_error.cmd =3D BR_ERROR; 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3884 binder_enqueue_thread_work( 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3885 thread, 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3886 &thread->return_error.work); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3887 binder_debug( 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3888 BINDER_DEBUG_FAILED_TRANSACTION, 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3889 "%d:%d BC_REQUEST_DEATH_NOTIFICATION failed\n", 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3890 proc->pid, thread->pid); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3891 break; 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3892 } 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3893 } 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3894 binder_proc_lock(proc); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3895 ref =3D binder_get_ref_olocked(proc, target, false); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3896 if (ref =3D=3D NULL) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3897 binder_user_error("%d:%d %s invalid ref %d\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3898 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3899 cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION ? 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3900 "BC_REQUEST_DEATH_NOTIFICATION" : 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3901 "BC_CLEAR_DEATH_NOTIFICATION", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3902 target); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3903 binder_proc_unlock(proc); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3904 kfree(death); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3905 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3906 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3907 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3908 binder_debug(BINDER_DEBUG_DEATH_NOTIFICATION, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3909 "%d:%d %s %016llx ref %d desc %d s %d w %d= for node %d\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3910 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3911 cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION ? 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3912 "BC_REQUEST_DEATH_NOTIFICATION" : 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3913 "BC_CLEAR_DEATH_NOTIFICATION", 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3914 (u64)cookie, ref->data.debug_id, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3915 ref->data.desc, ref->data.strong, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3916 ref->data.weak, ref->node->debug_id); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3917 = ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017= -06-29 3918 binder_node_lock(ref->node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3919 if (cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3920 if (ref->death) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3921 binder_user_error("%d:%d BC_REQUEST_DEATH_NOTIFICATION d= eath notification already set\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3922 proc->pid, thread->pid); ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017= -06-29 3923 binder_node_unlock(ref->node); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3924 binder_proc_unlock(proc); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3925 kfree(death); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3926 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3927 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3928 binder_stats_created(BINDER_STAT_DEATH); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3929 INIT_LIST_HEAD(&death->work.entry); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3930 death->cookie =3D cookie; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3931 ref->death =3D death; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3932 if (ref->node->proc =3D=3D NULL) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3933 ref->death->work.type =3D BINDER_WORK_DEAD_BINDER; bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017= -08-31 3934 = 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017= -08-31 3935 binder_inner_proc_lock(proc); 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017= -08-31 3936 binder_enqueue_work_ilocked( bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017= -08-31 3937 &ref->death->work, &proc->todo); bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017= -08-31 3938 binder_wakeup_proc_ilocked(proc); 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017= -08-31 3939 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3940 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3941 } else { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3942 if (ref->death =3D=3D NULL) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3943 binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION dea= th notification not active\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3944 proc->pid, thread->pid); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3945 binder_node_unlock(ref->node); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3946 binder_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3947 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3948 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3949 death =3D ref->death; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3950 if (death->cookie !=3D cookie) { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3951 binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFI= CATION death notification cookie mismatch %016llx !=3D %016llx\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3952 proc->pid, thread->pid, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3953 (u64)death->cookie, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3954 (u64)cookie); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3955 binder_node_unlock(ref->node); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3956 binder_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3957 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3958 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3959 ref->death =3D NULL; 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3960 binder_inner_proc_lock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3961 if (list_empty(&death->work.entry)) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3962 death->work.type =3D BINDER_WORK_CLEAR_DEATH_NOTIFICATIO= N; 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3963 if (thread->looper & 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3964 (BINDER_LOOPER_STATE_REGISTERED | 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3965 BINDER_LOOPER_STATE_ENTERED)) 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3966 binder_enqueue_thread_work_ilocked( 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3967 thread, 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3968 &death->work); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3969 else { 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3970 binder_enqueue_work_ilocked( 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3971 &death->work, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3972 &proc->todo); 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017= -08-31 3973 binder_wakeup_proc_ilocked( 408c68b17aea2f drivers/android/binder.c Martijn Coenen 2017= -08-31 3974 proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3975 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3976 } else { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3977 BUG_ON(death->work.type !=3D BINDER_WORK_DEAD_BINDER); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3978 death->work.type =3D BINDER_WORK_DEAD_BINDER_AND_CLEAR; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3979 } 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3980 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3981 } ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017= -06-29 3982 binder_node_unlock(ref->node); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3983 binder_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3984 } break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3985 case BC_DEAD_BINDER_DONE: { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3986 struct binder_work *w; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3987 binder_uintptr_t cookie; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3988 struct binder_ref_death *death =3D NULL; 10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee 2014= -05-01 3989 = da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3990 if (get_user(cookie, (binder_uintptr_t __user *)= ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 @3991 return -EFAULT; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3992 = 7a64cd887fdb97 drivers/android/binder.c Lisa Du 2016= -02-17 3993 ptr +=3D sizeof(cookie); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3994 binder_inner_proc_lock(proc); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3995 list_for_each_entry(w, &proc->delivered_death, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3996 entry) { 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3997 struct binder_ref_death *tmp_death =3D 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3998 container_of(w, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3999 struct binder_ref_death, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4000 work); 10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee 2014= -05-01 4001 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4002 if (tmp_death->cookie =3D=3D cookie) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4003 death =3D tmp_death; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4004 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4005 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4006 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4007 binder_debug(BINDER_DEBUG_DEAD_BINDER, 8ca86f1639ec58 drivers/android/binder.c Todd Kjos 2018= -02-07 4008 "%d:%d BC_DEAD_BINDER_DONE %016llx found %pK\n", da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 4009 proc->pid, thread->pid, (u64)cookie, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 4010 death); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4011 if (death =3D=3D NULL) { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 4012 binder_user_error("%d:%d BC_DEAD_BINDER_DONE %0= 16llx not found\n", da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 4013 proc->pid, thread->pid, (u64)cookie); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4014 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4015 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4016 } 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4017 binder_dequeue_work_ilocked(&death->work); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4018 if (death->work.type =3D=3D BINDER_WORK_DEAD_BINDER_AND_CL= EAR) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4019 death->work.type =3D BINDER_WORK_CLEAR_DEATH_NOTIFICATION; 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4020 if (thread->looper & 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4021 (BINDER_LOOPER_STATE_REGISTERED | 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4022 BINDER_LOOPER_STATE_ENTERED)) 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 4023 binder_enqueue_thread_work_ilocked( 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 4024 thread, &death->work); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4025 else { 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4026 binder_enqueue_work_ilocked( 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4027 &death->work, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4028 &proc->todo); 408c68b17aea2f drivers/android/binder.c Martijn Coenen 2017= -08-31 4029 binder_wakeup_proc_ilocked(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4030 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4031 } 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4032 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4033 } break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4034 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4035 default: 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 4036 pr_err("%d:%d unknown command %d\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4037 proc->pid, thread->pid, cmd); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4038 return -EINVAL; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4039 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4040 *consumed =3D ptr - buffer; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4041 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4042 return 0; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4043 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4044 = :::::: The code at line 3991 was first introduced by commit :::::: 355b0502f6efea0ff9492753888772c96972d2a3 Revert "Staging: android: d= elete android drivers" :::::: TO: Greg Kroah-Hartman :::::: CC: Greg Kroah-Hartman --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============8523118273133910366== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 AKYBAA== --===============8523118273133910366==--