Hi Jia-Ju,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
[also build test ERROR on v4.20 next-20181224]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system]
url:
https://github.com/0day-ci/linux/commits/Jia-Ju-Bai/net-arcnet-Fix-a-possible-concurrency-use-after-free-bug-in-arcnet_reply_tasklet/20181227-020417
config: x86_64-randconfig-x005-201851 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All error/warnings (new ones prefixed by >>):
In file included from include/linux/kernel.h:13:0,
from include/linux/list.h:9,
from include/linux/module.h:9,
from drivers/net/arcnet/arcnet.c:46:
drivers/net/arcnet/arcnet.c: In function 'arcnet_reply_tasklet':
>> drivers/net/arcnet/arcnet.c:429:31: error: 'flags' undeclared (first use in
>> this function); did you mean 'class'?
spin_lock_irqsave(>lock, flags);
^
include/linux/typecheck.h:11:9: note: in definition of macro 'typecheck'
typeof(x) __dummy2; \
^
>> include/linux/spinlock.h:359:2: note: in expansion of macro
>> 'raw_spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
>> drivers/net/arcnet/arcnet.c:429:2: note: in expansion of macro
>> 'spin_lock_irqsave'
spin_lock_irqsave(>lock, flags);
^
drivers/net/arcnet/arcnet.c:429:31: note: each undeclared identifier is
reported only once for each function it appears in
spin_lock_irqsave(>lock, flags);
^
include/linux/typecheck.h:11:9: note: in definition of macro 'typecheck'
typeof(x) __dummy2; \
^
>> include/linux/spinlock.h:359:2: note: in expansion of macro
>> 'raw_spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
>> drivers/net/arcnet/arcnet.c:429:2: note: in expansion of macro
>> 'spin_lock_irqsave'
spin_lock_irqsave(>lock, flags);
^
>> include/linux/typecheck.h:12:18: warning: comparison of distinct pointer
>> types lacks a cast
(void)(&__dummy == &__dummy2); \
^
>> include/linux/spinlock.h:240:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^
>> include/linux/spinlock.h:359:2: note: in expansion of macro
>> 'raw_spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
>> drivers/net/arcnet/arcnet.c:429:2: note: in expansion of macro
>> 'spin_lock_irqsave'
spin_lock_irqsave(>lock, flags);
^
--
In file included from include/linux/kernel.h:13:0,
from include/linux/list.h:9,
from include/linux/module.h:9,
from drivers/net//arcnet/arcnet.c:46:
drivers/net//arcnet/arcnet.c: In function 'arcnet_reply_tasklet':
drivers/net//arcnet/arcnet.c:429:31: error: 'flags' undeclared (first use in
this function); did you mean 'class'?
spin_lock_irqsave(>lock, flags);
^
include/linux/typecheck.h:11:9: note: in definition of macro 'typecheck'
typeof(x) __dummy2; \
^
>> include/linux/spinlock.h:359:2: note: in expansion of macro
>> 'raw_spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
drivers/net//arcnet/arcnet.c:429:2: note: in expansion of macro
'spin_lock_irqsave'
spin_lock_irqsave(>lock, flags);
^
drivers/net//arcnet/arcnet.c:429:31: note: each undeclared identifier is
reported only once for each function it appears in
spin_lock_irqsave(>lock, flags);
^
include/linux/typecheck.h:11:9: note: in definition of macro 'typecheck'
typeof(x) __dummy2; \
^
>> include/linux/spinlock.h:359:2: note: in expansion of macro
>> 'raw_spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
drivers/net//arcnet/arcnet.c:429:2: note: in expansion of macro
'spin_lock_irqsave'
spin_lock_irqsave(>lock, flags);
^
>> include/linux/typecheck.h:12:18: warning: comparison of distinct pointer
>> types lacks a cast
(void)(&__dummy == &__dummy2); \
^
>> include/linux/spinlock.h:240:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^
>> include/linux/spinlock.h:359:2: note: in expansion of macro
>> 'raw_spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
drivers/net//arcnet/arcnet.c:429:2: note: in expansion of macro
'spin_lock_irqsave'
spin_lock_irqsave(>lock, flags);