在文件kernel/sound/soc/soc-core.c中,函数soc_bind_dai_link引入了一个新定义的宏CODEC_NAME_CMP,这个新玩意导致了后面的strcpy(p_codec_name,codec->name);可能出现NULL pointer,原因是p_codec_name可能会被后面的strsep(&p_codec_name,".")修改。改正的方法很简单,在strcpy之前重复初始化一次就OK了:
#ifdef CODEC_NAME_CMP
p_codec_name = tmp_codec_name;
p_dai_codec_name = tmp_dai_codec_name;
strcpy(p_codec_name,codec->name);
strcpy(p_dai_codec_name,dai_link->codec_name);
#endif