From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4334987356673042944==" MIME-Version: 1.0 From: Stafford Horne To: kbuild-all@lists.01.org Subject: Re: [linux-stable-rc:linux-4.19.y 405/611] drivers/android/binder.c:3633: Error: unrecognized keyword/register name `l.lwz ?ap, 4(r21)' Date: Fri, 02 Jul 2021 08:26:27 +0900 Message-ID: In-Reply-To: <202107012249.7xHMpc5s-lkp@intel.com> List-Id: --===============4334987356673042944== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Thu, Jul 01, 2021 at 10:49:07PM +0800, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stab= le-rc.git linux-4.19.y > head: a834132bd465f9d7f4049be65648e01cf2533cb8 > commit: 74e42c22f2125bb07ffd9b0cccef120815e68725 [405/611] binder: Preven= t context manager from incrementing ref 0 > config: openrisc-randconfig-r021-20210630 (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/sbi= n/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-st= able-rc.git/commit/?id=3D74e42c22f2125bb07ffd9b0cccef120815e68725 > git remote add linux-stable-rc https://git.kernel.org/pub/scm/lin= ux/kernel/git/stable/linux-stable-rc.git > git fetch --no-tags linux-stable-rc linux-4.19.y > git checkout 74e42c22f2125bb07ffd9b0cccef120815e68725 > # save the attached .config to linux build tree > mkdir build_dir > COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dgcc-9.3.0 make.cros= s O=3Dbuild_dir ARCH=3Dopenrisc SHELL=3D/bin/bash drivers/android/ > = > 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:3633: Error: unrecognized keyword/register na= me `l.lwz ?ap,4(r21)' > drivers/android/binder.c:3638: Error: unrecognized keyword/register na= me `l.addi ?ap,r0,0' This is fixed by d877322bc1adcab9850732275670409e8bcca4c4 upstream. It seems it hasn't been backported to this branch yet. It did make it to 5= .8 and 5.4 stable trees. The backported patch sent to stable as: Message-Id: <20201018201651.2604140-2-shorne@gmail.com> -Stafford > vim +3633 drivers/android/binder.c > = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3331 = > fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar 20= 13-09-02 3332 static int binder_thread_write(struct binder_proc *proc, > fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar 20= 13-09-02 3333 struct binder_thread *thread, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3334 binder_uintptr_t binder_buffer, size_t size, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3335 binder_size_t *consumed) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3336 { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3337 uint32_t cmd; > 342e5c90b60134 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3338 struct binder_context *context =3D proc->context; > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3339 void __user *buffer =3D (void __user *)(uintptr_= t)binder_buffer; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3340 void __user *ptr =3D buffer + *consumed; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3341 void __user *end =3D buffer + size; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3342 = > 26549d17741035 drivers/android/binder.c Todd Kjos 20= 17-06-29 3343 while (ptr < end && thread->return_error.cmd =3D=3D BR_OK)= { > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3344 int ret; > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3345 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3346 if (get_user(cmd, (uint32_t __user *)ptr)) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3347 return -EFAULT; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3348 ptr +=3D sizeof(uint32_t); > 975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2012-10-16 3349 trace_binder_command(cmd); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3350 if (_IOC_NR(cmd) < ARRAY_SIZE(binder_stats.bc)) { > 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 20= 17-06-29 3351 atomic_inc(&binder_stats.bc[_IOC_NR(cmd)]); > 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 20= 17-06-29 3352 atomic_inc(&proc->stats.bc[_IOC_NR(cmd)]); > 0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 20= 17-06-29 3353 atomic_inc(&thread->stats.bc[_IOC_NR(cmd)]); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3354 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3355 switch (cmd) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3356 case BC_INCREFS: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3357 case BC_ACQUIRE: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3358 case BC_RELEASE: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3359 case BC_DECREFS: { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3360 uint32_t target; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3361 const char *debug_string; > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3362 bool strong =3D cmd =3D=3D BC_ACQUIRE || cmd =3D=3D BC_R= ELEASE; > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3363 bool increment =3D cmd =3D=3D BC_INCREFS || cmd =3D=3D B= C_ACQUIRE; > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3364 struct binder_ref_data rdata; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3365 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3366 if (get_user(target, (uint32_t __user *)ptr)) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3367 return -EFAULT; > c44b1231ff1170 drivers/android/binder.c Todd Kjos 20= 17-06-29 3368 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3369 ptr +=3D sizeof(uint32_t); > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3370 ret =3D -1; > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3371 if (increment && !target) { > c44b1231ff1170 drivers/android/binder.c Todd Kjos 20= 17-06-29 3372 struct binder_node *ctx_mgr_node; > c44b1231ff1170 drivers/android/binder.c Todd Kjos 20= 17-06-29 3373 mutex_lock(&context->context_mgr_node_lock); > c44b1231ff1170 drivers/android/binder.c Todd Kjos 20= 17-06-29 3374 ctx_mgr_node =3D context->binder_context_mgr_node; > 74e42c22f2125b drivers/android/binder.c Jann Horn 20= 20-07-27 3375 if (ctx_mgr_node) { > 74e42c22f2125b drivers/android/binder.c Jann Horn 20= 20-07-27 3376 if (ctx_mgr_node->proc =3D=3D proc) { > 74e42c22f2125b drivers/android/binder.c Jann Horn 20= 20-07-27 3377 binder_user_error("%d:%d context manager tried to acq= uire desc 0\n", > 74e42c22f2125b drivers/android/binder.c Jann Horn 20= 20-07-27 3378 proc->pid, thread->pid); > 74e42c22f2125b drivers/android/binder.c Jann Horn 20= 20-07-27 3379 mutex_unlock(&context->context_mgr_node_lock); > 74e42c22f2125b drivers/android/binder.c Jann Horn 20= 20-07-27 3380 return -EINVAL; > 74e42c22f2125b drivers/android/binder.c Jann Horn 20= 20-07-27 3381 } > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3382 ret =3D binder_inc_ref_for_node( > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3383 proc, ctx_mgr_node, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3384 strong, NULL, &rdata); > 74e42c22f2125b drivers/android/binder.c Jann Horn 20= 20-07-27 3385 } > c44b1231ff1170 drivers/android/binder.c Todd Kjos 20= 17-06-29 3386 mutex_unlock(&context->context_mgr_node_lock); > c44b1231ff1170 drivers/android/binder.c Todd Kjos 20= 17-06-29 3387 } > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3388 if (ret) > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3389 ret =3D binder_update_ref_for_handle( > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3390 proc, target, increment, strong, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3391 &rdata); > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3392 if (!ret && rdata.desc !=3D target) { > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3393 binder_user_error("%d:%d tried to acquire reference to = desc %d, got %d instead\n", > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3394 proc->pid, thread->pid, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3395 target, rdata.desc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3396 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3397 switch (cmd) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3398 case BC_INCREFS: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3399 debug_string =3D "IncRefs"; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3400 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3401 case BC_ACQUIRE: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3402 debug_string =3D "Acquire"; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3403 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3404 case BC_RELEASE: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3405 debug_string =3D "Release"; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3406 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3407 case BC_DECREFS: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3408 default: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3409 debug_string =3D "DecRefs"; > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3410 break; > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3411 } > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3412 if (ret) { > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3413 binder_user_error("%d:%d %s %d refcount change on inval= id ref %d ret %d\n", > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3414 proc->pid, thread->pid, debug_string, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3415 strong, target, ret); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3416 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3417 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3418 binder_debug(BINDER_DEBUG_USER_REFS, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3419 "%d:%d %s ref %d desc %d s %d w %d\n", > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3420 proc->pid, thread->pid, debug_string, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3421 rdata.debug_id, rdata.desc, rdata.strong, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3422 rdata.weak); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3423 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3424 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3425 case BC_INCREFS_DONE: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3426 case BC_ACQUIRE_DONE: { > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3427 binder_uintptr_t node_ptr; > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3428 binder_uintptr_t cookie; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3429 struct binder_node *node; > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3430 bool free_node; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3431 = > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3432 if (get_user(node_ptr, (binder_uintptr_t __use= r *)ptr)) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3433 return -EFAULT; > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3434 ptr +=3D sizeof(binder_uintptr_t); > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3435 if (get_user(cookie, (binder_uintptr_t __user = *)ptr)) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3436 return -EFAULT; > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3437 ptr +=3D sizeof(binder_uintptr_t); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3438 node =3D binder_get_node(proc, node_ptr); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3439 if (node =3D=3D NULL) { > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3440 binder_user_error("%d:%d %s u%016llx no match= \n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3441 proc->pid, thread->pid, > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3442 cmd =3D=3D BC_INCREFS_DONE ? > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3443 "BC_INCREFS_DONE" : > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3444 "BC_ACQUIRE_DONE", > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3445 (u64)node_ptr); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3446 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3447 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3448 if (cookie !=3D node->cookie) { > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3449 binder_user_error("%d:%d %s u%016llx node %d = cookie mismatch %016llx !=3D %016llx\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3450 proc->pid, thread->pid, > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3451 cmd =3D=3D BC_INCREFS_DONE ? > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3452 "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE", > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3453 (u64)node_ptr, node->debug_id, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3454 (u64)cookie, (u64)node->cookie); > adc1884222276d drivers/android/binder.c Todd Kjos 20= 17-06-29 3455 binder_put_node(node); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3456 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3457 } > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3458 binder_node_inner_lock(node); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3459 if (cmd =3D=3D BC_ACQUIRE_DONE) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3460 if (node->pending_strong_ref =3D=3D 0) { > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3461 binder_user_error("%d:%d BC_ACQUIRE_DONE node %d has n= o pending acquire request\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3462 proc->pid, thread->pid, > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3463 node->debug_id); > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3464 binder_node_inner_unlock(node); > adc1884222276d drivers/android/binder.c Todd Kjos 20= 17-06-29 3465 binder_put_node(node); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3466 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3467 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3468 node->pending_strong_ref =3D 0; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3469 } else { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3470 if (node->pending_weak_ref =3D=3D 0) { > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3471 binder_user_error("%d:%d BC_INCREFS_DONE node %d has n= o pending increfs request\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3472 proc->pid, thread->pid, > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3473 node->debug_id); > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3474 binder_node_inner_unlock(node); > adc1884222276d drivers/android/binder.c Todd Kjos 20= 17-06-29 3475 binder_put_node(node); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3476 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3477 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3478 node->pending_weak_ref =3D 0; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3479 } > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3480 free_node =3D binder_dec_node_nilocked(node, > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3481 cmd =3D=3D BC_ACQUIRE_DONE, 0); > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3482 WARN_ON(free_node); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3483 binder_debug(BINDER_DEBUG_USER_REFS, > adc1884222276d drivers/android/binder.c Todd Kjos 20= 17-06-29 3484 "%d:%d %s node %d ls %d lw %d tr %d\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3485 proc->pid, thread->pid, > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3486 cmd =3D=3D BC_INCREFS_DONE ? "BC_INCREFS_DONE" : "= BC_ACQUIRE_DONE", > adc1884222276d drivers/android/binder.c Todd Kjos 20= 17-06-29 3487 node->debug_id, node->local_strong_refs, > adc1884222276d drivers/android/binder.c Todd Kjos 20= 17-06-29 3488 node->local_weak_refs, node->tmp_refs); > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3489 binder_node_inner_unlock(node); > adc1884222276d drivers/android/binder.c Todd Kjos 20= 17-06-29 3490 binder_put_node(node); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3491 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3492 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3493 case BC_ATTEMPT_ACQUIRE: > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3494 pr_err("BC_ATTEMPT_ACQUIRE not supported\n"); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3495 return -EINVAL; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3496 case BC_ACQUIRE_RESULT: > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3497 pr_err("BC_ACQUIRE_RESULT not supported\n"); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3498 return -EINVAL; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3499 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3500 case BC_FREE_BUFFER: { > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3501 binder_uintptr_t data_ptr; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3502 struct binder_buffer *buffer; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3503 = > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3504 if (get_user(data_ptr, (binder_uintptr_t __use= r *)ptr)) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3505 return -EFAULT; > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3506 ptr +=3D sizeof(binder_uintptr_t); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3507 = > 53d311cfa19ad3 drivers/android/binder.c Todd Kjos 20= 17-06-29 3508 buffer =3D binder_alloc_prepare_to_free(&proc->alloc, > 19c987241ca121 drivers/android/binder.c Todd Kjos 20= 17-06-29 3509 data_ptr); > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3510 if (IS_ERR_OR_NULL(buffer)) { > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3511 if (PTR_ERR(buffer) =3D=3D -EPERM) { > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3512 binder_user_error( > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3513 "%d:%d BC_FREE_BUFFER u%016llx matched unreturned or = currently freeing buffer\n", > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3514 proc->pid, thread->pid, > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3515 (u64)data_ptr); > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3516 } else { > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3517 binder_user_error( > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3518 "%d:%d BC_FREE_BUFFER u%016llx no match\n", > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3519 proc->pid, thread->pid, > 553927d6aab993 drivers/android/binder.c Todd Kjos 20= 18-11-06 3520 (u64)data_ptr); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3521 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3522 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3523 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3524 binder_debug(BINDER_DEBUG_FREE_BUFFER, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3525 "%d:%d BC_FREE_BUFFER u%016llx found buf= fer %d for %s transaction\n", > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3526 proc->pid, thread->pid, (u64)data_ptr, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3527 buffer->debug_id, > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3528 buffer->transaction ? "active" : "finished"); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3529 = > 22068d49d09d2b drivers/android/binder.c Todd Kjos 20= 19-06-12 3530 binder_inner_proc_lock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3531 if (buffer->transaction) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3532 buffer->transaction->buffer =3D NULL; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3533 buffer->transaction =3D NULL; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3534 } > 22068d49d09d2b drivers/android/binder.c Todd Kjos 20= 19-06-12 3535 binder_inner_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3536 if (buffer->async_transaction && buffer->target_node) { > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3537 struct binder_node *buf_node; > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3538 struct binder_work *w; > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3539 = > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3540 buf_node =3D buffer->target_node; > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3541 binder_node_inner_lock(buf_node); > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3542 BUG_ON(!buf_node->has_async_transaction); > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3543 BUG_ON(buf_node->proc !=3D proc); > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3544 w =3D binder_dequeue_work_head_ilocked( > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3545 &buf_node->async_todo); > 3a6430ce462172 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3546 if (!w) { > 197410ad884eb1 drivers/android/binder.c Gustavo A. R. Silva 20= 18-01-23 3547 buf_node->has_async_transaction =3D false; > 3a6430ce462172 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3548 } else { > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3549 binder_enqueue_work_ilocked( > 3a6430ce462172 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3550 w, &proc->todo); > 3a6430ce462172 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3551 binder_wakeup_proc_ilocked(proc); > 3a6430ce462172 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3552 } > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3553 binder_node_inner_unlock(buf_node); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3554 } > 975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2012-10-16 3555 trace_binder_transaction_buffer_release(buffer= ); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3556 binder_transaction_buffer_release(proc, buffer, NULL); > 19c987241ca121 drivers/android/binder.c Todd Kjos 20= 17-06-29 3557 binder_alloc_free_buf(&proc->alloc, buffer); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3558 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3559 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3560 = > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3561 case BC_TRANSACTION_SG: > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3562 case BC_REPLY_SG: { > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3563 struct binder_transaction_data_sg tr; > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3564 = > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3565 if (copy_from_user(&tr, ptr, sizeof(tr))) > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3566 return -EFAULT; > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3567 ptr +=3D sizeof(tr); > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3568 binder_transaction(proc, thread, &tr.transaction_data, > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3569 cmd =3D=3D BC_REPLY_SG, tr.buffers_size); > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3570 break; > 7980240b6d63e0 drivers/android/binder.c Martijn Coenen 20= 17-02-03 3571 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3572 case BC_TRANSACTION: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3573 case BC_REPLY: { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3574 struct binder_transaction_data tr; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3575 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3576 if (copy_from_user(&tr, ptr, sizeof(tr))) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3577 return -EFAULT; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3578 ptr +=3D sizeof(tr); > 4bfac80af3a63f drivers/android/binder.c Martijn Coenen 20= 17-02-03 3579 binder_transaction(proc, thread, &tr, > 4bfac80af3a63f drivers/android/binder.c Martijn Coenen 20= 17-02-03 3580 cmd =3D=3D BC_REPLY, 0); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3581 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3582 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3583 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3584 case BC_REGISTER_LOOPER: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3585 binder_debug(BINDER_DEBUG_THREADS, > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3586 "%d:%d BC_REGISTER_LOOPER\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3587 proc->pid, thread->pid); > b3e6861283790d drivers/android/binder.c Todd Kjos 20= 17-06-29 3588 binder_inner_proc_lock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3589 if (thread->looper & BINDER_LOOPER_STATE_ENTERED) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3590 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3591 binder_user_error("%d:%d ERROR: BC_REGISTER_LOOPER call= ed after BC_ENTER_LOOPER\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3592 proc->pid, thread->pid); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3593 } else if (proc->requested_threads =3D=3D 0) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3594 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3595 binder_user_error("%d:%d ERROR: BC_REGISTER_LOOPER call= ed without request\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3596 proc->pid, thread->pid); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3597 } else { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3598 proc->requested_threads--; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3599 proc->requested_threads_started++; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3600 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3601 thread->looper |=3D BINDER_LOOPER_STATE_REGISTERED; > b3e6861283790d drivers/android/binder.c Todd Kjos 20= 17-06-29 3602 binder_inner_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3603 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3604 case BC_ENTER_LOOPER: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3605 binder_debug(BINDER_DEBUG_THREADS, > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3606 "%d:%d BC_ENTER_LOOPER\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3607 proc->pid, thread->pid); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3608 if (thread->looper & BINDER_LOOPER_STATE_REGISTERED) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3609 thread->looper |=3D BINDER_LOOPER_STATE_INVALID; > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3610 binder_user_error("%d:%d ERROR: BC_ENTER_LOOPER called = after BC_REGISTER_LOOPER\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3611 proc->pid, thread->pid); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3612 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3613 thread->looper |=3D BINDER_LOOPER_STATE_ENTERED; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3614 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3615 case BC_EXIT_LOOPER: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3616 binder_debug(BINDER_DEBUG_THREADS, > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3617 "%d:%d BC_EXIT_LOOPER\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3618 proc->pid, thread->pid); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3619 thread->looper |=3D BINDER_LOOPER_STATE_EXITED; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3620 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3621 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3622 case BC_REQUEST_DEATH_NOTIFICATION: > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3623 case BC_CLEAR_DEATH_NOTIFICATION: { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3624 uint32_t target; > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3625 binder_uintptr_t cookie; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3626 struct binder_ref *ref; > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3627 struct binder_ref_death *death =3D NULL; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3628 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3629 if (get_user(target, (uint32_t __user *)ptr)) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3630 return -EFAULT; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3631 ptr +=3D sizeof(uint32_t); > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3632 if (get_user(cookie, (binder_uintptr_t __user = *)ptr)) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 @3633 return -EFAULT; > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3634 ptr +=3D sizeof(binder_uintptr_t); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3635 if (cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION) { > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3636 /* > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3637 * Allocate memory for death notification > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3638 * before taking lock > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3639 */ > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3640 death =3D kzalloc(sizeof(*death), GFP_KERNEL); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3641 if (death =3D=3D NULL) { > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3642 WARN_ON(thread->return_error.cmd !=3D > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3643 BR_OK); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3644 thread->return_error.cmd =3D BR_ERROR; > 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 20= 17-11-15 3645 binder_enqueue_thread_work( > 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 20= 17-11-15 3646 thread, > 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 20= 17-11-15 3647 &thread->return_error.work); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3648 binder_debug( > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3649 BINDER_DEBUG_FAILED_TRANSACTION, > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3650 "%d:%d BC_REQUEST_DEATH_NOTIFICATION failed\n", > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3651 proc->pid, thread->pid); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3652 break; > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3653 } > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3654 } > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3655 binder_proc_lock(proc); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3656 ref =3D binder_get_ref_olocked(proc, target, false); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3657 if (ref =3D=3D NULL) { > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3658 binder_user_error("%d:%d %s invalid ref %d\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3659 proc->pid, thread->pid, > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3660 cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION ? > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3661 "BC_REQUEST_DEATH_NOTIFICATION" : > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3662 "BC_CLEAR_DEATH_NOTIFICATION", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3663 target); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3664 binder_proc_unlock(proc); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3665 kfree(death); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3666 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3667 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3668 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3669 binder_debug(BINDER_DEBUG_DEATH_NOTIFICATION, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3670 "%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 20= 11-11-30 3671 proc->pid, thread->pid, > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3672 cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION ? > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3673 "BC_REQUEST_DEATH_NOTIFICATION" : > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3674 "BC_CLEAR_DEATH_NOTIFICATION", > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3675 (u64)cookie, ref->data.debug_id, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3676 ref->data.desc, ref->data.strong, > 372e3147df7016 drivers/android/binder.c Todd Kjos 20= 17-06-29 3677 ref->data.weak, ref->node->debug_id); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3678 = > ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 20= 17-06-29 3679 binder_node_lock(ref->node); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3680 if (cmd =3D=3D BC_REQUEST_DEATH_NOTIFICATION) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3681 if (ref->death) { > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3682 binder_user_error("%d:%d BC_REQUEST_DEATH_NOTIFICATION= death notification already set\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3683 proc->pid, thread->pid); > ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 20= 17-06-29 3684 binder_node_unlock(ref->node); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3685 binder_proc_unlock(proc); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3686 kfree(death); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3687 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3688 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3689 binder_stats_created(BINDER_STAT_DEATH); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3690 INIT_LIST_HEAD(&death->work.entry); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3691 death->cookie =3D cookie; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3692 ref->death =3D death; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3693 if (ref->node->proc =3D=3D NULL) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3694 ref->death->work.type =3D BINDER_WORK_DEAD_BINDER; > bb74562a7f8398 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3695 = > 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3696 binder_inner_proc_lock(proc); > 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3697 binder_enqueue_work_ilocked( > bb74562a7f8398 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3698 &ref->death->work, &proc->todo); > bb74562a7f8398 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3699 binder_wakeup_proc_ilocked(proc); > 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3700 binder_inner_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3701 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3702 } else { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3703 if (ref->death =3D=3D NULL) { > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3704 binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION d= eath notification not active\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3705 proc->pid, thread->pid); > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3706 binder_node_unlock(ref->node); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3707 binder_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3708 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3709 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3710 death =3D ref->death; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3711 if (death->cookie !=3D cookie) { > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3712 binder_user_error("%d:%d BC_CLEAR_DEATH_NOTI= FICATION death notification cookie mismatch %016llx !=3D %016llx\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3713 proc->pid, thread->pid, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3714 (u64)death->cookie, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3715 (u64)cookie); > 673068eee8560d drivers/android/binder.c Todd Kjos 20= 17-06-29 3716 binder_node_unlock(ref->node); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3717 binder_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3718 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3719 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3720 ref->death =3D NULL; > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3721 binder_inner_proc_lock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3722 if (list_empty(&death->work.entry)) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3723 death->work.type =3D BINDER_WORK_CLEAR_DEATH_NOTIFICAT= ION; > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3724 if (thread->looper & > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3725 (BINDER_LOOPER_STATE_REGISTERED | > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3726 BINDER_LOOPER_STATE_ENTERED)) > 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 20= 17-11-15 3727 binder_enqueue_thread_work_ilocked( > 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 20= 17-11-15 3728 thread, > 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 20= 17-11-15 3729 &death->work); > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3730 else { > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3731 binder_enqueue_work_ilocked( > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3732 &death->work, > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3733 &proc->todo); > 1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 20= 17-08-31 3734 binder_wakeup_proc_ilocked( > 408c68b17aea2f drivers/android/binder.c Martijn Coenen 20= 17-08-31 3735 proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3736 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3737 } else { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3738 BUG_ON(death->work.type !=3D BINDER_WORK_DEAD_BINDER); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3739 death->work.type =3D BINDER_WORK_DEAD_BINDER_AND_CLEAR; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3740 } > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3741 binder_inner_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3742 } > ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 20= 17-06-29 3743 binder_node_unlock(ref->node); > 2c1838dc6817dd drivers/android/binder.c Todd Kjos 20= 17-06-29 3744 binder_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3745 } break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3746 case BC_DEAD_BINDER_DONE: { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3747 struct binder_work *w; > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3748 binder_uintptr_t cookie; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3749 struct binder_ref_death *death =3D NULL; > 10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee 20= 14-05-01 3750 = > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3751 if (get_user(cookie, (binder_uintptr_t __user = *)ptr)) > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3752 return -EFAULT; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3753 = > 7a64cd887fdb97 drivers/android/binder.c Lisa Du 20= 16-02-17 3754 ptr +=3D sizeof(cookie); > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3755 binder_inner_proc_lock(proc); > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3756 list_for_each_entry(w, &proc->delivered_death, > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3757 entry) { > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3758 struct binder_ref_death *tmp_death =3D > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3759 container_of(w, > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3760 struct binder_ref_death, > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3761 work); > 10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee 20= 14-05-01 3762 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3763 if (tmp_death->cookie =3D=3D cookie) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3764 death =3D tmp_death; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3765 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3766 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3767 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3768 binder_debug(BINDER_DEBUG_DEAD_BINDER, > 8ca86f1639ec58 drivers/android/binder.c Todd Kjos 20= 18-02-07 3769 "%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 3770 proc->pid, thread->pid, (u64)cookie, > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3771 death); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3772 if (death =3D=3D NULL) { > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3773 binder_user_error("%d:%d BC_DEAD_BINDER_DONE = %016llx not found\n", > da49889deb34d3 drivers/staging/android/binder.c Arve Hj=C3=B8nnev=C3=A5g = 2014-02-21 3774 proc->pid, thread->pid, (u64)cookie); > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3775 binder_inner_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3776 break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3777 } > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3778 binder_dequeue_work_ilocked(&death->work); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3779 if (death->work.type =3D=3D BINDER_WORK_DEAD_BINDER_AND_= CLEAR) { > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3780 death->work.type =3D BINDER_WORK_CLEAR_DEATH_NOTIFICATI= ON; > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3781 if (thread->looper & > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3782 (BINDER_LOOPER_STATE_REGISTERED | > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3783 BINDER_LOOPER_STATE_ENTERED)) > 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 20= 17-11-15 3784 binder_enqueue_thread_work_ilocked( > 148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 20= 17-11-15 3785 thread, &death->work); > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3786 else { > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3787 binder_enqueue_work_ilocked( > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3788 &death->work, > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3789 &proc->todo); > 408c68b17aea2f drivers/android/binder.c Martijn Coenen 20= 17-08-31 3790 binder_wakeup_proc_ilocked(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3791 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3792 } > 72196393a5e3d2 drivers/android/binder.c Todd Kjos 20= 17-06-29 3793 binder_inner_proc_unlock(proc); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3794 } break; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3795 = > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3796 default: > 56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 20= 12-10-30 3797 pr_err("%d:%d unknown command %d\n", > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3798 proc->pid, thread->pid, cmd); > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3799 return -EINVAL; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3800 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3801 *consumed =3D ptr - buffer; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3802 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3803 return 0; > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3804 } > 355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 20= 11-11-30 3805 = > = > :::::: The code at line 3633 was first introduced by commit > :::::: 355b0502f6efea0ff9492753888772c96972d2a3 Revert "Staging: android:= delete 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 > _______________________________________________ > kbuild-all mailing list -- kbuild-all(a)lists.01.org > To unsubscribe send an email to kbuild-all-leave(a)lists.01.org --===============4334987356673042944==--