[jolsa-perf:bpf/attach 5/18] net/bpf/test_run.c:174:1: warning: no previous prototype for function 'bpf_attach_test0'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/attach
head: 309b598ba309017a35c6659304b00395d39c0ecb
commit: 3cc705bd3baca93ef99d89d069bcb53c8c6d1626 [5/18] attach test
config: arm-randconfig-r012-20201018 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 2a75e956e5ce7ea212333a86fe65fc68185cbf48)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id...
git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
git fetch --no-tags jolsa-perf bpf/attach
git checkout 3cc705bd3baca93ef99d89d069bcb53c8c6d1626
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
net/bpf/test_run.c:121:14: warning: no previous prototype for function 'bpf_fentry_test1' [-Wmissing-prototypes]
int noinline bpf_fentry_test1(int a)
^
net/bpf/test_run.c:121:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_fentry_test1(int a)
^
static
net/bpf/test_run.c:126:14: warning: no previous prototype for function 'bpf_fentry_test2' [-Wmissing-prototypes]
int noinline bpf_fentry_test2(int a, u64 b)
^
net/bpf/test_run.c:126:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_fentry_test2(int a, u64 b)
^
static
net/bpf/test_run.c:131:14: warning: no previous prototype for function 'bpf_fentry_test3' [-Wmissing-prototypes]
int noinline bpf_fentry_test3(char a, int b, u64 c)
^
net/bpf/test_run.c:131:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_fentry_test3(char a, int b, u64 c)
^
static
net/bpf/test_run.c:136:14: warning: no previous prototype for function 'bpf_fentry_test4' [-Wmissing-prototypes]
int noinline bpf_fentry_test4(void *a, char b, int c, u64 d)
^
net/bpf/test_run.c:136:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_fentry_test4(void *a, char b, int c, u64 d)
^
static
net/bpf/test_run.c:141:14: warning: no previous prototype for function 'bpf_fentry_test5' [-Wmissing-prototypes]
int noinline bpf_fentry_test5(u64 a, void *b, short c, int d, u64 e)
^
net/bpf/test_run.c:141:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_fentry_test5(u64 a, void *b, short c, int d, u64 e)
^
static
net/bpf/test_run.c:146:14: warning: no previous prototype for function 'bpf_fentry_test6' [-Wmissing-prototypes]
int noinline bpf_fentry_test6(u64 a, void *b, short c, int d, void *e, u64 f)
^
net/bpf/test_run.c:146:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_fentry_test6(u64 a, void *b, short c, int d, void *e, u64 f)
^
static
net/bpf/test_run.c:155:14: warning: no previous prototype for function 'bpf_fentry_test7' [-Wmissing-prototypes]
int noinline bpf_fentry_test7(struct bpf_fentry_test_t *arg)
^
net/bpf/test_run.c:155:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_fentry_test7(struct bpf_fentry_test_t *arg)
^
static
net/bpf/test_run.c:160:14: warning: no previous prototype for function 'bpf_fentry_test8' [-Wmissing-prototypes]
int noinline bpf_fentry_test8(struct bpf_fentry_test_t *arg)
^
net/bpf/test_run.c:160:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_fentry_test8(struct bpf_fentry_test_t *arg)
^
static
net/bpf/test_run.c:165:14: warning: no previous prototype for function 'bpf_modify_return_test' [-Wmissing-prototypes]
int noinline bpf_modify_return_test(int a, int *b)
^
net/bpf/test_run.c:165:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int noinline bpf_modify_return_test(int a, int *b)
^
static
>> net/bpf/test_run.c:174:1: warning: no previous prototype for function 'bpf_attach_test0' [-Wmissing-prototypes]
ATTACH_TEST(0)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:126:1: note: expanded from here
bpf_attach_test0
^
net/bpf/test_run.c:174:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(0)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:175:1: warning: no previous prototype for function 'bpf_attach_test1' [-Wmissing-prototypes]
ATTACH_TEST(1)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:127:1: note: expanded from here
bpf_attach_test1
^
net/bpf/test_run.c:175:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(1)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:176:1: warning: no previous prototype for function 'bpf_attach_test2' [-Wmissing-prototypes]
ATTACH_TEST(2)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:128:1: note: expanded from here
bpf_attach_test2
^
net/bpf/test_run.c:176:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(2)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:177:1: warning: no previous prototype for function 'bpf_attach_test3' [-Wmissing-prototypes]
ATTACH_TEST(3)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:129:1: note: expanded from here
bpf_attach_test3
^
net/bpf/test_run.c:177:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(3)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:178:1: warning: no previous prototype for function 'bpf_attach_test4' [-Wmissing-prototypes]
ATTACH_TEST(4)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:130:1: note: expanded from here
bpf_attach_test4
^
net/bpf/test_run.c:178:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(4)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:179:1: warning: no previous prototype for function 'bpf_attach_test5' [-Wmissing-prototypes]
ATTACH_TEST(5)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:131:1: note: expanded from here
bpf_attach_test5
^
net/bpf/test_run.c:179:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(5)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:180:1: warning: no previous prototype for function 'bpf_attach_test6' [-Wmissing-prototypes]
ATTACH_TEST(6)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:132:1: note: expanded from here
bpf_attach_test6
^
net/bpf/test_run.c:180:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(6)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:181:1: warning: no previous prototype for function 'bpf_attach_test7' [-Wmissing-prototypes]
ATTACH_TEST(7)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:133:1: note: expanded from here
bpf_attach_test7
^
net/bpf/test_run.c:181:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(7)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:182:1: warning: no previous prototype for function 'bpf_attach_test8' [-Wmissing-prototypes]
ATTACH_TEST(8)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:134:1: note: expanded from here
bpf_attach_test8
^
net/bpf/test_run.c:182:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(8)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:183:1: warning: no previous prototype for function 'bpf_attach_test9' [-Wmissing-prototypes]
ATTACH_TEST(9)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:135:1: note: expanded from here
bpf_attach_test9
^
net/bpf/test_run.c:183:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(9)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:184:1: warning: no previous prototype for function 'bpf_attach_test10' [-Wmissing-prototypes]
ATTACH_TEST(10)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:136:1: note: expanded from here
bpf_attach_test10
^
net/bpf/test_run.c:184:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(10)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:185:1: warning: no previous prototype for function 'bpf_attach_test11' [-Wmissing-prototypes]
ATTACH_TEST(11)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:137:1: note: expanded from here
bpf_attach_test11
^
net/bpf/test_run.c:185:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(11)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:186:1: warning: no previous prototype for function 'bpf_attach_test12' [-Wmissing-prototypes]
ATTACH_TEST(12)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:138:1: note: expanded from here
bpf_attach_test12
^
net/bpf/test_run.c:186:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(12)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:187:1: warning: no previous prototype for function 'bpf_attach_test13' [-Wmissing-prototypes]
ATTACH_TEST(13)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:139:1: note: expanded from here
bpf_attach_test13
^
net/bpf/test_run.c:187:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(13)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:188:1: warning: no previous prototype for function 'bpf_attach_test14' [-Wmissing-prototypes]
ATTACH_TEST(14)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:140:1: note: expanded from here
bpf_attach_test14
^
net/bpf/test_run.c:188:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(14)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:189:1: warning: no previous prototype for function 'bpf_attach_test15' [-Wmissing-prototypes]
ATTACH_TEST(15)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:141:1: note: expanded from here
bpf_attach_test15
^
net/bpf/test_run.c:189:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(15)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:190:1: warning: no previous prototype for function 'bpf_attach_test16' [-Wmissing-prototypes]
ATTACH_TEST(16)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:142:1: note: expanded from here
bpf_attach_test16
^
net/bpf/test_run.c:190:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(16)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:191:1: warning: no previous prototype for function 'bpf_attach_test17' [-Wmissing-prototypes]
ATTACH_TEST(17)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:143:1: note: expanded from here
bpf_attach_test17
^
net/bpf/test_run.c:191:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(17)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:192:1: warning: no previous prototype for function 'bpf_attach_test18' [-Wmissing-prototypes]
ATTACH_TEST(18)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:144:1: note: expanded from here
bpf_attach_test18
^
net/bpf/test_run.c:192:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(18)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
>> net/bpf/test_run.c:193:1: warning: no previous prototype for function 'bpf_attach_test19' [-Wmissing-prototypes]
ATTACH_TEST(19)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:145:1: note: expanded from here
bpf_attach_test19
^
net/bpf/test_run.c:193:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(19)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
net/bpf/test_run.c:194:1: warning: no previous prototype for function 'bpf_attach_test20' [-Wmissing-prototypes]
ATTACH_TEST(20)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:146:1: note: expanded from here
bpf_attach_test20
^
net/bpf/test_run.c:194:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(20)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
net/bpf/test_run.c:195:1: warning: no previous prototype for function 'bpf_attach_test21' [-Wmissing-prototypes]
ATTACH_TEST(21)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:147:1: note: expanded from here
bpf_attach_test21
^
net/bpf/test_run.c:195:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(21)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
net/bpf/test_run.c:196:1: warning: no previous prototype for function 'bpf_attach_test22' [-Wmissing-prototypes]
ATTACH_TEST(22)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:148:1: note: expanded from here
bpf_attach_test22
^
net/bpf/test_run.c:196:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ATTACH_TEST(22)
^
static
net/bpf/test_run.c:172:2: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
net/bpf/test_run.c:197:1: warning: no previous prototype for function 'bpf_attach_test23' [-Wmissing-prototypes]
ATTACH_TEST(23)
^
net/bpf/test_run.c:172:15: note: expanded from macro 'ATTACH_TEST'
int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
^
include/linux/compiler_types.h:60:22: note: expanded from macro '__PASTE'
#define __PASTE(a,b) ___PASTE(a,b)
^
include/linux/compiler_types.h:59:23: note: expanded from macro '___PASTE'
#define ___PASTE(a,b) a##b
^
<scratch space>:149:1: note: expanded from here
vim +/bpf_attach_test0 +174 net/bpf/test_run.c
170
171 #define ATTACH_TEST(__n) \
172 int noinline __PASTE(bpf_attach_test, __n)(void) { return 0; }
173
> 174 ATTACH_TEST(0)
> 175 ATTACH_TEST(1)
> 176 ATTACH_TEST(2)
> 177 ATTACH_TEST(3)
> 178 ATTACH_TEST(4)
> 179 ATTACH_TEST(5)
> 180 ATTACH_TEST(6)
> 181 ATTACH_TEST(7)
> 182 ATTACH_TEST(8)
> 183 ATTACH_TEST(9)
> 184 ATTACH_TEST(10)
> 185 ATTACH_TEST(11)
> 186 ATTACH_TEST(12)
> 187 ATTACH_TEST(13)
> 188 ATTACH_TEST(14)
> 189 ATTACH_TEST(15)
> 190 ATTACH_TEST(16)
> 191 ATTACH_TEST(17)
> 192 ATTACH_TEST(18)
> 193 ATTACH_TEST(19)
> 194 ATTACH_TEST(20)
> 195 ATTACH_TEST(21)
> 196 ATTACH_TEST(22)
> 197 ATTACH_TEST(23)
> 198 ATTACH_TEST(24)
> 199 ATTACH_TEST(25)
> 200 ATTACH_TEST(26)
> 201 ATTACH_TEST(27)
> 202 ATTACH_TEST(28)
> 203 ATTACH_TEST(29)
> 204 ATTACH_TEST(30)
> 205 ATTACH_TEST(31)
> 206 ATTACH_TEST(32)
> 207 ATTACH_TEST(33)
> 208 ATTACH_TEST(34)
> 209 ATTACH_TEST(35)
> 210 ATTACH_TEST(36)
> 211 ATTACH_TEST(37)
> 212 ATTACH_TEST(38)
> 213 ATTACH_TEST(39)
> 214 ATTACH_TEST(40)
> 215 ATTACH_TEST(41)
> 216 ATTACH_TEST(42)
> 217 ATTACH_TEST(43)
> 218 ATTACH_TEST(44)
> 219 ATTACH_TEST(45)
> 220 ATTACH_TEST(46)
> 221 ATTACH_TEST(47)
> 222 ATTACH_TEST(48)
> 223 ATTACH_TEST(49)
224
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
[kbuild] [dlech-linux:bone-counter 1/12] drivers/counter/microchip-tcb-capture.c:173 mchp_tc_count_action_read() warn: bitwise AND condition is false here
by Dan Carpenter
tree: https://github.com/dlech/linux bone-counter
head: f8f0ad10f30b5c1bea1a22f5de5dc9f2c6b7db1a
commit: 5251e7147d627fbe13308dc390347dc16efeb85b [1/12] counter: Internalize sysfs interface code
config: x86_64-randconfig-m001-20201014 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
drivers/counter/microchip-tcb-capture.c:173 mchp_tc_count_action_read() warn: bitwise AND condition is false here
drivers/counter/counter-sysfs.c:109 counter_comp_u8_show() error: uninitialized symbol 'err'.
drivers/counter/counter-sysfs.c:114 counter_comp_u8_show() error: uninitialized symbol 'data'.
drivers/counter/counter-sysfs.c:233 counter_comp_u64_show() error: uninitialized symbol 'err'.
drivers/counter/counter-sysfs.c:236 counter_comp_u64_show() error: uninitialized symbol 'data'.
Old smatch warnings:
drivers/counter/counter-sysfs.c:116 counter_comp_u8_show() error: uninitialized symbol 'data'.
drivers/counter/counter-sysfs.c:118 counter_comp_u8_show() error: uninitialized symbol 'data'.
drivers/counter/counter-sysfs.c:120 counter_comp_u8_show() error: uninitialized symbol 'data'.
drivers/counter/counter-sysfs.c:122 counter_comp_u8_show() error: uninitialized symbol 'data'.
drivers/counter/counter-sysfs.c:124 counter_comp_u8_show() error: uninitialized symbol 'data'.
drivers/counter/counter-sysfs.c:126 counter_comp_u8_show() error: uninitialized symbol 'data'.
drivers/counter/counter-sysfs.c:131 counter_comp_u8_show() error: uninitialized symbol 'data'.
vim +173 drivers/counter/microchip-tcb-capture.c
5251e7147d627fb William Breathitt Gray 2020-09-26 161 static int mchp_tc_count_action_read(struct counter_device *counter,
106b104137fd5f0 Kamel Bouhara 2020-07-06 162 struct counter_count *count,
106b104137fd5f0 Kamel Bouhara 2020-07-06 163 struct counter_synapse *synapse,
5251e7147d627fb William Breathitt Gray 2020-09-26 164 u8 *action)
106b104137fd5f0 Kamel Bouhara 2020-07-06 165 {
106b104137fd5f0 Kamel Bouhara 2020-07-06 166 struct mchp_tc_data *const priv = counter->priv;
106b104137fd5f0 Kamel Bouhara 2020-07-06 167 u32 cmr;
106b104137fd5f0 Kamel Bouhara 2020-07-06 168
106b104137fd5f0 Kamel Bouhara 2020-07-06 169 regmap_read(priv->regmap, ATMEL_TC_REG(priv->channel[0], CMR), &cmr);
106b104137fd5f0 Kamel Bouhara 2020-07-06 170
5251e7147d627fb William Breathitt Gray 2020-09-26 171 *action = COUNTER_SYNAPSE_ACTION_NONE;
106b104137fd5f0 Kamel Bouhara 2020-07-06 172
106b104137fd5f0 Kamel Bouhara 2020-07-06 @173 if (cmr & ATMEL_TC_ETRGEDG_NONE)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
I'm guessing ATMEL_TC_ETRGEDG_NONE is zero and that's why Smatch thinks
this can't possibly be true.
5251e7147d627fb William Breathitt Gray 2020-09-26 174 *action = COUNTER_SYNAPSE_ACTION_NONE;
106b104137fd5f0 Kamel Bouhara 2020-07-06 175 else if (cmr & ATMEL_TC_ETRGEDG_RISING)
5251e7147d627fb William Breathitt Gray 2020-09-26 176 *action = COUNTER_SYNAPSE_ACTION_RISING_EDGE;
106b104137fd5f0 Kamel Bouhara 2020-07-06 177 else if (cmr & ATMEL_TC_ETRGEDG_FALLING)
5251e7147d627fb William Breathitt Gray 2020-09-26 178 *action = COUNTER_SYNAPSE_ACTION_FALLING_EDGE;
106b104137fd5f0 Kamel Bouhara 2020-07-06 179 else if (cmr & ATMEL_TC_ETRGEDG_BOTH)
5251e7147d627fb William Breathitt Gray 2020-09-26 180 *action = COUNTER_SYNAPSE_ACTION_BOTH_EDGES;
106b104137fd5f0 Kamel Bouhara 2020-07-06 181
106b104137fd5f0 Kamel Bouhara 2020-07-06 182 return 0;
106b104137fd5f0 Kamel Bouhara 2020-07-06 183 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org
1 year, 11 months
[dlech-linux:bone-counter 3/12] drivers/counter/counter-chrdev.c:189 counter_set_watch() warn: potential spectre issue 'counter->signals' (local cap)
by Dan Carpenter
tree: https://github.com/dlech/linux bone-counter
head: f8f0ad10f30b5c1bea1a22f5de5dc9f2c6b7db1a
commit: c4408f814b1a257c3854ec272e8348ef8fe55f48 [3/12] counter: Add character device interface
config: x86_64-randconfig-m001-20201014 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/counter/counter-chrdev.c:189 counter_set_watch() warn: potential spectre issue 'counter->signals' [r] (local cap)
drivers/counter/counter-chrdev.c:198 counter_set_watch() warn: potential spectre issue 'counter->counts' [r] (local cap)
drivers/counter/counter-chrdev.c:242 counter_set_watch() warn: potential spectre issue 'ext' [r] (local cap)
drivers/counter/counter-chrdev.c:247 counter_set_watch() warn: possible spectre second half. 'comp_node.comp'
vim +189 drivers/counter/counter-chrdev.c
c4408f814b1a257 William Breathitt Gray 2020-09-26 160 static int counter_set_watch(struct counter_device *const counter,
c4408f814b1a257 William Breathitt Gray 2020-09-26 161 const unsigned long arg)
c4408f814b1a257 William Breathitt Gray 2020-09-26 162 {
c4408f814b1a257 William Breathitt Gray 2020-09-26 163 void __user *const uwatch = (void __user *)arg;
c4408f814b1a257 William Breathitt Gray 2020-09-26 164 struct counter_watch watch;
c4408f814b1a257 William Breathitt Gray 2020-09-26 165 struct counter_comp_node comp_node;
c4408f814b1a257 William Breathitt Gray 2020-09-26 166 size_t parent, id;
c4408f814b1a257 William Breathitt Gray 2020-09-26 167 struct counter_comp *ext;
c4408f814b1a257 William Breathitt Gray 2020-09-26 168 size_t num_ext;
c4408f814b1a257 William Breathitt Gray 2020-09-26 169
c4408f814b1a257 William Breathitt Gray 2020-09-26 170 if (copy_from_user(&watch, uwatch, sizeof(watch)))
c4408f814b1a257 William Breathitt Gray 2020-09-26 171 return -EFAULT;
c4408f814b1a257 William Breathitt Gray 2020-09-26 172 parent = watch.component.parent;
c4408f814b1a257 William Breathitt Gray 2020-09-26 173 id = watch.component.id;
c4408f814b1a257 William Breathitt Gray 2020-09-26 174
c4408f814b1a257 William Breathitt Gray 2020-09-26 175 /* Configure parent component info for comp node */
c4408f814b1a257 William Breathitt Gray 2020-09-26 176 switch (watch.component.scope) {
c4408f814b1a257 William Breathitt Gray 2020-09-26 177 case COUNTER_SCOPE_DEVICE:
c4408f814b1a257 William Breathitt Gray 2020-09-26 178 comp_node.parent = NULL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 179
c4408f814b1a257 William Breathitt Gray 2020-09-26 180 ext = counter->ext;
c4408f814b1a257 William Breathitt Gray 2020-09-26 181 num_ext = counter->num_ext;
c4408f814b1a257 William Breathitt Gray 2020-09-26 182 break;
c4408f814b1a257 William Breathitt Gray 2020-09-26 183 case COUNTER_SCOPE_SIGNAL:
c4408f814b1a257 William Breathitt Gray 2020-09-26 184 if (counter->num_signals < parent + 1)
Smatch looks at these and complains about Spectre issues. I'm not an
expert at Spectre but that's probably a valid complaint and this code
should be using array_index_nospec().
This code has some other bugs as well.
1) "watch.component.parent" is a u64 but "parent" is a size_t so that's
a potential problem on 32 bit systems.
2) If "parent is ULONG_MAX then "parent + 1" will have an integer
overflow to zero leading to an out of bounds read.
The normal way to write these conditions is with the varable on the
left and the limit on the right. Use >= to avoid the integer overflow.
So to solve all three bugs do:
u64 parent, id;
...
if (parent >= counter->num_signals)
return -EINVAL;
parent = array_index_nospec(parent, counter->num_signals);
c4408f814b1a257 William Breathitt Gray 2020-09-26 185 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 186
c4408f814b1a257 William Breathitt Gray 2020-09-26 187 comp_node.parent = counter->signals + parent;
c4408f814b1a257 William Breathitt Gray 2020-09-26 188
c4408f814b1a257 William Breathitt Gray 2020-09-26 @189 ext = counter->signals[parent].ext;
c4408f814b1a257 William Breathitt Gray 2020-09-26 190 num_ext = counter->signals[parent].num_ext;
c4408f814b1a257 William Breathitt Gray 2020-09-26 191 break;
c4408f814b1a257 William Breathitt Gray 2020-09-26 192 case COUNTER_SCOPE_COUNT:
c4408f814b1a257 William Breathitt Gray 2020-09-26 193 if (counter->num_counts < parent + 1)
c4408f814b1a257 William Breathitt Gray 2020-09-26 194 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 195
c4408f814b1a257 William Breathitt Gray 2020-09-26 196 comp_node.parent = counter->counts + parent;
c4408f814b1a257 William Breathitt Gray 2020-09-26 197
c4408f814b1a257 William Breathitt Gray 2020-09-26 @198 ext = counter->counts[parent].ext;
c4408f814b1a257 William Breathitt Gray 2020-09-26 199 num_ext = counter->counts[parent].num_ext;
c4408f814b1a257 William Breathitt Gray 2020-09-26 200 break;
c4408f814b1a257 William Breathitt Gray 2020-09-26 201 default:
c4408f814b1a257 William Breathitt Gray 2020-09-26 202 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 203 }
c4408f814b1a257 William Breathitt Gray 2020-09-26 204
c4408f814b1a257 William Breathitt Gray 2020-09-26 205 /* Configure component info for comp node */
c4408f814b1a257 William Breathitt Gray 2020-09-26 206 switch (watch.component.type) {
c4408f814b1a257 William Breathitt Gray 2020-09-26 207 case COUNTER_COMPONENT_SIGNAL:
c4408f814b1a257 William Breathitt Gray 2020-09-26 208 if (watch.component.scope != COUNTER_SCOPE_SIGNAL)
c4408f814b1a257 William Breathitt Gray 2020-09-26 209 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 210
c4408f814b1a257 William Breathitt Gray 2020-09-26 211 comp_node.comp.type = COUNTER_COMP_SIGNAL_LEVEL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 212 comp_node.comp.signal_u8_read = counter->ops->signal_read;
c4408f814b1a257 William Breathitt Gray 2020-09-26 213 break;
c4408f814b1a257 William Breathitt Gray 2020-09-26 214 case COUNTER_COMPONENT_COUNT:
c4408f814b1a257 William Breathitt Gray 2020-09-26 215 if (watch.component.scope != COUNTER_SCOPE_COUNT)
c4408f814b1a257 William Breathitt Gray 2020-09-26 216 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 217
c4408f814b1a257 William Breathitt Gray 2020-09-26 218 comp_node.comp.type = COUNTER_COMP_U64;
c4408f814b1a257 William Breathitt Gray 2020-09-26 219 comp_node.comp.count_u64_read = counter->ops->count_read;
c4408f814b1a257 William Breathitt Gray 2020-09-26 220 break;
c4408f814b1a257 William Breathitt Gray 2020-09-26 221 case COUNTER_COMPONENT_FUNCTION:
c4408f814b1a257 William Breathitt Gray 2020-09-26 222 if (watch.component.scope != COUNTER_SCOPE_COUNT)
c4408f814b1a257 William Breathitt Gray 2020-09-26 223 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 224
c4408f814b1a257 William Breathitt Gray 2020-09-26 225 comp_node.comp.type = COUNTER_COMP_FUNCTION;
c4408f814b1a257 William Breathitt Gray 2020-09-26 226 comp_node.comp.count_u8_read = counter->ops->function_read;
c4408f814b1a257 William Breathitt Gray 2020-09-26 227 break;
c4408f814b1a257 William Breathitt Gray 2020-09-26 228 case COUNTER_COMPONENT_SYNAPSE_ACTION:
c4408f814b1a257 William Breathitt Gray 2020-09-26 229 if (watch.component.scope != COUNTER_SCOPE_COUNT)
c4408f814b1a257 William Breathitt Gray 2020-09-26 230 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 231 if (counter->counts[parent].num_synapses < id + 1)
c4408f814b1a257 William Breathitt Gray 2020-09-26 232 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 233
c4408f814b1a257 William Breathitt Gray 2020-09-26 234 comp_node.comp.type = COUNTER_COMP_SYNAPSE_ACTION;
c4408f814b1a257 William Breathitt Gray 2020-09-26 235 comp_node.comp.action_read = counter->ops->action_read;
c4408f814b1a257 William Breathitt Gray 2020-09-26 236 comp_node.comp.priv = counter->counts[parent].synapses + id;
c4408f814b1a257 William Breathitt Gray 2020-09-26 237 break;
c4408f814b1a257 William Breathitt Gray 2020-09-26 238 case COUNTER_COMPONENT_EXTENSION:
c4408f814b1a257 William Breathitt Gray 2020-09-26 239 if (num_ext < id + 1)
c4408f814b1a257 William Breathitt Gray 2020-09-26 240 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 241
c4408f814b1a257 William Breathitt Gray 2020-09-26 @242 comp_node.comp = ext[id];
c4408f814b1a257 William Breathitt Gray 2020-09-26 243 break;
c4408f814b1a257 William Breathitt Gray 2020-09-26 244 default:
c4408f814b1a257 William Breathitt Gray 2020-09-26 245 return -EINVAL;
c4408f814b1a257 William Breathitt Gray 2020-09-26 246 }
c4408f814b1a257 William Breathitt Gray 2020-09-26 @247 if (!comp_node.comp.count_u8_read)
c4408f814b1a257 William Breathitt Gray 2020-09-26 248 return -EFAULT;
c4408f814b1a257 William Breathitt Gray 2020-09-26 249 comp_node.component = watch.component;
c4408f814b1a257 William Breathitt Gray 2020-09-26 250
c4408f814b1a257 William Breathitt Gray 2020-09-26 251 return counter_set_event_node(counter, &watch, &comp_node);
c4408f814b1a257 William Breathitt Gray 2020-09-26 252 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
[linux-stable-rc:linux-5.8.y 1791/2081] WARNING: modpost: vmlinux.o(.text.unlikely+0x77c): Section mismatch in reference from the variable $L91 to the variable .init.data:l1parity
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
head: cfc6983c955542777cc0caa08290666fe1510f92
commit: 2f24ab64b8cc1b039316ae1a6e77c903a8568bdf [1791/2081] MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()
config: mips-malta_qemu_32r6_defconfig (attached as .config)
compiler: mipsel-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.gi...
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-5.8.y
git checkout 2f24ab64b8cc1b039316ae1a6e77c903a8568bdf
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x77c): Section mismatch in reference from the variable $L91 to the variable .init.data:l1parity
The function $L91() references
the variable __initdata l1parity.
This is often because $L91 lacks a __initdata
annotation or the annotation of l1parity is wrong.
--
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x85c): Section mismatch in reference from the variable $L143 to the variable .init.data:l1parity
The function $L143() references
the variable __initdata l1parity.
This is often because $L143 lacks a __initdata
annotation or the annotation of l1parity is wrong.
--
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x870): Section mismatch in reference from the variable $L143 to the variable .init.data:l2parity
The function $L143() references
the variable __initdata l2parity.
This is often because $L143 lacks a __initdata
annotation or the annotation of l2parity is wrong.
--
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x898): Section mismatch in reference from the variable $L105 to the variable .init.data:l2parity
The function $L105() references
the variable __initdata l2parity.
This is often because $L105 lacks a __initdata
annotation or the annotation of l2parity is wrong.
--
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x908): Section mismatch in reference from the variable $L110 to the variable .init.data:l1parity
The function $L110() references
the variable __initdata l1parity.
This is often because $L110 lacks a __initdata
annotation or the annotation of l1parity is wrong.
--
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x6e0): Section mismatch in reference from the variable $L84 to the variable .init.data:l2parity
The function $L84() references
the variable __initdata l2parity.
This is often because $L84 lacks a __initdata
annotation or the annotation of l2parity is wrong.
--
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x6ec): Section mismatch in reference from the variable $L85 to the variable .init.data:l1parity
The function $L85() references
the variable __initdata l1parity.
This is often because $L85 lacks a __initdata
annotation or the annotation of l1parity is wrong.
--
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x728): Section mismatch in reference from the variable $L88 to the variable .init.data:l2parity
The function $L88() references
the variable __initdata l2parity.
This is often because $L88 lacks a __initdata
annotation or the annotation of l2parity is wrong.
--
>> WARNING: modpost: vmlinux.o(.text.unlikely+0x758): Section mismatch in reference from the variable $L90 to the variable .init.data:l2parity
The function $L90() references
the variable __initdata l2parity.
This is often because $L90 lacks a __initdata
annotation or the annotation of l2parity is wrong.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
drivers/pinctrl/intel/pinctrl-intel.c:210: error: Cannot parse enum!
by kernel test robot
Hi Mauro,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 9d9af1007bc08971953ae915d88dc9bb21344b53
commit: d38c8cfb057183f619dc8534030bb64b63f78043 scripts: kernel-doc: add support for typedef enum
date: 3 days ago
config: x86_64-rhel-7.6-kselftests (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d38c8cfb057183f619dc8534030bb64b63f78043
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/pinctrl/intel/pinctrl-intel.c:210: error: Cannot parse enum!
vim +210 drivers/pinctrl/intel/pinctrl-intel.c
7981c0015af2632 Mika Westerberg 2015-03-30 192
1bd231538c21d1c Andy Shevchenko 2019-08-12 193 /**
1bd231538c21d1c Andy Shevchenko 2019-08-12 194 * enum - Locking variants of the pad configuration
1bd231538c21d1c Andy Shevchenko 2019-08-12 195 *
1bd231538c21d1c Andy Shevchenko 2019-08-12 196 * @PAD_UNLOCKED: pad is fully controlled by the configuration registers
1bd231538c21d1c Andy Shevchenko 2019-08-12 197 * @PAD_LOCKED: pad configuration registers, except TX state, are locked
1bd231538c21d1c Andy Shevchenko 2019-08-12 198 * @PAD_LOCKED_TX: pad configuration TX state is locked
1bd231538c21d1c Andy Shevchenko 2019-08-12 199 * @PAD_LOCKED_FULL: pad configuration registers are locked completely
1bd231538c21d1c Andy Shevchenko 2019-08-12 200 *
1bd231538c21d1c Andy Shevchenko 2019-08-12 201 * Locking is considered as read-only mode for corresponding registers and
1bd231538c21d1c Andy Shevchenko 2019-08-12 202 * their respective fields. That said, TX state bit is locked separately from
1bd231538c21d1c Andy Shevchenko 2019-08-12 203 * the main locking scheme.
1bd231538c21d1c Andy Shevchenko 2019-08-12 204 */
1bd231538c21d1c Andy Shevchenko 2019-08-12 205 enum {
1bd231538c21d1c Andy Shevchenko 2019-08-12 206 PAD_UNLOCKED = 0,
1bd231538c21d1c Andy Shevchenko 2019-08-12 207 PAD_LOCKED = 1,
1bd231538c21d1c Andy Shevchenko 2019-08-12 208 PAD_LOCKED_TX = 2,
1bd231538c21d1c Andy Shevchenko 2019-08-12 209 PAD_LOCKED_FULL = PAD_LOCKED | PAD_LOCKED_TX,
1bd231538c21d1c Andy Shevchenko 2019-08-12 @210 };
1bd231538c21d1c Andy Shevchenko 2019-08-12 211
:::::: The code at line 210 was first introduced by commit
:::::: 1bd231538c21d1cd691e71cbeeb4100fabc58068 pinctrl: intel: Allow to request locked pads
:::::: TO: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
:::::: CC: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
drivers/pinctrl/intel/pinctrl-intel.c:210: error: Cannot parse enum!
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 9d9af1007bc08971953ae915d88dc9bb21344b53
commit: d38c8cfb057183f619dc8534030bb64b63f78043 scripts: kernel-doc: add support for typedef enum
date: 3 days ago
config: x86_64-rhel (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d38c8cfb057183f619dc8534030bb64b63f78043
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/pinctrl/intel/pinctrl-intel.c:210: error: Cannot parse enum!
vim +210 drivers/pinctrl/intel/pinctrl-intel.c
7981c0015af2632 Mika Westerberg 2015-03-30 192
1bd231538c21d1c Andy Shevchenko 2019-08-12 193 /**
1bd231538c21d1c Andy Shevchenko 2019-08-12 194 * enum - Locking variants of the pad configuration
1bd231538c21d1c Andy Shevchenko 2019-08-12 195 *
1bd231538c21d1c Andy Shevchenko 2019-08-12 196 * @PAD_UNLOCKED: pad is fully controlled by the configuration registers
1bd231538c21d1c Andy Shevchenko 2019-08-12 197 * @PAD_LOCKED: pad configuration registers, except TX state, are locked
1bd231538c21d1c Andy Shevchenko 2019-08-12 198 * @PAD_LOCKED_TX: pad configuration TX state is locked
1bd231538c21d1c Andy Shevchenko 2019-08-12 199 * @PAD_LOCKED_FULL: pad configuration registers are locked completely
1bd231538c21d1c Andy Shevchenko 2019-08-12 200 *
1bd231538c21d1c Andy Shevchenko 2019-08-12 201 * Locking is considered as read-only mode for corresponding registers and
1bd231538c21d1c Andy Shevchenko 2019-08-12 202 * their respective fields. That said, TX state bit is locked separately from
1bd231538c21d1c Andy Shevchenko 2019-08-12 203 * the main locking scheme.
1bd231538c21d1c Andy Shevchenko 2019-08-12 204 */
1bd231538c21d1c Andy Shevchenko 2019-08-12 205 enum {
1bd231538c21d1c Andy Shevchenko 2019-08-12 206 PAD_UNLOCKED = 0,
1bd231538c21d1c Andy Shevchenko 2019-08-12 207 PAD_LOCKED = 1,
1bd231538c21d1c Andy Shevchenko 2019-08-12 208 PAD_LOCKED_TX = 2,
1bd231538c21d1c Andy Shevchenko 2019-08-12 209 PAD_LOCKED_FULL = PAD_LOCKED | PAD_LOCKED_TX,
1bd231538c21d1c Andy Shevchenko 2019-08-12 @210 };
1bd231538c21d1c Andy Shevchenko 2019-08-12 211
:::::: The code at line 210 was first introduced by commit
:::::: 1bd231538c21d1cd691e71cbeeb4100fabc58068 pinctrl: intel: Allow to request locked pads
:::::: TO: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
:::::: CC: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months
[linux-stable-rc:linux-5.4.y 665/2391] drivers/android/binder.c:3776: Error: unrecognized keyword/register name `l.lwz
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
head: 85b0841aab15c12948af951d477183ab3df7de14
commit: c5665cafbedd2e2a523fe933e452391a02d3adb3 [665/2391] binder: Prevent context manager from incrementing ref 0
config: openrisc-randconfig-r002-20201014 (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.gi...
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-5.4.y
git checkout c5665cafbedd2e2a523fe933e452391a02d3adb3
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=openrisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/android/binder.c: Assembler messages:
>> drivers/android/binder.c:3776: Error: unrecognized keyword/register name `l.lwz ?ap,4(r25)'
drivers/android/binder.c:3781: Error: unrecognized keyword/register name `l.addi ?ap,r0,0'
vim +3776 drivers/android/binder.c
44d8047f1d87adc drivers/android/binder.c Todd Kjos 2018-08-28 3602
fb07ebc3e82a98a drivers/staging/android/binder.c Bojan Prtvar 2013-09-02 3603 static int binder_thread_write(struct binder_proc *proc,
fb07ebc3e82a98a drivers/staging/android/binder.c Bojan Prtvar 2013-09-02 3604 struct binder_thread *thread,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3605 binder_uintptr_t binder_buffer, size_t size,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3606 binder_size_t *consumed)
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3607 {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3608 uint32_t cmd;
342e5c90b60134d drivers/android/binder.c Martijn Coenen 2017-02-03 3609 struct binder_context *context = proc->context;
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3610 void __user *buffer = (void __user *)(uintptr_t)binder_buffer;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3611 void __user *ptr = buffer + *consumed;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3612 void __user *end = buffer + size;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3613
26549d17741035b drivers/android/binder.c Todd Kjos 2017-06-29 3614 while (ptr < end && thread->return_error.cmd == BR_OK) {
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3615 int ret;
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3616
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3617 if (get_user(cmd, (uint32_t __user *)ptr))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3618 return -EFAULT;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3619 ptr += sizeof(uint32_t);
975a1ac9a9fe65d drivers/staging/android/binder.c Arve Hjønnevåg 2012-10-16 3620 trace_binder_command(cmd);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3621 if (_IOC_NR(cmd) < ARRAY_SIZE(binder_stats.bc)) {
0953c7976c36ce0 drivers/android/binder.c Badhri Jagan Sridharan 2017-06-29 3622 atomic_inc(&binder_stats.bc[_IOC_NR(cmd)]);
0953c7976c36ce0 drivers/android/binder.c Badhri Jagan Sridharan 2017-06-29 3623 atomic_inc(&proc->stats.bc[_IOC_NR(cmd)]);
0953c7976c36ce0 drivers/android/binder.c Badhri Jagan Sridharan 2017-06-29 3624 atomic_inc(&thread->stats.bc[_IOC_NR(cmd)]);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3625 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3626 switch (cmd) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3627 case BC_INCREFS:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3628 case BC_ACQUIRE:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3629 case BC_RELEASE:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3630 case BC_DECREFS: {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3631 uint32_t target;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3632 const char *debug_string;
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3633 bool strong = cmd == BC_ACQUIRE || cmd == BC_RELEASE;
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3634 bool increment = cmd == BC_INCREFS || cmd == BC_ACQUIRE;
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3635 struct binder_ref_data rdata;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3636
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3637 if (get_user(target, (uint32_t __user *)ptr))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3638 return -EFAULT;
c44b1231ff11709 drivers/android/binder.c Todd Kjos 2017-06-29 3639
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3640 ptr += sizeof(uint32_t);
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3641 ret = -1;
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3642 if (increment && !target) {
c44b1231ff11709 drivers/android/binder.c Todd Kjos 2017-06-29 3643 struct binder_node *ctx_mgr_node;
c44b1231ff11709 drivers/android/binder.c Todd Kjos 2017-06-29 3644 mutex_lock(&context->context_mgr_node_lock);
c44b1231ff11709 drivers/android/binder.c Todd Kjos 2017-06-29 3645 ctx_mgr_node = context->binder_context_mgr_node;
c5665cafbedd2e2 drivers/android/binder.c Jann Horn 2020-07-27 3646 if (ctx_mgr_node) {
c5665cafbedd2e2 drivers/android/binder.c Jann Horn 2020-07-27 3647 if (ctx_mgr_node->proc == proc) {
c5665cafbedd2e2 drivers/android/binder.c Jann Horn 2020-07-27 3648 binder_user_error("%d:%d context manager tried to acquire desc 0\n",
c5665cafbedd2e2 drivers/android/binder.c Jann Horn 2020-07-27 3649 proc->pid, thread->pid);
c5665cafbedd2e2 drivers/android/binder.c Jann Horn 2020-07-27 3650 mutex_unlock(&context->context_mgr_node_lock);
c5665cafbedd2e2 drivers/android/binder.c Jann Horn 2020-07-27 3651 return -EINVAL;
c5665cafbedd2e2 drivers/android/binder.c Jann Horn 2020-07-27 3652 }
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3653 ret = binder_inc_ref_for_node(
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3654 proc, ctx_mgr_node,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3655 strong, NULL, &rdata);
c5665cafbedd2e2 drivers/android/binder.c Jann Horn 2020-07-27 3656 }
c44b1231ff11709 drivers/android/binder.c Todd Kjos 2017-06-29 3657 mutex_unlock(&context->context_mgr_node_lock);
c44b1231ff11709 drivers/android/binder.c Todd Kjos 2017-06-29 3658 }
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3659 if (ret)
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3660 ret = binder_update_ref_for_handle(
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3661 proc, target, increment, strong,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3662 &rdata);
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3663 if (!ret && rdata.desc != target) {
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3664 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 3665 proc->pid, thread->pid,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3666 target, rdata.desc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3667 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3668 switch (cmd) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3669 case BC_INCREFS:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3670 debug_string = "IncRefs";
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3671 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3672 case BC_ACQUIRE:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3673 debug_string = "Acquire";
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 case BC_RELEASE:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3676 debug_string = "Release";
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3677 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3678 case BC_DECREFS:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3679 default:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3680 debug_string = "DecRefs";
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3681 break;
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3682 }
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3683 if (ret) {
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3684 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 3685 proc->pid, thread->pid, debug_string,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3686 strong, target, ret);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3687 break;
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 binder_debug(BINDER_DEBUG_USER_REFS,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3690 "%d:%d %s ref %d desc %d s %d w %d\n",
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3691 proc->pid, thread->pid, debug_string,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3692 rdata.debug_id, rdata.desc, rdata.strong,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3693 rdata.weak);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3694 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3695 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3696 case BC_INCREFS_DONE:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3697 case BC_ACQUIRE_DONE: {
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3698 binder_uintptr_t node_ptr;
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3699 binder_uintptr_t cookie;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3700 struct binder_node *node;
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3701 bool free_node;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3702
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3703 if (get_user(node_ptr, (binder_uintptr_t __user *)ptr))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3704 return -EFAULT;
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3705 ptr += sizeof(binder_uintptr_t);
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3706 if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3707 return -EFAULT;
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3708 ptr += sizeof(binder_uintptr_t);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3709 node = binder_get_node(proc, node_ptr);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3710 if (node == NULL) {
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3711 binder_user_error("%d:%d %s u%016llx no match\n",
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3712 proc->pid, thread->pid,
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3713 cmd == BC_INCREFS_DONE ?
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3714 "BC_INCREFS_DONE" :
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3715 "BC_ACQUIRE_DONE",
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3716 (u64)node_ptr);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3717 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3718 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3719 if (cookie != node->cookie) {
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3720 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 3721 proc->pid, thread->pid,
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3722 cmd == BC_INCREFS_DONE ?
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3723 "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE",
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3724 (u64)node_ptr, node->debug_id,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3725 (u64)cookie, (u64)node->cookie);
adc1884222276df drivers/android/binder.c Todd Kjos 2017-06-29 3726 binder_put_node(node);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3727 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3728 }
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3729 binder_node_inner_lock(node);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3730 if (cmd == BC_ACQUIRE_DONE) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3731 if (node->pending_strong_ref == 0) {
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3732 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 3733 proc->pid, thread->pid,
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3734 node->debug_id);
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3735 binder_node_inner_unlock(node);
adc1884222276df drivers/android/binder.c Todd Kjos 2017-06-29 3736 binder_put_node(node);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3737 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3738 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3739 node->pending_strong_ref = 0;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3740 } else {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3741 if (node->pending_weak_ref == 0) {
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3742 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 3743 proc->pid, thread->pid,
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3744 node->debug_id);
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3745 binder_node_inner_unlock(node);
adc1884222276df drivers/android/binder.c Todd Kjos 2017-06-29 3746 binder_put_node(node);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3747 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3748 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3749 node->pending_weak_ref = 0;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3750 }
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3751 free_node = binder_dec_node_nilocked(node,
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3752 cmd == BC_ACQUIRE_DONE, 0);
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3753 WARN_ON(free_node);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3754 binder_debug(BINDER_DEBUG_USER_REFS,
adc1884222276df drivers/android/binder.c Todd Kjos 2017-06-29 3755 "%d:%d %s node %d ls %d lw %d tr %d\n",
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3756 proc->pid, thread->pid,
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3757 cmd == BC_INCREFS_DONE ? "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE",
adc1884222276df drivers/android/binder.c Todd Kjos 2017-06-29 3758 node->debug_id, node->local_strong_refs,
adc1884222276df drivers/android/binder.c Todd Kjos 2017-06-29 3759 node->local_weak_refs, node->tmp_refs);
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3760 binder_node_inner_unlock(node);
adc1884222276df drivers/android/binder.c Todd Kjos 2017-06-29 3761 binder_put_node(node);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3762 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3763 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3764 case BC_ATTEMPT_ACQUIRE:
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3765 pr_err("BC_ATTEMPT_ACQUIRE not supported\n");
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3766 return -EINVAL;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3767 case BC_ACQUIRE_RESULT:
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3768 pr_err("BC_ACQUIRE_RESULT not supported\n");
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3769 return -EINVAL;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3770
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3771 case BC_FREE_BUFFER: {
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3772 binder_uintptr_t data_ptr;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3773 struct binder_buffer *buffer;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3774
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3775 if (get_user(data_ptr, (binder_uintptr_t __user *)ptr))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 @3776 return -EFAULT;
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3777 ptr += sizeof(binder_uintptr_t);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3778
53d311cfa19ad35 drivers/android/binder.c Todd Kjos 2017-06-29 3779 buffer = binder_alloc_prepare_to_free(&proc->alloc,
19c987241ca1216 drivers/android/binder.c Todd Kjos 2017-06-29 3780 data_ptr);
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3781 if (IS_ERR_OR_NULL(buffer)) {
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3782 if (PTR_ERR(buffer) == -EPERM) {
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3783 binder_user_error(
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3784 "%d:%d BC_FREE_BUFFER u%016llx matched unreturned or currently freeing buffer\n",
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3785 proc->pid, thread->pid,
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3786 (u64)data_ptr);
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3787 } else {
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3788 binder_user_error(
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3789 "%d:%d BC_FREE_BUFFER u%016llx no match\n",
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3790 proc->pid, thread->pid,
7bada55ab506978 drivers/android/binder.c Todd Kjos 2018-11-06 3791 (u64)data_ptr);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3792 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3793 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3794 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3795 binder_debug(BINDER_DEBUG_FREE_BUFFER,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3796 "%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 3797 proc->pid, thread->pid, (u64)data_ptr,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3798 buffer->debug_id,
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3799 buffer->transaction ? "active" : "finished");
44d8047f1d87adc drivers/android/binder.c Todd Kjos 2018-08-28 3800 binder_free_buf(proc, buffer);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3801 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3802 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3803
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3804 case BC_TRANSACTION_SG:
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3805 case BC_REPLY_SG: {
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3806 struct binder_transaction_data_sg tr;
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3807
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3808 if (copy_from_user(&tr, ptr, sizeof(tr)))
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3809 return -EFAULT;
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3810 ptr += sizeof(tr);
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3811 binder_transaction(proc, thread, &tr.transaction_data,
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3812 cmd == BC_REPLY_SG, tr.buffers_size);
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3813 break;
7980240b6d63e06 drivers/android/binder.c Martijn Coenen 2017-02-03 3814 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3815 case BC_TRANSACTION:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3816 case BC_REPLY: {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3817 struct binder_transaction_data tr;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3818
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3819 if (copy_from_user(&tr, ptr, sizeof(tr)))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3820 return -EFAULT;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3821 ptr += sizeof(tr);
4bfac80af3a63f2 drivers/android/binder.c Martijn Coenen 2017-02-03 3822 binder_transaction(proc, thread, &tr,
4bfac80af3a63f2 drivers/android/binder.c Martijn Coenen 2017-02-03 3823 cmd == BC_REPLY, 0);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3824 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3825 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3826
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3827 case BC_REGISTER_LOOPER:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3828 binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3829 "%d:%d BC_REGISTER_LOOPER\n",
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3830 proc->pid, thread->pid);
b3e6861283790d7 drivers/android/binder.c Todd Kjos 2017-06-29 3831 binder_inner_proc_lock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3832 if (thread->looper & BINDER_LOOPER_STATE_ENTERED) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3833 thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3834 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 3835 proc->pid, thread->pid);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3836 } else if (proc->requested_threads == 0) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3837 thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3838 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 3839 proc->pid, thread->pid);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3840 } else {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3841 proc->requested_threads--;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3842 proc->requested_threads_started++;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3843 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3844 thread->looper |= BINDER_LOOPER_STATE_REGISTERED;
b3e6861283790d7 drivers/android/binder.c Todd Kjos 2017-06-29 3845 binder_inner_proc_unlock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3846 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3847 case BC_ENTER_LOOPER:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3848 binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3849 "%d:%d BC_ENTER_LOOPER\n",
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3850 proc->pid, thread->pid);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3851 if (thread->looper & BINDER_LOOPER_STATE_REGISTERED) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3852 thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3853 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 3854 proc->pid, thread->pid);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3855 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3856 thread->looper |= BINDER_LOOPER_STATE_ENTERED;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3857 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3858 case BC_EXIT_LOOPER:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3859 binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3860 "%d:%d BC_EXIT_LOOPER\n",
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3861 proc->pid, thread->pid);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3862 thread->looper |= BINDER_LOOPER_STATE_EXITED;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3863 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3864
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3865 case BC_REQUEST_DEATH_NOTIFICATION:
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3866 case BC_CLEAR_DEATH_NOTIFICATION: {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3867 uint32_t target;
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3868 binder_uintptr_t cookie;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3869 struct binder_ref *ref;
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3870 struct binder_ref_death *death = NULL;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3871
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3872 if (get_user(target, (uint32_t __user *)ptr))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3873 return -EFAULT;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3874 ptr += sizeof(uint32_t);
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3875 if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3876 return -EFAULT;
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3877 ptr += sizeof(binder_uintptr_t);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3878 if (cmd == BC_REQUEST_DEATH_NOTIFICATION) {
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3879 /*
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3880 * Allocate memory for death notification
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3881 * before taking lock
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3882 */
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3883 death = kzalloc(sizeof(*death), GFP_KERNEL);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3884 if (death == NULL) {
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3885 WARN_ON(thread->return_error.cmd !=
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3886 BR_OK);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3887 thread->return_error.cmd = BR_ERROR;
148ade2c4d4f46b drivers/android/binder.c Martijn Coenen 2017-11-15 3888 binder_enqueue_thread_work(
148ade2c4d4f46b drivers/android/binder.c Martijn Coenen 2017-11-15 3889 thread,
148ade2c4d4f46b drivers/android/binder.c Martijn Coenen 2017-11-15 3890 &thread->return_error.work);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3891 binder_debug(
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3892 BINDER_DEBUG_FAILED_TRANSACTION,
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3893 "%d:%d BC_REQUEST_DEATH_NOTIFICATION failed\n",
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3894 proc->pid, thread->pid);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3895 break;
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3896 }
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3897 }
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3898 binder_proc_lock(proc);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3899 ref = binder_get_ref_olocked(proc, target, false);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3900 if (ref == NULL) {
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3901 binder_user_error("%d:%d %s invalid ref %d\n",
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3902 proc->pid, thread->pid,
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3903 cmd == BC_REQUEST_DEATH_NOTIFICATION ?
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3904 "BC_REQUEST_DEATH_NOTIFICATION" :
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3905 "BC_CLEAR_DEATH_NOTIFICATION",
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3906 target);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3907 binder_proc_unlock(proc);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3908 kfree(death);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3909 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3910 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3911
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3912 binder_debug(BINDER_DEBUG_DEATH_NOTIFICATION,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3913 "%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 3914 proc->pid, thread->pid,
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3915 cmd == BC_REQUEST_DEATH_NOTIFICATION ?
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3916 "BC_REQUEST_DEATH_NOTIFICATION" :
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3917 "BC_CLEAR_DEATH_NOTIFICATION",
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3918 (u64)cookie, ref->data.debug_id,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3919 ref->data.desc, ref->data.strong,
372e3147df7016e drivers/android/binder.c Todd Kjos 2017-06-29 3920 ref->data.weak, ref->node->debug_id);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3921
ab51ec6bdf0b7af drivers/android/binder.c Martijn Coenen 2017-06-29 3922 binder_node_lock(ref->node);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3923 if (cmd == BC_REQUEST_DEATH_NOTIFICATION) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3924 if (ref->death) {
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3925 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 3926 proc->pid, thread->pid);
ab51ec6bdf0b7af drivers/android/binder.c Martijn Coenen 2017-06-29 3927 binder_node_unlock(ref->node);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3928 binder_proc_unlock(proc);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3929 kfree(death);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3930 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3931 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3932 binder_stats_created(BINDER_STAT_DEATH);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3933 INIT_LIST_HEAD(&death->work.entry);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3934 death->cookie = cookie;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3935 ref->death = death;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3936 if (ref->node->proc == NULL) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3937 ref->death->work.type = BINDER_WORK_DEAD_BINDER;
bb74562a7f83982 drivers/android/binder.c Martijn Coenen 2017-08-31 3938
1b77e9dcc3da935 drivers/android/binder.c Martijn Coenen 2017-08-31 3939 binder_inner_proc_lock(proc);
1b77e9dcc3da935 drivers/android/binder.c Martijn Coenen 2017-08-31 3940 binder_enqueue_work_ilocked(
bb74562a7f83982 drivers/android/binder.c Martijn Coenen 2017-08-31 3941 &ref->death->work, &proc->todo);
bb74562a7f83982 drivers/android/binder.c Martijn Coenen 2017-08-31 3942 binder_wakeup_proc_ilocked(proc);
1b77e9dcc3da935 drivers/android/binder.c Martijn Coenen 2017-08-31 3943 binder_inner_proc_unlock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3944 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3945 } else {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3946 if (ref->death == NULL) {
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3947 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 3948 proc->pid, thread->pid);
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3949 binder_node_unlock(ref->node);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3950 binder_proc_unlock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3951 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3952 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3953 death = ref->death;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3954 if (death->cookie != cookie) {
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3955 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 3956 proc->pid, thread->pid,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3957 (u64)death->cookie,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3958 (u64)cookie);
673068eee8560d5 drivers/android/binder.c Todd Kjos 2017-06-29 3959 binder_node_unlock(ref->node);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3960 binder_proc_unlock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3961 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3962 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3963 ref->death = NULL;
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3964 binder_inner_proc_lock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3965 if (list_empty(&death->work.entry)) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3966 death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION;
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3967 if (thread->looper &
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3968 (BINDER_LOOPER_STATE_REGISTERED |
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3969 BINDER_LOOPER_STATE_ENTERED))
148ade2c4d4f46b drivers/android/binder.c Martijn Coenen 2017-11-15 3970 binder_enqueue_thread_work_ilocked(
148ade2c4d4f46b drivers/android/binder.c Martijn Coenen 2017-11-15 3971 thread,
148ade2c4d4f46b drivers/android/binder.c Martijn Coenen 2017-11-15 3972 &death->work);
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3973 else {
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3974 binder_enqueue_work_ilocked(
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3975 &death->work,
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3976 &proc->todo);
1b77e9dcc3da935 drivers/android/binder.c Martijn Coenen 2017-08-31 3977 binder_wakeup_proc_ilocked(
408c68b17aea2f2 drivers/android/binder.c Martijn Coenen 2017-08-31 3978 proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3979 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3980 } else {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3981 BUG_ON(death->work.type != BINDER_WORK_DEAD_BINDER);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3982 death->work.type = BINDER_WORK_DEAD_BINDER_AND_CLEAR;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3983 }
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3984 binder_inner_proc_unlock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3985 }
ab51ec6bdf0b7af drivers/android/binder.c Martijn Coenen 2017-06-29 3986 binder_node_unlock(ref->node);
2c1838dc6817dd2 drivers/android/binder.c Todd Kjos 2017-06-29 3987 binder_proc_unlock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3988 } break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3989 case BC_DEAD_BINDER_DONE: {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3990 struct binder_work *w;
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3991 binder_uintptr_t cookie;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3992 struct binder_ref_death *death = NULL;
10f62861b4a2f22 drivers/staging/android/binder.c Seunghun Lee 2014-05-01 3993
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3994 if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3995 return -EFAULT;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3996
7a64cd887fdb97f drivers/android/binder.c Lisa Du 2016-02-17 3997 ptr += sizeof(cookie);
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3998 binder_inner_proc_lock(proc);
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 3999 list_for_each_entry(w, &proc->delivered_death,
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4000 entry) {
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4001 struct binder_ref_death *tmp_death =
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4002 container_of(w,
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4003 struct binder_ref_death,
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4004 work);
10f62861b4a2f22 drivers/staging/android/binder.c Seunghun Lee 2014-05-01 4005
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4006 if (tmp_death->cookie == cookie) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4007 death = tmp_death;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4008 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4009 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4010 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4011 binder_debug(BINDER_DEBUG_DEAD_BINDER,
8ca86f1639ec589 drivers/android/binder.c Todd Kjos 2018-02-07 4012 "%d:%d BC_DEAD_BINDER_DONE %016llx found %pK\n",
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 4013 proc->pid, thread->pid, (u64)cookie,
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 4014 death);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4015 if (death == NULL) {
da49889deb34d35 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 4016 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 4017 proc->pid, thread->pid, (u64)cookie);
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4018 binder_inner_proc_unlock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4019 break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4020 }
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4021 binder_dequeue_work_ilocked(&death->work);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4022 if (death->work.type == BINDER_WORK_DEAD_BINDER_AND_CLEAR) {
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4023 death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION;
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4024 if (thread->looper &
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4025 (BINDER_LOOPER_STATE_REGISTERED |
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4026 BINDER_LOOPER_STATE_ENTERED))
148ade2c4d4f46b drivers/android/binder.c Martijn Coenen 2017-11-15 4027 binder_enqueue_thread_work_ilocked(
148ade2c4d4f46b drivers/android/binder.c Martijn Coenen 2017-11-15 4028 thread, &death->work);
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4029 else {
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4030 binder_enqueue_work_ilocked(
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4031 &death->work,
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4032 &proc->todo);
408c68b17aea2f2 drivers/android/binder.c Martijn Coenen 2017-08-31 4033 binder_wakeup_proc_ilocked(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4034 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4035 }
72196393a5e3d28 drivers/android/binder.c Todd Kjos 2017-06-29 4036 binder_inner_proc_unlock(proc);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4037 } break;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4038
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4039 default:
56b468fc709b2b9 drivers/staging/android/binder.c Anmol Sarma 2012-10-30 4040 pr_err("%d:%d unknown command %d\n",
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4041 proc->pid, thread->pid, cmd);
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4042 return -EINVAL;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4043 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4044 *consumed = ptr - buffer;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4045 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4046 return 0;
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4047 }
355b0502f6efea0 drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4048
:::::: The code at line 3776 was first introduced by commit
:::::: 355b0502f6efea0ff9492753888772c96972d2a3 Revert "Staging: android: delete android drivers"
:::::: TO: Greg Kroah-Hartman <gregkh(a)suse.de>
:::::: CC: Greg Kroah-Hartman <gregkh(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 11 months