tree:
https://android.googlesource.com/kernel/common android-4.19-stable
head: 77d75fe936e0bb518fe31ec6a12ae30e9c1866f7
commit: 8c62976a01249b4da610adc1d4d2ead9185a6131 [15309/16378] ANDROID: GKI: ALSA: pcm:
add locks for accessing runtime resource
config: x86_64-randconfig-r024-20200607 (attached as .config)
compiler: clang version 11.0.0 (
https://github.com/llvm/llvm-project
e429cffd4f228f70c1d9df0e5d77c08590dd9766)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 8c62976a01249b4da610adc1d4d2ead9185a6131
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
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 <<):
> sound/soc/soc-dapm.c:3678:12: warning: stack frame size of 2088
bytes in function 'snd_soc_dai_link_event' [-Wframe-larger-than=]
static int
snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
^
1 warning generated.
--
> sound/soc/intel/skylake/skl-messages.c:108:12: warning: stack
frame size of 2064 bytes in function 'skl_dsp_prepare' [-Wframe-larger-than=]
static int skl_dsp_prepare(struct device *dev, unsigned int format,
^
1 warning generated.
vim +/snd_soc_dai_link_event +3678 sound/soc/soc-dapm.c
4ba1327ab8ce17 Mark Brown 2008-05-13 3677
c74184ed30ecce Mark Brown 2012-04-04 @3678 static int
snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
c74184ed30ecce Mark Brown 2012-04-04 3679 struct snd_kcontrol *kcontrol,
int event)
c74184ed30ecce Mark Brown 2012-04-04 3680 {
c74184ed30ecce Mark Brown 2012-04-04 3681 struct snd_soc_dapm_path *source_p,
*sink_p;
c74184ed30ecce Mark Brown 2012-04-04 3682 struct snd_soc_dai *source, *sink;
249dc49576fc95 Charles Keepax 2018-08-15 3683 struct snd_soc_pcm_runtime *rtd =
w->priv;
c66150824b8a80 Nikesh Oswal 2015-02-02 3684 const struct snd_soc_pcm_stream
*config = w->params + w->params_select;
c74184ed30ecce Mark Brown 2012-04-04 3685 struct snd_pcm_substream substream;
9747cec21e2d55 Mark Brown 2012-04-26 3686 struct snd_pcm_hw_params *params =
NULL;
8053f21675b073 Nicolin Chen 2016-07-26 3687 struct snd_pcm_runtime *runtime =
NULL;
3ba66feb59810e Takashi Iwai 2018-07-25 3688 unsigned int fmt;
0376916b7b2cff Charles Keepax 2018-09-06 3689 int ret = 0;
c74184ed30ecce Mark Brown 2012-04-04 3690
bf4edea863c435 Takashi Iwai 2013-11-07 3691 if (WARN_ON(!config) ||
a3423b02cf745c Lars-Peter Clausen 2015-08-11 3692
WARN_ON(list_empty(&w->edges[SND_SOC_DAPM_DIR_OUT]) ||
a3423b02cf745c Lars-Peter Clausen 2015-08-11 3693
list_empty(&w->edges[SND_SOC_DAPM_DIR_IN])))
bf4edea863c435 Takashi Iwai 2013-11-07 3694 return -EINVAL;
c74184ed30ecce Mark Brown 2012-04-04 3695
c74184ed30ecce Mark Brown 2012-04-04 3696 /* We only support a single source
and sink, pick the first */
a3423b02cf745c Lars-Peter Clausen 2015-08-11 3697 source_p =
list_first_entry(&w->edges[SND_SOC_DAPM_DIR_OUT],
a3423b02cf745c Lars-Peter Clausen 2015-08-11 3698 struct snd_soc_dapm_path,
a3423b02cf745c Lars-Peter Clausen 2015-08-11 3699
list_node[SND_SOC_DAPM_DIR_OUT]);
a3423b02cf745c Lars-Peter Clausen 2015-08-11 3700 sink_p =
list_first_entry(&w->edges[SND_SOC_DAPM_DIR_IN],
a3423b02cf745c Lars-Peter Clausen 2015-08-11 3701 struct snd_soc_dapm_path,
a3423b02cf745c Lars-Peter Clausen 2015-08-11 3702
list_node[SND_SOC_DAPM_DIR_IN]);
c74184ed30ecce Mark Brown 2012-04-04 3703
c74184ed30ecce Mark Brown 2012-04-04 3704 source =
source_p->source->priv;
c74184ed30ecce Mark Brown 2012-04-04 3705 sink = sink_p->sink->priv;
c74184ed30ecce Mark Brown 2012-04-04 3706
c74184ed30ecce Mark Brown 2012-04-04 3707 /* Be a little careful as we
don't want to overflow the mask array */
c74184ed30ecce Mark Brown 2012-04-04 3708 if (config->formats) {
c74184ed30ecce Mark Brown 2012-04-04 3709 fmt = ffs(config->formats) - 1;
c74184ed30ecce Mark Brown 2012-04-04 3710 } else {
30a6a1a4eed170 Liam Girdwood 2012-11-19 3711 dev_warn(w->dapm->dev,
"ASoC: Invalid format %llx specified\n",
c74184ed30ecce Mark Brown 2012-04-04 3712 config->formats);
c74184ed30ecce Mark Brown 2012-04-04 3713 fmt = 0;
c74184ed30ecce Mark Brown 2012-04-04 3714 }
c74184ed30ecce Mark Brown 2012-04-04 3715
c74184ed30ecce Mark Brown 2012-04-04 3716 /* Currently very limited parameter
selection */
9747cec21e2d55 Mark Brown 2012-04-26 3717 params = kzalloc(sizeof(*params),
GFP_KERNEL);
9747cec21e2d55 Mark Brown 2012-04-26 3718 if (!params) {
9747cec21e2d55 Mark Brown 2012-04-26 3719 ret = -ENOMEM;
9747cec21e2d55 Mark Brown 2012-04-26 3720 goto out;
9747cec21e2d55 Mark Brown 2012-04-26 3721 }
9747cec21e2d55 Mark Brown 2012-04-26 3722 snd_mask_set(hw_param_mask(params,
SNDRV_PCM_HW_PARAM_FORMAT), fmt);
c74184ed30ecce Mark Brown 2012-04-04 3723
9747cec21e2d55 Mark Brown 2012-04-26 3724 hw_param_interval(params,
SNDRV_PCM_HW_PARAM_RATE)->min =
c74184ed30ecce Mark Brown 2012-04-04 3725 config->rate_min;
9747cec21e2d55 Mark Brown 2012-04-26 3726 hw_param_interval(params,
SNDRV_PCM_HW_PARAM_RATE)->max =
c74184ed30ecce Mark Brown 2012-04-04 3727 config->rate_max;
c74184ed30ecce Mark Brown 2012-04-04 3728
9747cec21e2d55 Mark Brown 2012-04-26 3729 hw_param_interval(params,
SNDRV_PCM_HW_PARAM_CHANNELS)->min
c74184ed30ecce Mark Brown 2012-04-04 3730 = config->channels_min;
9747cec21e2d55 Mark Brown 2012-04-26 3731 hw_param_interval(params,
SNDRV_PCM_HW_PARAM_CHANNELS)->max
c74184ed30ecce Mark Brown 2012-04-04 3732 = config->channels_max;
c74184ed30ecce Mark Brown 2012-04-04 3733
c74184ed30ecce Mark Brown 2012-04-04 3734 memset(&substream, 0,
sizeof(substream));
c74184ed30ecce Mark Brown 2012-04-04 3735
8053f21675b073 Nicolin Chen 2016-07-26 3736 /* Allocate a dummy snd_pcm_runtime
for startup() and other ops() */
8053f21675b073 Nicolin Chen 2016-07-26 3737 runtime = kzalloc(sizeof(*runtime),
GFP_KERNEL);
8053f21675b073 Nicolin Chen 2016-07-26 3738 if (!runtime) {
8053f21675b073 Nicolin Chen 2016-07-26 3739 ret = -ENOMEM;
8053f21675b073 Nicolin Chen 2016-07-26 3740 goto out;
8053f21675b073 Nicolin Chen 2016-07-26 3741 }
8053f21675b073 Nicolin Chen 2016-07-26 3742 substream.runtime = runtime;
249dc49576fc95 Charles Keepax 2018-08-15 3743 substream.private_data = rtd;
8053f21675b073 Nicolin Chen 2016-07-26 3744
c74184ed30ecce Mark Brown 2012-04-04 3745 switch (event) {
c74184ed30ecce Mark Brown 2012-04-04 3746 case SND_SOC_DAPM_PRE_PMU:
c74184ed30ecce Mark Brown 2012-04-04 3747 substream.stream =
SNDRV_PCM_STREAM_CAPTURE;
9900a4226c785d Kuninori Morimoto 2017-09-25 3748 if
(source->driver->ops->startup) {
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3749 ret =
source->driver->ops->startup(&substream, source);
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3750 if (ret < 0) {
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3751 dev_err(source->dev,
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3752 "ASoC: startup() failed:
%d\n", ret);
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3753 goto out;
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3754 }
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3755 source->active++;
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3756 }
93e6958a3674d2 Benoit Cousson 2014-07-08 3757 ret =
soc_dai_hw_params(&substream, params, source);
93e6958a3674d2 Benoit Cousson 2014-07-08 3758 if (ret < 0)
9747cec21e2d55 Mark Brown 2012-04-26 3759 goto out;
c74184ed30ecce Mark Brown 2012-04-04 3760
c74184ed30ecce Mark Brown 2012-04-04 3761 substream.stream =
SNDRV_PCM_STREAM_PLAYBACK;
9900a4226c785d Kuninori Morimoto 2017-09-25 3762 if
(sink->driver->ops->startup) {
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3763 ret =
sink->driver->ops->startup(&substream, sink);
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3764 if (ret < 0) {
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3765 dev_err(sink->dev,
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3766 "ASoC: startup() failed:
%d\n", ret);
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3767 goto out;
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3768 }
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3769 sink->active++;
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3770 }
93e6958a3674d2 Benoit Cousson 2014-07-08 3771 ret =
soc_dai_hw_params(&substream, params, sink);
93e6958a3674d2 Benoit Cousson 2014-07-08 3772 if (ret < 0)
9747cec21e2d55 Mark Brown 2012-04-26 3773 goto out;
c74184ed30ecce Mark Brown 2012-04-04 3774 break;
c74184ed30ecce Mark Brown 2012-04-04 3775
c74184ed30ecce Mark Brown 2012-04-04 3776 case SND_SOC_DAPM_POST_PMU:
da18396f949eca Mark Brown 2013-02-06 3777 ret = snd_soc_dai_digital_mute(sink,
0,
da18396f949eca Mark Brown 2013-02-06 3778
SNDRV_PCM_STREAM_PLAYBACK);
c74184ed30ecce Mark Brown 2012-04-04 3779 if (ret != 0 && ret !=
-ENOTSUPP)
30a6a1a4eed170 Liam Girdwood 2012-11-19 3780 dev_warn(sink->dev, "ASoC:
Failed to unmute: %d\n", ret);
9747cec21e2d55 Mark Brown 2012-04-26 3781 ret = 0;
c74184ed30ecce Mark Brown 2012-04-04 3782 break;
c74184ed30ecce Mark Brown 2012-04-04 3783
c74184ed30ecce Mark Brown 2012-04-04 3784 case SND_SOC_DAPM_PRE_PMD:
da18396f949eca Mark Brown 2013-02-06 3785 ret = snd_soc_dai_digital_mute(sink,
1,
da18396f949eca Mark Brown 2013-02-06 3786
SNDRV_PCM_STREAM_PLAYBACK);
c74184ed30ecce Mark Brown 2012-04-04 3787 if (ret != 0 && ret !=
-ENOTSUPP)
30a6a1a4eed170 Liam Girdwood 2012-11-19 3788 dev_warn(sink->dev, "ASoC:
Failed to mute: %d\n", ret);
9747cec21e2d55 Mark Brown 2012-04-26 3789 ret = 0;
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3790
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3791 source->active--;
9900a4226c785d Kuninori Morimoto 2017-09-25 3792 if
(source->driver->ops->shutdown) {
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3793 substream.stream =
SNDRV_PCM_STREAM_CAPTURE;
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3794
source->driver->ops->shutdown(&substream, source);
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3795 }
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3796
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3797 sink->active--;
9900a4226c785d Kuninori Morimoto 2017-09-25 3798 if
(sink->driver->ops->shutdown) {
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3799 substream.stream =
SNDRV_PCM_STREAM_PLAYBACK;
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3800
sink->driver->ops->shutdown(&substream, sink);
9b8ef9f6b3fccc Jeeja KP 2015-10-20 3801 }
c74184ed30ecce Mark Brown 2012-04-04 3802 break;
c74184ed30ecce Mark Brown 2012-04-04 3803
c74184ed30ecce Mark Brown 2012-04-04 3804 default:
a6ed0608bd289b Takashi Iwai 2013-11-06 3805 WARN(1, "Unknown event
%d\n", event);
75881df3fd7708 Sudip Mukherjee 2015-09-10 3806 ret = -EINVAL;
c74184ed30ecce Mark Brown 2012-04-04 3807 }
c74184ed30ecce Mark Brown 2012-04-04 3808
9747cec21e2d55 Mark Brown 2012-04-26 3809 out:
8053f21675b073 Nicolin Chen 2016-07-26 3810 kfree(runtime);
9747cec21e2d55 Mark Brown 2012-04-26 3811 kfree(params);
9747cec21e2d55 Mark Brown 2012-04-26 3812 return ret;
c74184ed30ecce Mark Brown 2012-04-04 3813 }
c74184ed30ecce Mark Brown 2012-04-04 3814
:::::: The code at line 3678 was first introduced by commit
:::::: c74184ed30ecce2a5e9ae9aa22cb5e3942e0c7c7 ASoC: core: Support transparent
CODEC<->CODEC DAI links
:::::: TO: Mark Brown <broonie(a)opensource.wolfsonmicro.com>
:::::: CC: Mark Brown <broonie(a)opensource.wolfsonmicro.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org