Hi Takashi,
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-unstable.git master head: 02e5aa7b459f69538d4ec88658d064816a7692d6 commit: bea06a147981e88465f566acd6c6e98b297f7712 ALSA: hda - Protect user-defined arrays via mutex date: 3 hours ago
sound/pci/hda/hda_hwdep.c:487 parse_hints() warn: inconsistent returns mutex:&codec->user_mutex: locked (478) unlocked (447,449,452,457,487)
vim +487 sound/pci/hda/hda_hwdep.c
43b62713 Takashi Iwai 2009-03-02 441 char *key, *val; 43b62713 Takashi Iwai 2009-03-02 442 struct hda_hint *hint; bea06a14 Takashi Iwai 2013-01-10 443 int err = 0; 1e1be432 Takashi Iwai 2008-07-30 444 e7d2860b André Goddard Rosa 2009-12-14 445 buf = skip_spaces(buf); 43b62713 Takashi Iwai 2009-03-02 446 if (!*buf || *buf == '#' || *buf == '\n') 4ea6fbc8 Takashi Iwai 2009-06-17 @447 return 0; 43b62713 Takashi Iwai 2009-03-02 448 if (*buf == '=') 43b62713 Takashi Iwai 2009-03-02 @449 return -EINVAL; 43b62713 Takashi Iwai 2009-03-02 450 key = kstrndup_noeol(buf, 1024); 43b62713 Takashi Iwai 2009-03-02 451 if (!key) 1e1be432 Takashi Iwai 2008-07-30 @452 return -ENOMEM; 43b62713 Takashi Iwai 2009-03-02 453 /* extract key and val */ 43b62713 Takashi Iwai 2009-03-02 454 val = strchr(key, '='); 43b62713 Takashi Iwai 2009-03-02 455 if (!val) { 43b62713 Takashi Iwai 2009-03-02 456 kfree(key); 43b62713 Takashi Iwai 2009-03-02 @457 return -EINVAL; 43b62713 Takashi Iwai 2009-03-02 458 } 43b62713 Takashi Iwai 2009-03-02 459 *val++ = 0; e7d2860b André Goddard Rosa 2009-12-14 460 val = skip_spaces(val); 43b62713 Takashi Iwai 2009-03-02 461 remove_trail_spaces(key); 43b62713 Takashi Iwai 2009-03-02 462 remove_trail_spaces(val); bea06a14 Takashi Iwai 2013-01-10 463 mutex_lock(&codec->user_mutex); 43b62713 Takashi Iwai 2009-03-02 464 hint = get_hint(codec, key); 43b62713 Takashi Iwai 2009-03-02 465 if (hint) { 43b62713 Takashi Iwai 2009-03-02 466 /* replace */ 43b62713 Takashi Iwai 2009-03-02 467 kfree(hint->key); 43b62713 Takashi Iwai 2009-03-02 468 hint->key = key; 43b62713 Takashi Iwai 2009-03-02 469 hint->val = val; bea06a14 Takashi Iwai 2013-01-10 470 goto unlock; 43b62713 Takashi Iwai 2009-03-02 471 } 43b62713 Takashi Iwai 2009-03-02 472 /* allocate a new hint entry */ 43b62713 Takashi Iwai 2009-03-02 473 if (codec->hints.used >= MAX_HINTS) 43b62713 Takashi Iwai 2009-03-02 474 hint = NULL; 43b62713 Takashi Iwai 2009-03-02 475 else 43b62713 Takashi Iwai 2009-03-02 476 hint = snd_array_new(&codec->hints); 1e1be432 Takashi Iwai 2008-07-30 477 if (!hint) { 1e1be432 Takashi Iwai 2008-07-30 @478 return -ENOMEM; bea06a14 Takashi Iwai 2013-01-10 479 goto unlock; 1e1be432 Takashi Iwai 2008-07-30 480 } 43b62713 Takashi Iwai 2009-03-02 481 hint->key = key; 43b62713 Takashi Iwai 2009-03-02 482 hint->val = val; bea06a14 Takashi Iwai 2013-01-10 483 unlock: bea06a14 Takashi Iwai 2013-01-10 484 mutex_unlock(&codec->user_mutex); bea06a14 Takashi Iwai 2013-01-10 485 if (err) bea06a14 Takashi Iwai 2013-01-10 486 kfree(key); bea06a14 Takashi Iwai 2013-01-10 @487 return err; 4ea6fbc8 Takashi Iwai 2009-06-17 488 } 4ea6fbc8 Takashi Iwai 2009-06-17 489 4ea6fbc8 Takashi Iwai 2009-06-17 490 static ssize_t hints_store(struct device *dev,
--- 0-DAY kernel build testing backend Open Source Technology Center Fengguang Wu, Yuanhan Liu Intel Corporation