lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202109061810.3FaxElkv-lkp@intel.com>
Date:   Mon, 6 Sep 2021 18:12:06 +0800
From:   kernel test robot <lkp@...el.com>
To:     Stafford Horne <shorne@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Miles Chen <miles.chen@...iatek.com>
Subject: [linux-stable-rc:linux-4.19.y 9566/9999]
 drivers/android/binder.c:3739: Error: unrecognized keyword/register name
 `l.lwz ?ap,4(r19)'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
head:   6c3e013be752bf70e7321d7c813d68eac8ac36b0
commit: e8236726c616d8843bf936e2bafefc2540bb87a7 [9566/9999] arch/openrisc: Fix issues with access_ok()
config: openrisc-randconfig-r003-20210906 (attached as .config)
compiler: or1k-linux-gcc (GCC) 11.2.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=e8236726c616d8843bf936e2bafefc2540bb87a7
        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 e8236726c616d8843bf936e2bafefc2540bb87a7
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.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@...el.com>

All errors (new ones prefixed by >>):

   include/linux/compiler.h:25:39: warning: ignoring attribute 'section ("_ftrace_annotated_branch")' because it conflicts with previous 'section ("_ftrace_branch")' [-Wattributes]
      25 |                         static struct ftrace_likely_data                \
         |                                       ^~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:69:30: note: in definition of macro '__trace_if'
      69 |                 ______r = !!(cond);                                     \
         |                              ^~~~
   include/linux/ptrace.h:119:9: note: in expansion of macro 'if'
     119 |         if (unlikely(task->ptrace))
         |         ^~
   include/linux/compiler.h:48:26: note: in expansion of macro '__branch_check__'
      48 | #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
         |                          ^~~~~~~~~~~~~~~~
   include/linux/ptrace.h:119:13: note: in expansion of macro 'unlikely'
     119 |         if (unlikely(task->ptrace))
         |             ^~~~~~~~
   include/linux/compiler.h:64:25: note: previous declaration here
      64 |                         ______f = {                                     \
         |                         ^~~~~~~
   include/linux/compiler.h:56:23: note: in expansion of macro '__trace_if'
      56 | #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
         |                       ^~~~~~~~~~
   include/linux/ptrace.h:119:9: note: in expansion of macro 'if'
     119 |         if (unlikely(task->ptrace))
         |         ^~
   include/linux/ptrace.h: In function 'ptrace_event':
   include/linux/compiler.h:25:39: warning: ignoring attribute 'section ("_ftrace_annotated_branch")' because it conflicts with previous 'section ("_ftrace_branch")' [-Wattributes]
      25 |                         static struct ftrace_likely_data                \
         |                                       ^~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:69:30: note: in definition of macro '__trace_if'
      69 |                 ______r = !!(cond);                                     \
         |                              ^~~~
   include/linux/ptrace.h:150:9: note: in expansion of macro 'if'
     150 |         if (unlikely(ptrace_event_enabled(current, event))) {
         |         ^~
   include/linux/compiler.h:48:26: note: in expansion of macro '__branch_check__'
      48 | #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
         |                          ^~~~~~~~~~~~~~~~
   include/linux/ptrace.h:150:13: note: in expansion of macro 'unlikely'
     150 |         if (unlikely(ptrace_event_enabled(current, event))) {
         |             ^~~~~~~~
   include/linux/compiler.h:64:25: note: previous declaration here
      64 |                         ______f = {                                     \
         |                         ^~~~~~~
   include/linux/compiler.h:56:23: note: in expansion of macro '__trace_if'
      56 | #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
         |                       ^~~~~~~~~~
   include/linux/ptrace.h:150:9: note: in expansion of macro 'if'
     150 |         if (unlikely(ptrace_event_enabled(current, event))) {
         |         ^~
   include/linux/ptrace.h: In function 'ptrace_init_task':
   include/linux/compiler.h:25:39: warning: ignoring attribute 'section ("_ftrace_annotated_branch")' because it conflicts with previous 'section ("_ftrace_branch")' [-Wattributes]
      25 |                         static struct ftrace_likely_data                \
         |                                       ^~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:69:30: note: in definition of macro '__trace_if'
      69 |                 ______r = !!(cond);                                     \
         |                              ^~~~
   include/linux/ptrace.h:209:9: note: in expansion of macro 'if'
     209 |         if (unlikely(ptrace) && current->ptrace) {
         |         ^~
   include/linux/compiler.h:48:26: note: in expansion of macro '__branch_check__'
      48 | #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
         |                          ^~~~~~~~~~~~~~~~
   include/linux/ptrace.h:209:13: note: in expansion of macro 'unlikely'
     209 |         if (unlikely(ptrace) && current->ptrace) {
         |             ^~~~~~~~
   include/linux/compiler.h:64:25: note: previous declaration here
      64 |                         ______f = {                                     \
         |                         ^~~~~~~
   include/linux/compiler.h:56:23: note: in expansion of macro '__trace_if'
      56 | #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
         |                       ^~~~~~~~~~
   include/linux/ptrace.h:209:9: note: in expansion of macro 'if'
     209 |         if (unlikely(ptrace) && current->ptrace) {
         |         ^~
   include/linux/cgroup.h: In function 'task_get_css':
   include/linux/compiler.h:25:39: warning: ignoring attribute 'section ("_ftrace_annotated_branch")' because it conflicts with previous 'section ("_ftrace_branch")' [-Wattributes]
      25 |                         static struct ftrace_likely_data                \
         |                                       ^~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:69:30: note: in definition of macro '__trace_if'
      69 |                 ______r = !!(cond);                                     \
         |                              ^~~~
   include/linux/cgroup.h:509:17: note: in expansion of macro 'if'
     509 |                 if (likely(css_tryget(css)))
         |                 ^~
   include/linux/compiler.h:45:26: note: in expansion of macro '__branch_check__'
      45 | #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
         |                          ^~~~~~~~~~~~~~~~
   include/linux/cgroup.h:509:21: note: in expansion of macro 'likely'
     509 |                 if (likely(css_tryget(css)))
         |                     ^~~~~~
   include/linux/compiler.h:64:25: note: previous declaration here
      64 |                         ______f = {                                     \
         |                         ^~~~~~~
   include/linux/compiler.h:56:23: note: in expansion of macro '__trace_if'
      56 | #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
         |                       ^~~~~~~~~~
   include/linux/cgroup.h:509:17: note: in expansion of macro 'if'
     509 |                 if (likely(css_tryget(css)))
         |                 ^~
   drivers/android/binder.c: Assembler messages:
>> drivers/android/binder.c:3739: Error: unrecognized keyword/register name `l.lwz ?ap,4(r19)'
   drivers/android/binder.c:3744: Error: unrecognized keyword/register name `l.addi ?ap,r0,0'


vim +3739 drivers/android/binder.c

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

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

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

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

Download attachment ".config.gz" of type "application/gzip" (25749 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ