From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5506965726862508298==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH v2 3/6] openrisc: uaccess: Use static inline function in access_ok Date: Fri, 07 Aug 2020 04:16:24 +0800 Message-ID: <202008070457.GiT97QUD%lkp@intel.com> In-Reply-To: <20200805210725.310301-4-shorne@gmail.com> List-Id: --===============5506965726862508298== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Stafford, I love your patch! Yet something to improve: [auto build test ERROR on linux/master] [also build test ERROR on linus/master v5.8] [cannot apply to openrisc/for-next next-20200806] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Stafford-Horne/OpenRISC-he= ader-and-sparse-warning-fixes-for-5-9/20200806-050901 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = bcf876870b95592b52519ed4aafcf9d95999bc9c config: openrisc-randconfig-r004-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 # 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:3861: Error: unrecognized keyword/register name= `l.lwz ?ap,4(r24)' drivers/android/binder.c:3866: Error: unrecognized keyword/register name= `l.addi ?ap,r0,0' vim +3861 drivers/android/binder.c 44d8047f1d87ad drivers/android/binder.c Todd Kjos 2018= -08-28 3594 = fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar 2013= -09-02 3595 static int binder_thread_write(struct binder_proc *proc, fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar 2013= -09-02 3596 struct binder_thread *thread, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3597 binder_uintptr_t binder_buffer, size_t size, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3598 binder_size_t *consumed) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3599 { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3600 uint32_t cmd; 342e5c90b60134 drivers/android/binder.c Martijn Coenen 2017= -02-03 3601 struct binder_context *context =3D proc->context; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3602 void __user *buffer =3D (void __user *)(uintptr_t)= binder_buffer; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3603 void __user *ptr =3D buffer + *consumed; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3604 void __user *end =3D buffer + size; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3605 = 26549d17741035 drivers/android/binder.c Todd Kjos 2017= -06-29 3606 while (ptr < end && thread->return_error.cmd =3D=3D BR_OK) { 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3607 int ret; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3608 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3609 if (get_user(cmd, (uint32_t __user *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3610 return -EFAULT; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3611 ptr +=3D sizeof(uint32_t); 975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2012-10-16 3612 trace_binder_command(cmd); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3613 if (_IOC_NR(cmd) < ARRAY_SIZE(binder_stats.bc)) { 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017= -06-29 3614 atomic_inc(&binder_stats.bc[_IOC_NR(cmd)]); 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017= -06-29 3615 atomic_inc(&proc->stats.bc[_IOC_NR(cmd)]); 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017= -06-29 3616 atomic_inc(&thread->stats.bc[_IOC_NR(cmd)]); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3617 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3618 switch (cmd) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3619 case BC_INCREFS: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3620 case BC_ACQUIRE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3621 case BC_RELEASE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3622 case BC_DECREFS: { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3623 uint32_t target; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3624 const char *debug_string; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3625 bool strong =3D cmd =3D=3D BC_ACQUIRE || cmd =3D=3D BC_REL= EASE; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3626 bool increment =3D cmd =3D=3D BC_INCREFS || cmd =3D=3D BC_= ACQUIRE; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3627 struct binder_ref_data rdata; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3628 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3629 if (get_user(target, (uint32_t __user *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3630 return -EFAULT; c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3631 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3632 ptr +=3D sizeof(uint32_t); 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3633 ret =3D -1; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3634 if (increment && !target) { c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3635 struct binder_node *ctx_mgr_node; c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3636 mutex_lock(&context->context_mgr_node_lock); c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3637 ctx_mgr_node =3D context->binder_context_mgr_node; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3638 if (ctx_mgr_node) 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3639 ret =3D binder_inc_ref_for_node( 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3640 proc, ctx_mgr_node, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3641 strong, NULL, &rdata); c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3642 mutex_unlock(&context->context_mgr_node_lock); c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017= -06-29 3643 } 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3644 if (ret) 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3645 ret =3D binder_update_ref_for_handle( 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3646 proc, target, increment, strong, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3647 &rdata); 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3648 if (!ret && rdata.desc !=3D target) { 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3649 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 3650 proc->pid, thread->pid, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3651 target, rdata.desc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3652 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3653 switch (cmd) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3654 case BC_INCREFS: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3655 debug_string =3D "IncRefs"; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3656 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3657 case BC_ACQUIRE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3658 debug_string =3D "Acquire"; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3659 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3660 case BC_RELEASE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3661 debug_string =3D "Release"; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3662 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3663 case BC_DECREFS: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3664 default: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3665 debug_string =3D "DecRefs"; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3666 break; 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3667 } 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3668 if (ret) { 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3669 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 3670 proc->pid, thread->pid, debug_string, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3671 strong, target, ret); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3672 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3673 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3674 binder_debug(BINDER_DEBUG_USER_REFS, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3675 "%d:%d %s ref %d desc %d s %d w %d\n", 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3676 proc->pid, thread->pid, debug_string, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3677 rdata.debug_id, rdata.desc, rdata.strong, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3678 rdata.weak); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3679 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3680 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3681 case BC_INCREFS_DONE: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3682 case BC_ACQUIRE_DONE: { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3683 binder_uintptr_t node_ptr; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3684 binder_uintptr_t cookie; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3685 struct binder_node *node; 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3686 bool free_node; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3687 = da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3688 if (get_user(node_ptr, (binder_uintptr_t __user = *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3689 return -EFAULT; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3690 ptr +=3D sizeof(binder_uintptr_t); da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3691 if (get_user(cookie, (binder_uintptr_t __user *)= ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3692 return -EFAULT; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3693 ptr +=3D sizeof(binder_uintptr_t); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3694 node =3D binder_get_node(proc, node_ptr); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3695 if (node =3D=3D NULL) { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3696 binder_user_error("%d:%d %s u%016llx no match\n= ", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3697 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3698 cmd =3D=3D BC_INCREFS_DONE ? 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3699 "BC_INCREFS_DONE" : 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3700 "BC_ACQUIRE_DONE", da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3701 (u64)node_ptr); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3702 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3703 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3704 if (cookie !=3D node->cookie) { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3705 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 3706 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3707 cmd =3D=3D BC_INCREFS_DONE ? 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3708 "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE", da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3709 (u64)node_ptr, node->debug_id, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3710 (u64)cookie, (u64)node->cookie); adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3711 binder_put_node(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3712 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3713 } 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3714 binder_node_inner_lock(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3715 if (cmd =3D=3D BC_ACQUIRE_DONE) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3716 if (node->pending_strong_ref =3D=3D 0) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3717 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 3718 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3719 node->debug_id); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3720 binder_node_inner_unlock(node); adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3721 binder_put_node(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3722 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3723 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3724 node->pending_strong_ref =3D 0; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3725 } else { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3726 if (node->pending_weak_ref =3D=3D 0) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3727 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 3728 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3729 node->debug_id); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3730 binder_node_inner_unlock(node); adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3731 binder_put_node(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3732 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3733 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3734 node->pending_weak_ref =3D 0; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3735 } 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3736 free_node =3D binder_dec_node_nilocked(node, 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3737 cmd =3D=3D BC_ACQUIRE_DONE, 0); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3738 WARN_ON(free_node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3739 binder_debug(BINDER_DEBUG_USER_REFS, adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3740 "%d:%d %s node %d ls %d lw %d tr %d\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3741 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3742 cmd =3D=3D BC_INCREFS_DONE ? "BC_INCREFS_DONE" : "BC= _ACQUIRE_DONE", adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3743 node->debug_id, node->local_strong_refs, adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3744 node->local_weak_refs, node->tmp_refs); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3745 binder_node_inner_unlock(node); adc1884222276d drivers/android/binder.c Todd Kjos 2017= -06-29 3746 binder_put_node(node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3747 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3748 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3749 case BC_ATTEMPT_ACQUIRE: 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3750 pr_err("BC_ATTEMPT_ACQUIRE not supported\n"); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3751 return -EINVAL; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3752 case BC_ACQUIRE_RESULT: 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3753 pr_err("BC_ACQUIRE_RESULT not supported\n"); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3754 return -EINVAL; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3755 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3756 case BC_FREE_BUFFER: { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3757 binder_uintptr_t data_ptr; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3758 struct binder_buffer *buffer; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3759 = da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3760 if (get_user(data_ptr, (binder_uintptr_t __user = *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3761 return -EFAULT; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3762 ptr +=3D sizeof(binder_uintptr_t); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3763 = 53d311cfa19ad3 drivers/android/binder.c Todd Kjos 2017= -06-29 3764 buffer =3D binder_alloc_prepare_to_free(&proc->alloc, 19c987241ca121 drivers/android/binder.c Todd Kjos 2017= -06-29 3765 data_ptr); 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3766 if (IS_ERR_OR_NULL(buffer)) { 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3767 if (PTR_ERR(buffer) =3D=3D -EPERM) { 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3768 binder_user_error( 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3769 "%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 3770 proc->pid, thread->pid, 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3771 (u64)data_ptr); 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3772 } else { 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3773 binder_user_error( 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3774 "%d:%d BC_FREE_BUFFER u%016llx no match\n", 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3775 proc->pid, thread->pid, 7bada55ab50697 drivers/android/binder.c Todd Kjos 2018= -11-06 3776 (u64)data_ptr); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3777 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3778 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3779 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3780 binder_debug(BINDER_DEBUG_FREE_BUFFER, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3781 "%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 3782 proc->pid, thread->pid, (u64)data_ptr, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3783 buffer->debug_id, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3784 buffer->transaction ? "active" : "finished"); 44d8047f1d87ad drivers/android/binder.c Todd Kjos 2018= -08-28 3785 binder_free_buf(proc, buffer); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3786 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3787 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3788 = 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3789 case BC_TRANSACTION_SG: 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3790 case BC_REPLY_SG: { 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3791 struct binder_transaction_data_sg tr; 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3792 = 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3793 if (copy_from_user(&tr, ptr, sizeof(tr))) 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3794 return -EFAULT; 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3795 ptr +=3D sizeof(tr); 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3796 binder_transaction(proc, thread, &tr.transaction_data, 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3797 cmd =3D=3D BC_REPLY_SG, tr.buffers_size); 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3798 break; 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017= -02-03 3799 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3800 case BC_TRANSACTION: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3801 case BC_REPLY: { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3802 struct binder_transaction_data tr; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3803 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3804 if (copy_from_user(&tr, ptr, sizeof(tr))) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3805 return -EFAULT; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3806 ptr +=3D sizeof(tr); 4bfac80af3a63f drivers/android/binder.c Martijn Coenen 2017= -02-03 3807 binder_transaction(proc, thread, &tr, 4bfac80af3a63f drivers/android/binder.c Martijn Coenen 2017= -02-03 3808 cmd =3D=3D BC_REPLY, 0); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3809 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3810 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3811 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3812 case BC_REGISTER_LOOPER: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3813 binder_debug(BINDER_DEBUG_THREADS, 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3814 "%d:%d BC_REGISTER_LOOPER\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3815 proc->pid, thread->pid); b3e6861283790d drivers/android/binder.c Todd Kjos 2017= -06-29 3816 binder_inner_proc_lock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3817 if (thread->looper & BINDER_LOOPER_STATE_ENTERED) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3818 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3819 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 3820 proc->pid, thread->pid); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3821 } else if (proc->requested_threads =3D=3D 0) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3822 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3823 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 3824 proc->pid, thread->pid); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3825 } else { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3826 proc->requested_threads--; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3827 proc->requested_threads_started++; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3828 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3829 thread->looper |=3D BINDER_LOOPER_STATE_REGISTERED; b3e6861283790d drivers/android/binder.c Todd Kjos 2017= -06-29 3830 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3831 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3832 case BC_ENTER_LOOPER: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3833 binder_debug(BINDER_DEBUG_THREADS, 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3834 "%d:%d BC_ENTER_LOOPER\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 if (thread->looper & BINDER_LOOPER_STATE_REGISTERED) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3837 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3838 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 3839 proc->pid, thread->pid); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3840 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3841 thread->looper |=3D BINDER_LOOPER_STATE_ENTERED; 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_EXIT_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_EXIT_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 thread->looper |=3D BINDER_LOOPER_STATE_EXITED; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3848 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3849 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3850 case BC_REQUEST_DEATH_NOTIFICATION: 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3851 case BC_CLEAR_DEATH_NOTIFICATION: { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3852 uint32_t target; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3853 binder_uintptr_t cookie; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3854 struct binder_ref *ref; 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3855 struct binder_ref_death *death =3D NULL; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3856 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3857 if (get_user(target, (uint32_t __user *)ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3858 return -EFAULT; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3859 ptr +=3D sizeof(uint32_t); da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3860 if (get_user(cookie, (binder_uintptr_t __user *)= ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 @3861 return -EFAULT; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3862 ptr +=3D sizeof(binder_uintptr_t); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3863 if (cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION) { 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3864 /* 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3865 * Allocate memory for death notification 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3866 * before taking lock 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3867 */ 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3868 death =3D kzalloc(sizeof(*death), GFP_KERNEL); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3869 if (death =3D=3D NULL) { 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3870 WARN_ON(thread->return_error.cmd !=3D 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3871 BR_OK); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3872 thread->return_error.cmd =3D BR_ERROR; 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3873 binder_enqueue_thread_work( 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3874 thread, 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3875 &thread->return_error.work); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3876 binder_debug( 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3877 BINDER_DEBUG_FAILED_TRANSACTION, 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3878 "%d:%d BC_REQUEST_DEATH_NOTIFICATION failed\n", 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3879 proc->pid, thread->pid); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3880 break; 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3881 } 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3882 } 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3883 binder_proc_lock(proc); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3884 ref =3D binder_get_ref_olocked(proc, target, false); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3885 if (ref =3D=3D NULL) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3886 binder_user_error("%d:%d %s invalid ref %d\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3887 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3888 cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION ? 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3889 "BC_REQUEST_DEATH_NOTIFICATION" : 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3890 "BC_CLEAR_DEATH_NOTIFICATION", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3891 target); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3892 binder_proc_unlock(proc); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3893 kfree(death); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3894 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3895 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3896 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3897 binder_debug(BINDER_DEBUG_DEATH_NOTIFICATION, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3898 "%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 3899 proc->pid, thread->pid, 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3900 cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION ? 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3901 "BC_REQUEST_DEATH_NOTIFICATION" : 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3902 "BC_CLEAR_DEATH_NOTIFICATION", 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3903 (u64)cookie, ref->data.debug_id, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3904 ref->data.desc, ref->data.strong, 372e3147df7016 drivers/android/binder.c Todd Kjos 2017= -06-29 3905 ref->data.weak, ref->node->debug_id); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3906 = ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017= -06-29 3907 binder_node_lock(ref->node); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3908 if (cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3909 if (ref->death) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3910 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 3911 proc->pid, thread->pid); ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017= -06-29 3912 binder_node_unlock(ref->node); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3913 binder_proc_unlock(proc); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3914 kfree(death); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3915 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3916 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3917 binder_stats_created(BINDER_STAT_DEATH); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3918 INIT_LIST_HEAD(&death->work.entry); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3919 death->cookie =3D cookie; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3920 ref->death =3D death; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3921 if (ref->node->proc =3D=3D NULL) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3922 ref->death->work.type =3D BINDER_WORK_DEAD_BINDER; bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017= -08-31 3923 = 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017= -08-31 3924 binder_inner_proc_lock(proc); 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017= -08-31 3925 binder_enqueue_work_ilocked( bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017= -08-31 3926 &ref->death->work, &proc->todo); bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017= -08-31 3927 binder_wakeup_proc_ilocked(proc); 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017= -08-31 3928 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3929 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3930 } else { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3931 if (ref->death =3D=3D NULL) { 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 3932 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 3933 proc->pid, thread->pid); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3934 binder_node_unlock(ref->node); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3935 binder_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3936 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3937 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3938 death =3D ref->death; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3939 if (death->cookie !=3D cookie) { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3940 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 3941 proc->pid, thread->pid, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3942 (u64)death->cookie, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3943 (u64)cookie); 673068eee8560d drivers/android/binder.c Todd Kjos 2017= -06-29 3944 binder_node_unlock(ref->node); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3945 binder_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3946 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3947 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3948 ref->death =3D NULL; 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3949 binder_inner_proc_lock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3950 if (list_empty(&death->work.entry)) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3951 death->work.type =3D BINDER_WORK_CLEAR_DEATH_NOTIFICATIO= N; 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3952 if (thread->looper & 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3953 (BINDER_LOOPER_STATE_REGISTERED | 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3954 BINDER_LOOPER_STATE_ENTERED)) 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3955 binder_enqueue_thread_work_ilocked( 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3956 thread, 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 3957 &death->work); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3958 else { 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3959 binder_enqueue_work_ilocked( 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3960 &death->work, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3961 &proc->todo); 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017= -08-31 3962 binder_wakeup_proc_ilocked( 408c68b17aea2f drivers/android/binder.c Martijn Coenen 2017= -08-31 3963 proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3964 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3965 } else { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3966 BUG_ON(death->work.type !=3D BINDER_WORK_DEAD_BINDER); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3967 death->work.type =3D BINDER_WORK_DEAD_BINDER_AND_CLEAR; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3968 } 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3969 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3970 } ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017= -06-29 3971 binder_node_unlock(ref->node); 2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017= -06-29 3972 binder_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3973 } break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3974 case BC_DEAD_BINDER_DONE: { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3975 struct binder_work *w; da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3976 binder_uintptr_t cookie; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3977 struct binder_ref_death *death =3D NULL; 10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee 2014= -05-01 3978 = da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3979 if (get_user(cookie, (binder_uintptr_t __user *)= ptr)) 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3980 return -EFAULT; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3981 = 7a64cd887fdb97 drivers/android/binder.c Lisa Du 2016= -02-17 3982 ptr +=3D sizeof(cookie); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3983 binder_inner_proc_lock(proc); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3984 list_for_each_entry(w, &proc->delivered_death, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3985 entry) { 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3986 struct binder_ref_death *tmp_death =3D 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3987 container_of(w, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3988 struct binder_ref_death, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 3989 work); 10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee 2014= -05-01 3990 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3991 if (tmp_death->cookie =3D=3D cookie) { 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3992 death =3D tmp_death; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3993 break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3994 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3995 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 3996 binder_debug(BINDER_DEBUG_DEAD_BINDER, 8ca86f1639ec58 drivers/android/binder.c Todd Kjos 2018= -02-07 3997 "%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 3998 proc->pid, thread->pid, (u64)cookie, da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3999 death); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4000 if (death =3D=3D NULL) { da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 4001 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 4002 proc->pid, thread->pid, (u64)cookie); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4003 binder_inner_proc_unlock(proc); 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 } 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4006 binder_dequeue_work_ilocked(&death->work); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4007 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 4008 death->work.type =3D BINDER_WORK_CLEAR_DEATH_NOTIFICATION; 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4009 if (thread->looper & 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4010 (BINDER_LOOPER_STATE_REGISTERED | 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4011 BINDER_LOOPER_STATE_ENTERED)) 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 4012 binder_enqueue_thread_work_ilocked( 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017= -11-15 4013 thread, &death->work); 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4014 else { 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4015 binder_enqueue_work_ilocked( 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4016 &death->work, 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4017 &proc->todo); 408c68b17aea2f drivers/android/binder.c Martijn Coenen 2017= -08-31 4018 binder_wakeup_proc_ilocked(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4019 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4020 } 72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017= -06-29 4021 binder_inner_proc_unlock(proc); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4022 } break; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4023 = 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4024 default: 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012= -10-30 4025 pr_err("%d:%d unknown command %d\n", 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4026 proc->pid, thread->pid, cmd); 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4027 return -EINVAL; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4028 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4029 *consumed =3D ptr - buffer; 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 return 0; 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4032 } 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011= -11-30 4033 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============5506965726862508298== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 --===============5506965726862508298==--