All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-stable-rc:linux-4.19.y 405/611] drivers/android/binder.c:3633: Error: unrecognized keyword/register name `l.lwz ?ap, 4(r21)'
@ 2021-07-01 14:49 kernel test robot
  2021-07-01 23:26 ` Stafford Horne
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2021-07-01 14:49 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 59025 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
head:   a834132bd465f9d7f4049be65648e01cf2533cb8
commit: 74e42c22f2125bb07ffd9b0cccef120815e68725 [405/611] binder: Prevent 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=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=74e42c22f2125bb07ffd9b0cccef120815e68725
        git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/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=$HOME/0day COMPILER=gcc-9.3.0 make.cross O=build_dir ARCH=openrisc SHELL=/bin/bash drivers/android/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/android/binder.c: Assembler messages:
>> drivers/android/binder.c:3633: Error: unrecognized keyword/register name `l.lwz ?ap,4(r21)'
   drivers/android/binder.c:3638: Error: unrecognized keyword/register name `l.addi ?ap,r0,0'


vim +3633 drivers/android/binder.c

355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3331  
fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar           2013-09-02  3332  static int binder_thread_write(struct binder_proc *proc,
fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar           2013-09-02  3333  			struct binder_thread *thread,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3334  			binder_uintptr_t binder_buffer, size_t size,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3335  			binder_size_t *consumed)
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3336  {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3337  	uint32_t cmd;
342e5c90b60134 drivers/android/binder.c         Martijn Coenen         2017-02-03  3338  	struct binder_context *context = proc->context;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3339  	void __user *buffer = (void __user *)(uintptr_t)binder_buffer;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3340  	void __user *ptr = buffer + *consumed;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3341  	void __user *end = buffer + size;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3342  
26549d17741035 drivers/android/binder.c         Todd Kjos              2017-06-29  3343  	while (ptr < end && thread->return_error.cmd == BR_OK) {
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3344  		int ret;
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3345  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3346  		if (get_user(cmd, (uint32_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3347  			return -EFAULT;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3348  		ptr += sizeof(uint32_t);
975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hjønnevåg         2012-10-16  3349  		trace_binder_command(cmd);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3350  		if (_IOC_NR(cmd) < ARRAY_SIZE(binder_stats.bc)) {
0953c7976c36ce drivers/android/binder.c         Badhri Jagan Sridharan 2017-06-29  3351  			atomic_inc(&binder_stats.bc[_IOC_NR(cmd)]);
0953c7976c36ce drivers/android/binder.c         Badhri Jagan Sridharan 2017-06-29  3352  			atomic_inc(&proc->stats.bc[_IOC_NR(cmd)]);
0953c7976c36ce drivers/android/binder.c         Badhri Jagan Sridharan 2017-06-29  3353  			atomic_inc(&thread->stats.bc[_IOC_NR(cmd)]);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3354  		}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3355  		switch (cmd) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3356  		case BC_INCREFS:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3357  		case BC_ACQUIRE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3358  		case BC_RELEASE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3359  		case BC_DECREFS: {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3360  			uint32_t target;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3361  			const char *debug_string;
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3362  			bool strong = cmd == BC_ACQUIRE || cmd == BC_RELEASE;
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3363  			bool increment = cmd == BC_INCREFS || cmd == BC_ACQUIRE;
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3364  			struct binder_ref_data rdata;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3365  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3366  			if (get_user(target, (uint32_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3367  				return -EFAULT;
c44b1231ff1170 drivers/android/binder.c         Todd Kjos              2017-06-29  3368  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3369  			ptr += sizeof(uint32_t);
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3370  			ret = -1;
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3371  			if (increment && !target) {
c44b1231ff1170 drivers/android/binder.c         Todd Kjos              2017-06-29  3372  				struct binder_node *ctx_mgr_node;
c44b1231ff1170 drivers/android/binder.c         Todd Kjos              2017-06-29  3373  				mutex_lock(&context->context_mgr_node_lock);
c44b1231ff1170 drivers/android/binder.c         Todd Kjos              2017-06-29  3374  				ctx_mgr_node = context->binder_context_mgr_node;
74e42c22f2125b drivers/android/binder.c         Jann Horn              2020-07-27  3375  				if (ctx_mgr_node) {
74e42c22f2125b drivers/android/binder.c         Jann Horn              2020-07-27  3376  					if (ctx_mgr_node->proc == proc) {
74e42c22f2125b drivers/android/binder.c         Jann Horn              2020-07-27  3377  						binder_user_error("%d:%d context manager tried to acquire desc 0\n",
74e42c22f2125b drivers/android/binder.c         Jann Horn              2020-07-27  3378  								  proc->pid, thread->pid);
74e42c22f2125b drivers/android/binder.c         Jann Horn              2020-07-27  3379  						mutex_unlock(&context->context_mgr_node_lock);
74e42c22f2125b drivers/android/binder.c         Jann Horn              2020-07-27  3380  						return -EINVAL;
74e42c22f2125b drivers/android/binder.c         Jann Horn              2020-07-27  3381  					}
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3382  					ret = binder_inc_ref_for_node(
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3383  							proc, ctx_mgr_node,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3384  							strong, NULL, &rdata);
74e42c22f2125b drivers/android/binder.c         Jann Horn              2020-07-27  3385  				}
c44b1231ff1170 drivers/android/binder.c         Todd Kjos              2017-06-29  3386  				mutex_unlock(&context->context_mgr_node_lock);
c44b1231ff1170 drivers/android/binder.c         Todd Kjos              2017-06-29  3387  			}
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3388  			if (ret)
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3389  				ret = binder_update_ref_for_handle(
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3390  						proc, target, increment, strong,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3391  						&rdata);
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3392  			if (!ret && rdata.desc != target) {
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-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              2017-06-29  3394  					proc->pid, thread->pid,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3395  					target, rdata.desc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3396  			}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3397  			switch (cmd) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3398  			case BC_INCREFS:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3399  				debug_string = "IncRefs";
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3400  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3401  			case BC_ACQUIRE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3402  				debug_string = "Acquire";
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3403  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3404  			case BC_RELEASE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3405  				debug_string = "Release";
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3406  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3407  			case BC_DECREFS:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3408  			default:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3409  				debug_string = "DecRefs";
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3410  				break;
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3411  			}
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3412  			if (ret) {
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3413  				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  3414  					proc->pid, thread->pid, debug_string,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3415  					strong, target, ret);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3416  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3417  			}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3418  			binder_debug(BINDER_DEBUG_USER_REFS,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3419  				     "%d:%d %s ref %d desc %d s %d w %d\n",
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3420  				     proc->pid, thread->pid, debug_string,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3421  				     rdata.debug_id, rdata.desc, rdata.strong,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3422  				     rdata.weak);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3423  			break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3424  		}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3425  		case BC_INCREFS_DONE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3426  		case BC_ACQUIRE_DONE: {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3427  			binder_uintptr_t node_ptr;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3428  			binder_uintptr_t cookie;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3429  			struct binder_node *node;
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3430  			bool free_node;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3431  
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3432  			if (get_user(node_ptr, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3433  				return -EFAULT;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3434  			ptr += sizeof(binder_uintptr_t);
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3435  			if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3436  				return -EFAULT;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3437  			ptr += sizeof(binder_uintptr_t);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3438  			node = binder_get_node(proc, node_ptr);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3439  			if (node == NULL) {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3440  				binder_user_error("%d:%d %s u%016llx no match\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3441  					proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3442  					cmd == BC_INCREFS_DONE ?
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3443  					"BC_INCREFS_DONE" :
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3444  					"BC_ACQUIRE_DONE",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3445  					(u64)node_ptr);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3446  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3447  			}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3448  			if (cookie != node->cookie) {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3449  				binder_user_error("%d:%d %s u%016llx node %d cookie mismatch %016llx != %016llx\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3450  					proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3451  					cmd == BC_INCREFS_DONE ?
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3452  					"BC_INCREFS_DONE" : "BC_ACQUIRE_DONE",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3453  					(u64)node_ptr, node->debug_id,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3454  					(u64)cookie, (u64)node->cookie);
adc1884222276d drivers/android/binder.c         Todd Kjos              2017-06-29  3455  				binder_put_node(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3456  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3457  			}
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3458  			binder_node_inner_lock(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3459  			if (cmd == BC_ACQUIRE_DONE) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3460  				if (node->pending_strong_ref == 0) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3461  					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  3462  						proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3463  						node->debug_id);
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3464  					binder_node_inner_unlock(node);
adc1884222276d drivers/android/binder.c         Todd Kjos              2017-06-29  3465  					binder_put_node(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3466  					break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3467  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3468  				node->pending_strong_ref = 0;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3469  			} else {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3470  				if (node->pending_weak_ref == 0) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3471  					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  3472  						proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3473  						node->debug_id);
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3474  					binder_node_inner_unlock(node);
adc1884222276d drivers/android/binder.c         Todd Kjos              2017-06-29  3475  					binder_put_node(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3476  					break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3477  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3478  				node->pending_weak_ref = 0;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3479  			}
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3480  			free_node = binder_dec_node_nilocked(node,
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3481  					cmd == BC_ACQUIRE_DONE, 0);
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3482  			WARN_ON(free_node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3483  			binder_debug(BINDER_DEBUG_USER_REFS,
adc1884222276d drivers/android/binder.c         Todd Kjos              2017-06-29  3484  				     "%d:%d %s node %d ls %d lw %d tr %d\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3485  				     proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3486  				     cmd == BC_INCREFS_DONE ? "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE",
adc1884222276d drivers/android/binder.c         Todd Kjos              2017-06-29  3487  				     node->debug_id, node->local_strong_refs,
adc1884222276d drivers/android/binder.c         Todd Kjos              2017-06-29  3488  				     node->local_weak_refs, node->tmp_refs);
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3489  			binder_node_inner_unlock(node);
adc1884222276d drivers/android/binder.c         Todd Kjos              2017-06-29  3490  			binder_put_node(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3491  			break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3492  		}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3493  		case BC_ATTEMPT_ACQUIRE:
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3494  			pr_err("BC_ATTEMPT_ACQUIRE not supported\n");
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3495  			return -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3496  		case BC_ACQUIRE_RESULT:
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3497  			pr_err("BC_ACQUIRE_RESULT not supported\n");
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3498  			return -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3499  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3500  		case BC_FREE_BUFFER: {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3501  			binder_uintptr_t data_ptr;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3502  			struct binder_buffer *buffer;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3503  
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3504  			if (get_user(data_ptr, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3505  				return -EFAULT;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3506  			ptr += sizeof(binder_uintptr_t);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3507  
53d311cfa19ad3 drivers/android/binder.c         Todd Kjos              2017-06-29  3508  			buffer = binder_alloc_prepare_to_free(&proc->alloc,
19c987241ca121 drivers/android/binder.c         Todd Kjos              2017-06-29  3509  							      data_ptr);
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3510  			if (IS_ERR_OR_NULL(buffer)) {
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3511  				if (PTR_ERR(buffer) == -EPERM) {
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3512  					binder_user_error(
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3513  						"%d:%d BC_FREE_BUFFER u%016llx matched unreturned or currently freeing buffer\n",
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3514  						proc->pid, thread->pid,
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3515  						(u64)data_ptr);
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3516  				} else {
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3517  					binder_user_error(
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3518  						"%d:%d BC_FREE_BUFFER u%016llx no match\n",
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3519  						proc->pid, thread->pid,
553927d6aab993 drivers/android/binder.c         Todd Kjos              2018-11-06  3520  						(u64)data_ptr);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3521  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3522  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3523  			}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3524  			binder_debug(BINDER_DEBUG_FREE_BUFFER,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3525  				     "%d:%d BC_FREE_BUFFER u%016llx found buffer %d for %s transaction\n",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3526  				     proc->pid, thread->pid, (u64)data_ptr,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3527  				     buffer->debug_id,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3528  				     buffer->transaction ? "active" : "finished");
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3529  
22068d49d09d2b drivers/android/binder.c         Todd Kjos              2019-06-12  3530  			binder_inner_proc_lock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3531  			if (buffer->transaction) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3532  				buffer->transaction->buffer = NULL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3533  				buffer->transaction = NULL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3534  			}
22068d49d09d2b drivers/android/binder.c         Todd Kjos              2019-06-12  3535  			binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3536  			if (buffer->async_transaction && buffer->target_node) {
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3537  				struct binder_node *buf_node;
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3538  				struct binder_work *w;
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3539  
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3540  				buf_node = buffer->target_node;
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3541  				binder_node_inner_lock(buf_node);
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3542  				BUG_ON(!buf_node->has_async_transaction);
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3543  				BUG_ON(buf_node->proc != proc);
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3544  				w = binder_dequeue_work_head_ilocked(
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3545  						&buf_node->async_todo);
3a6430ce462172 drivers/android/binder.c         Martijn Coenen         2017-08-31  3546  				if (!w) {
197410ad884eb1 drivers/android/binder.c         Gustavo A. R. Silva    2018-01-23  3547  					buf_node->has_async_transaction = false;
3a6430ce462172 drivers/android/binder.c         Martijn Coenen         2017-08-31  3548  				} else {
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3549  					binder_enqueue_work_ilocked(
3a6430ce462172 drivers/android/binder.c         Martijn Coenen         2017-08-31  3550  							w, &proc->todo);
3a6430ce462172 drivers/android/binder.c         Martijn Coenen         2017-08-31  3551  					binder_wakeup_proc_ilocked(proc);
3a6430ce462172 drivers/android/binder.c         Martijn Coenen         2017-08-31  3552  				}
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3553  				binder_node_inner_unlock(buf_node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3554  			}
975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hjønnevåg         2012-10-16  3555  			trace_binder_transaction_buffer_release(buffer);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3556  			binder_transaction_buffer_release(proc, buffer, NULL);
19c987241ca121 drivers/android/binder.c         Todd Kjos              2017-06-29  3557  			binder_alloc_free_buf(&proc->alloc, buffer);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3558  			break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3559  		}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3560  
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3561  		case BC_TRANSACTION_SG:
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3562  		case BC_REPLY_SG: {
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3563  			struct binder_transaction_data_sg tr;
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3564  
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3565  			if (copy_from_user(&tr, ptr, sizeof(tr)))
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3566  				return -EFAULT;
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3567  			ptr += sizeof(tr);
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3568  			binder_transaction(proc, thread, &tr.transaction_data,
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3569  					   cmd == BC_REPLY_SG, tr.buffers_size);
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3570  			break;
7980240b6d63e0 drivers/android/binder.c         Martijn Coenen         2017-02-03  3571  		}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3572  		case BC_TRANSACTION:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3573  		case BC_REPLY: {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3574  			struct binder_transaction_data tr;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3575  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3576  			if (copy_from_user(&tr, ptr, sizeof(tr)))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3577  				return -EFAULT;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3578  			ptr += sizeof(tr);
4bfac80af3a63f drivers/android/binder.c         Martijn Coenen         2017-02-03  3579  			binder_transaction(proc, thread, &tr,
4bfac80af3a63f drivers/android/binder.c         Martijn Coenen         2017-02-03  3580  					   cmd == BC_REPLY, 0);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3581  			break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3582  		}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3583  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3584  		case BC_REGISTER_LOOPER:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3585  			binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3586  				     "%d:%d BC_REGISTER_LOOPER\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3587  				     proc->pid, thread->pid);
b3e6861283790d drivers/android/binder.c         Todd Kjos              2017-06-29  3588  			binder_inner_proc_lock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3589  			if (thread->looper & BINDER_LOOPER_STATE_ENTERED) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3590  				thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3591  				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  3592  					proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3593  			} else if (proc->requested_threads == 0) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3594  				thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3595  				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  3596  					proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3597  			} else {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3598  				proc->requested_threads--;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3599  				proc->requested_threads_started++;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3600  			}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3601  			thread->looper |= BINDER_LOOPER_STATE_REGISTERED;
b3e6861283790d drivers/android/binder.c         Todd Kjos              2017-06-29  3602  			binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3603  			break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3604  		case BC_ENTER_LOOPER:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3605  			binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3606  				     "%d:%d BC_ENTER_LOOPER\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3607  				     proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3608  			if (thread->looper & BINDER_LOOPER_STATE_REGISTERED) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3609  				thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-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     2011-11-30  3611  					proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3612  			}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3613  			thread->looper |= BINDER_LOOPER_STATE_ENTERED;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3614  			break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3615  		case BC_EXIT_LOOPER:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3616  			binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3617  				     "%d:%d BC_EXIT_LOOPER\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3618  				     proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3619  			thread->looper |= BINDER_LOOPER_STATE_EXITED;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3620  			break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3621  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3622  		case BC_REQUEST_DEATH_NOTIFICATION:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3623  		case BC_CLEAR_DEATH_NOTIFICATION: {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3624  			uint32_t target;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3625  			binder_uintptr_t cookie;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3626  			struct binder_ref *ref;
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3627  			struct binder_ref_death *death = NULL;
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;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3631  			ptr += sizeof(uint32_t);
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3632  			if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30 @3633  				return -EFAULT;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3634  			ptr += sizeof(binder_uintptr_t);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3635  			if (cmd == BC_REQUEST_DEATH_NOTIFICATION) {
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3636  				/*
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3637  				 * Allocate memory for death notification
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3638  				 * before taking lock
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3639  				 */
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3640  				death = kzalloc(sizeof(*death), GFP_KERNEL);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3641  				if (death == NULL) {
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3642  					WARN_ON(thread->return_error.cmd !=
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3643  						BR_OK);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3644  					thread->return_error.cmd = BR_ERROR;
148ade2c4d4f46 drivers/android/binder.c         Martijn Coenen         2017-11-15  3645  					binder_enqueue_thread_work(
148ade2c4d4f46 drivers/android/binder.c         Martijn Coenen         2017-11-15  3646  						thread,
148ade2c4d4f46 drivers/android/binder.c         Martijn Coenen         2017-11-15  3647  						&thread->return_error.work);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3648  					binder_debug(
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3649  						BINDER_DEBUG_FAILED_TRANSACTION,
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3650  						"%d:%d BC_REQUEST_DEATH_NOTIFICATION failed\n",
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3651  						proc->pid, thread->pid);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3652  					break;
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3653  				}
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3654  			}
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3655  			binder_proc_lock(proc);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3656  			ref = binder_get_ref_olocked(proc, target, false);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3657  			if (ref == NULL) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3658  				binder_user_error("%d:%d %s invalid ref %d\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3659  					proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3660  					cmd == BC_REQUEST_DEATH_NOTIFICATION ?
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3661  					"BC_REQUEST_DEATH_NOTIFICATION" :
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3662  					"BC_CLEAR_DEATH_NOTIFICATION",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3663  					target);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3664  				binder_proc_unlock(proc);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3665  				kfree(death);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3666  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3667  			}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3668  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3669  			binder_debug(BINDER_DEBUG_DEATH_NOTIFICATION,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         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     2011-11-30  3671  				     proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3672  				     cmd == BC_REQUEST_DEATH_NOTIFICATION ?
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3673  				     "BC_REQUEST_DEATH_NOTIFICATION" :
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3674  				     "BC_CLEAR_DEATH_NOTIFICATION",
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3675  				     (u64)cookie, ref->data.debug_id,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3676  				     ref->data.desc, ref->data.strong,
372e3147df7016 drivers/android/binder.c         Todd Kjos              2017-06-29  3677  				     ref->data.weak, ref->node->debug_id);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3678  
ab51ec6bdf0b7a drivers/android/binder.c         Martijn Coenen         2017-06-29  3679  			binder_node_lock(ref->node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3680  			if (cmd == BC_REQUEST_DEATH_NOTIFICATION) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3681  				if (ref->death) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-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     2011-11-30  3683  						proc->pid, thread->pid);
ab51ec6bdf0b7a drivers/android/binder.c         Martijn Coenen         2017-06-29  3684  					binder_node_unlock(ref->node);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3685  					binder_proc_unlock(proc);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3686  					kfree(death);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3687  					break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3688  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3689  				binder_stats_created(BINDER_STAT_DEATH);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3690  				INIT_LIST_HEAD(&death->work.entry);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3691  				death->cookie = cookie;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3692  				ref->death = death;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3693  				if (ref->node->proc == NULL) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3694  					ref->death->work.type = BINDER_WORK_DEAD_BINDER;
bb74562a7f8398 drivers/android/binder.c         Martijn Coenen         2017-08-31  3695  
1b77e9dcc3da93 drivers/android/binder.c         Martijn Coenen         2017-08-31  3696  					binder_inner_proc_lock(proc);
1b77e9dcc3da93 drivers/android/binder.c         Martijn Coenen         2017-08-31  3697  					binder_enqueue_work_ilocked(
bb74562a7f8398 drivers/android/binder.c         Martijn Coenen         2017-08-31  3698  						&ref->death->work, &proc->todo);
bb74562a7f8398 drivers/android/binder.c         Martijn Coenen         2017-08-31  3699  					binder_wakeup_proc_ilocked(proc);
1b77e9dcc3da93 drivers/android/binder.c         Martijn Coenen         2017-08-31  3700  					binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3701  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3702  			} else {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3703  				if (ref->death == NULL) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3704  					binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION death notification not active\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3705  						proc->pid, thread->pid);
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3706  					binder_node_unlock(ref->node);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3707  					binder_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3708  					break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3709  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3710  				death = ref->death;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3711  				if (death->cookie != cookie) {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3712  					binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION death notification cookie mismatch %016llx != %016llx\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3713  						proc->pid, thread->pid,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3714  						(u64)death->cookie,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3715  						(u64)cookie);
673068eee8560d drivers/android/binder.c         Todd Kjos              2017-06-29  3716  					binder_node_unlock(ref->node);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3717  					binder_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3718  					break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3719  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3720  				ref->death = NULL;
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3721  				binder_inner_proc_lock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3722  				if (list_empty(&death->work.entry)) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3723  					death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION;
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3724  					if (thread->looper &
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3725  					    (BINDER_LOOPER_STATE_REGISTERED |
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3726  					     BINDER_LOOPER_STATE_ENTERED))
148ade2c4d4f46 drivers/android/binder.c         Martijn Coenen         2017-11-15  3727  						binder_enqueue_thread_work_ilocked(
148ade2c4d4f46 drivers/android/binder.c         Martijn Coenen         2017-11-15  3728  								thread,
148ade2c4d4f46 drivers/android/binder.c         Martijn Coenen         2017-11-15  3729  								&death->work);
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3730  					else {
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3731  						binder_enqueue_work_ilocked(
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3732  								&death->work,
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3733  								&proc->todo);
1b77e9dcc3da93 drivers/android/binder.c         Martijn Coenen         2017-08-31  3734  						binder_wakeup_proc_ilocked(
408c68b17aea2f drivers/android/binder.c         Martijn Coenen         2017-08-31  3735  								proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3736  					}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3737  				} else {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3738  					BUG_ON(death->work.type != BINDER_WORK_DEAD_BINDER);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3739  					death->work.type = BINDER_WORK_DEAD_BINDER_AND_CLEAR;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3740  				}
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3741  				binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3742  			}
ab51ec6bdf0b7a drivers/android/binder.c         Martijn Coenen         2017-06-29  3743  			binder_node_unlock(ref->node);
2c1838dc6817dd drivers/android/binder.c         Todd Kjos              2017-06-29  3744  			binder_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3745  		} break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3746  		case BC_DEAD_BINDER_DONE: {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3747  			struct binder_work *w;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3748  			binder_uintptr_t cookie;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3749  			struct binder_ref_death *death = NULL;
10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee           2014-05-01  3750  
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3751  			if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3752  				return -EFAULT;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3753  
7a64cd887fdb97 drivers/android/binder.c         Lisa Du                2016-02-17  3754  			ptr += sizeof(cookie);
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3755  			binder_inner_proc_lock(proc);
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3756  			list_for_each_entry(w, &proc->delivered_death,
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3757  					    entry) {
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3758  				struct binder_ref_death *tmp_death =
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3759  					container_of(w,
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3760  						     struct binder_ref_death,
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3761  						     work);
10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee           2014-05-01  3762  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3763  				if (tmp_death->cookie == cookie) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3764  					death = tmp_death;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3765  					break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3766  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3767  			}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3768  			binder_debug(BINDER_DEBUG_DEAD_BINDER,
8ca86f1639ec58 drivers/android/binder.c         Todd Kjos              2018-02-07  3769  				     "%d:%d BC_DEAD_BINDER_DONE %016llx found %pK\n",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3770  				     proc->pid, thread->pid, (u64)cookie,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         2014-02-21  3771  				     death);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3772  			if (death == NULL) {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg         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ønnevåg         2014-02-21  3774  					proc->pid, thread->pid, (u64)cookie);
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3775  				binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3776  				break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3777  			}
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3778  			binder_dequeue_work_ilocked(&death->work);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3779  			if (death->work.type == BINDER_WORK_DEAD_BINDER_AND_CLEAR) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3780  				death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION;
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3781  				if (thread->looper &
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3782  					(BINDER_LOOPER_STATE_REGISTERED |
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3783  					 BINDER_LOOPER_STATE_ENTERED))
148ade2c4d4f46 drivers/android/binder.c         Martijn Coenen         2017-11-15  3784  					binder_enqueue_thread_work_ilocked(
148ade2c4d4f46 drivers/android/binder.c         Martijn Coenen         2017-11-15  3785  						thread, &death->work);
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3786  				else {
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3787  					binder_enqueue_work_ilocked(
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3788  							&death->work,
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3789  							&proc->todo);
408c68b17aea2f drivers/android/binder.c         Martijn Coenen         2017-08-31  3790  					binder_wakeup_proc_ilocked(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3791  				}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3792  			}
72196393a5e3d2 drivers/android/binder.c         Todd Kjos              2017-06-29  3793  			binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3794  		} break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3795  
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3796  		default:
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma            2012-10-30  3797  			pr_err("%d:%d unknown command %d\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3798  			       proc->pid, thread->pid, cmd);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3799  			return -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3800  		}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3801  		*consumed = ptr - buffer;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3802  	}
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3803  	return 0;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3804  }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman     2011-11-30  3805  

:::::: The code at line 3633 was first introduced by commit
:::::: 355b0502f6efea0ff9492753888772c96972d2a3 Revert "Staging: android: delete android drivers"

:::::: TO: Greg Kroah-Hartman <gregkh@suse.de>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 17594 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* 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)'
  2021-07-01 14:49 [linux-stable-rc:linux-4.19.y 405/611] drivers/android/binder.c:3633: Error: unrecognized keyword/register name `l.lwz ?ap, 4(r21)' kernel test robot
@ 2021-07-01 23:26 ` Stafford Horne
  0 siblings, 0 replies; 2+ messages in thread
From: Stafford Horne @ 2021-07-01 23:26 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 60583 bytes --]

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-01 23:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-01 14:49 [linux-stable-rc:linux-4.19.y 405/611] drivers/android/binder.c:3633: Error: unrecognized keyword/register name `l.lwz ?ap, 4(r21)' kernel test robot
2021-07-01 23:26 ` Stafford Horne

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.