Hi Chanho,
I love your patch! Yet something to improve:
[auto build test ERROR on sound/for-next] [also build test ERROR on v4.20-rc3 next-20181123] [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/Chanho-Min/ALSA-pcm-Fix-starvation-... base: https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next config: x86_64-allmodconfig (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 errors (new ones prefixed by >>):
include/linux/slab.h:332:43: warning: dubious: x & !y include/linux/slab.h:332:43: warning: dubious: x & !y include/linux/slab.h:332:43: warning: dubious: x & !y include/linux/slab.h:332:43: warning: dubious: x & !y sound/core/pcm_native.c:590:51: warning: incorrect type in assignment (different base types) sound/core/pcm_native.c:590:51: expected restricted snd_pcm_state_t [usertype] state sound/core/pcm_native.c:590:51: got int [signed] state sound/core/pcm_native.c:755:38: warning: incorrect type in argument 2 (different base types) sound/core/pcm_native.c:755:38: expected int [signed] state sound/core/pcm_native.c:755:38: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:767:38: warning: incorrect type in argument 2 (different base types) sound/core/pcm_native.c:767:38: expected int [signed] state sound/core/pcm_native.c:767:38: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:816:38: warning: incorrect type in argument 2 (different base types) sound/core/pcm_native.c:816:38: expected int [signed] state sound/core/pcm_native.c:816:38: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:1226:32: warning: incorrect type in assignment (different base types) sound/core/pcm_native.c:1226:32: expected restricted snd_pcm_state_t [usertype] state sound/core/pcm_native.c:1226:32: got int [signed] state sound/core/pcm_native.c:1250:31: warning: incorrect type in argument 3 (different base types) sound/core/pcm_native.c:1250:31: expected int [signed] state sound/core/pcm_native.c:1250:31: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:1257:40: warning: incorrect type in argument 3 (different base types) sound/core/pcm_native.c:1257:40: expected int [signed] state sound/core/pcm_native.c:1257:40: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:1283:28: warning: restricted snd_pcm_state_t degrades to integer sound/core/pcm_native.c:1285:40: warning: incorrect type in assignment (different base types) sound/core/pcm_native.c:1285:40: expected restricted snd_pcm_state_t [usertype] state sound/core/pcm_native.c:1285:40: got int [signed] state sound/core/pcm_native.c:1309:64: warning: incorrect type in argument 3 (different base types) sound/core/pcm_native.c:1309:64: expected int [signed] state sound/core/pcm_native.c:1309:64: got restricted snd_pcm_state_t [usertype] state sound/core/pcm_native.c:1325:38: warning: incorrect type in argument 3 (different base types) sound/core/pcm_native.c:1325:38: expected int [signed] state sound/core/pcm_native.c:1325:38: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:1684:38: warning: incorrect type in argument 2 (different base types) sound/core/pcm_native.c:1684:38: expected int [signed] state sound/core/pcm_native.c:1684:38: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:1750:61: warning: incorrect type in argument 2 (different base types) sound/core/pcm_native.c:1750:61: expected int [signed] state sound/core/pcm_native.c:1750:61: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:1751:63: warning: incorrect type in argument 2 (different base types) sound/core/pcm_native.c:1751:63: expected int [signed] state sound/core/pcm_native.c:1751:63: got restricted snd_pcm_state_t [usertype] <noident> sound/core/pcm_native.c:1768:76: warning: incorrect type in initializer (different base types) sound/core/pcm_native.c:1768:76: expected int [signed] new_state sound/core/pcm_native.c:1768:76: got restricted snd_pcm_state_t include/linux/slab.h:332:43: warning: dubious: x & !y
sound/core/pcm_native.c:99:17: error: undefined identifier 'msleep' sound/core/pcm_native.c:99:23: error: not a function <noident>
sound/core/pcm_native.c:2089:26: warning: restricted snd_pcm_format_t degrades to integer sound/core/pcm_native.c:2093:54: warning: incorrect type in argument 1 (different base types) sound/core/pcm_native.c:2093:54: expected restricted snd_pcm_format_t [usertype] format sound/core/pcm_native.c:2093:54: got unsigned int [unsigned] [assigned] k sound/core/pcm_native.c:2111:26: warning: restricted snd_pcm_format_t degrades to integer sound/core/pcm_native.c:2115:54: warning: incorrect type in argument 1 (different base types) sound/core/pcm_native.c:2115:54: expected restricted snd_pcm_format_t [usertype] format sound/core/pcm_native.c:2115:54: got unsigned int [unsigned] [assigned] k sound/core/pcm_native.c:2295:30: warning: restricted snd_pcm_access_t degrades to integer sound/core/pcm_native.c:2297:30: warning: restricted snd_pcm_access_t degrades to integer sound/core/pcm_native.c:2300:38: warning: restricted snd_pcm_access_t degrades to integer sound/core/pcm_native.c:2302:38: warning: restricted snd_pcm_access_t degrades to integer sound/core/pcm_native.c:2304:38: warning: restricted snd_pcm_access_t degrades to integer sound/core/pcm_native.c:2314:86: warning: restricted snd_pcm_subformat_t degrades to integer include/linux/slab.h:332:43: warning: dubious: x & !y include/linux/slab.h:332:43: warning: dubious: x & !y include/linux/slab.h:332:43: warning: dubious: x & !y sound/core/pcm_compat.c:226:13: warning: incorrect type in assignment (different base types) sound/core/pcm_compat.c:226:13: expected signed int [signed] [explicitly-signed] __pu_val sound/core/pcm_compat.c:226:13: got restricted snd_pcm_state_t [addressable] [assigned] [usertype] state sound/core/pcm_compat.c:235:13: warning: incorrect type in assignment (different base types) sound/core/pcm_compat.c:235:13: expected signed int [signed] [explicitly-signed] __pu_val sound/core/pcm_compat.c:235:13: got restricted snd_pcm_state_t [addressable] [assigned] [usertype] suspended_state sound/core/pcm_compat.c:290:13: warning: incorrect type in assignment (different base types) sound/core/pcm_compat.c:290:13: expected signed int [signed] [explicitly-signed] __pu_val sound/core/pcm_compat.c:290:13: got restricted snd_pcm_state_t [addressable] [assigned] [usertype] state sound/core/pcm_compat.c:299:13: warning: incorrect type in assignment (different base types) sound/core/pcm_compat.c:299:13: expected signed int [signed] [explicitly-signed] __pu_val sound/core/pcm_compat.c:299:13: got restricted snd_pcm_state_t [addressable] [assigned] [usertype] suspended_state include/linux/slab.h:332:43: warning: dubious: x & !y include/linux/slab.h:332:43: warning: dubious: x & !y sound/core/pcm_compat.c:525:13: warning: incorrect type in assignment (different base types) sound/core/pcm_compat.c:525:13: expected signed int [signed] [explicitly-signed] __pu_val sound/core/pcm_compat.c:525:13: got restricted snd_pcm_state_t [assigned] [usertype] state sound/core/pcm_compat.c:528:13: warning: incorrect type in assignment (different base types) sound/core/pcm_compat.c:528:13: expected signed int [signed] [explicitly-signed] __pu_val sound/core/pcm_compat.c:528:13: got restricted snd_pcm_state_t [assigned] [usertype] suspended_state sound/core/pcm_compat.c:614:13: warning: incorrect type in assignment (different base types) sound/core/pcm_compat.c:614:13: expected signed int [signed] [explicitly-signed] __pu_val sound/core/pcm_compat.c:614:13: got restricted snd_pcm_state_t [assigned] [usertype] state sound/core/pcm_compat.c:617:13: warning: incorrect type in assignment (different base types) sound/core/pcm_compat.c:617:13: expected signed int [signed] [explicitly-signed] __pu_val sound/core/pcm_compat.c:617:13: got restricted snd_pcm_state_t [assigned] [usertype] suspended_state sound/core/pcm_native.c:127:9: warning: context imbalance in '__snd_pcm_stream_lock_mode' - different lock contexts for basic block sound/core/pcm_native.c:137:28: warning: context imbalance in '__snd_pcm_stream_unlock_mode' - unexpected unlock sound/core/pcm_native.c:1097:52: warning: context imbalance in 'snd_pcm_action_group' - unexpected unlock sound/core/pcm_native.c: In function 'down_write_nonblock': sound/core/pcm_native.c:99:3: error: implicit declaration of function 'msleep' [-Werror=implicit-function-declaration] msleep(1); ^~~~~~ cc1: some warnings being treated as errors
vim +/msleep +99 sound/core/pcm_native.c
89 90 /* Writer in rwsem may block readers even during its waiting in queue, 91 * and this may lead to a deadlock when the code path takes read sem 92 * twice (e.g. one in snd_pcm_action_nonatomic() and another in 93 * snd_pcm_stream_lock()). As a (suboptimal) workaround, let writer to 94 * spin until it gets the lock. 95 */ 96 static inline void down_write_nonblock(struct rw_semaphore *lock) 97 { 98 while (!down_write_trylock(lock))
99 msleep(1);
100 } 101
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation