Hi Tzung-Bi, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on asoc/for-next] [cannot apply to v5.4-rc3 next-20191014] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Tzung-Bi-Shih/ASoC-mediatek-mt8183-mt6358-ts3a227-max98357-support-WoV/20191014-183227 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> coccinelle warnings: (new ones prefixed by >>) >> sound/soc/codecs/cros_ec_codec.c:774:7-14: WARNING opportunity for memdup_user vim +774 sound/soc/codecs/cros_ec_codec.c 754 755 static int wov_hotword_model_put(struct snd_kcontrol *kcontrol, 756 const unsigned int __user *bytes, 757 unsigned int size) 758 { 759 struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); 760 struct cros_ec_codec_priv *priv = 761 snd_soc_component_get_drvdata(component); 762 struct ec_param_ec_codec_wov p; 763 struct ec_response_ec_codec_wov_get_lang r; 764 uint8_t digest[SHA256_DIGEST_SIZE]; 765 uint8_t *buf; 766 int ret; 767 768 /* Skips the TLV header. */ 769 bytes += 2; 770 size -= 8; 771 772 dev_dbg(priv->dev, "%s: size=%d\n", __func__, size); 773 > 774 buf = kmalloc(size, GFP_KERNEL); 775 if (!buf) 776 return -ENOMEM; 777 778 if (copy_from_user(buf, bytes, size)) { 779 ret = -EFAULT; 780 goto leave; 781 } 782 783 ret = calculate_sha256(priv, buf, size, digest); 784 if (ret) 785 goto leave; 786 787 p.cmd = EC_CODEC_WOV_GET_LANG; 788 ret = send_ec_host_command(priv->ec_device, EC_CMD_EC_CODEC_WOV, 789 (uint8_t *)&p, sizeof(p), 790 (uint8_t *)&r, sizeof(r)); 791 if (ret) 792 goto leave; 793 794 if (memcmp(digest, r.hash, SHA256_DIGEST_SIZE) == 0) { 795 dev_dbg(priv->dev, "not updated"); 796 goto leave; 797 } 798 799 if (ec_codec_capable(priv, EC_CODEC_CAP_WOV_LANG_SHM)) 800 ret = wov_set_lang_shm(priv, buf, size, digest); 801 else 802 ret = wov_set_lang(priv, buf, size, digest); 803 804 leave: 805 kfree(buf); 806 return ret; 807 } 808 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation