Hi Yu, Thank you for the patch! Yet something to improve: [auto build test ERROR on v6.3-rc3] [also build test ERROR on linus/master] [cannot apply to remoteproc/rproc-next next-20230327] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Yu-Zhe/remoteproc-remove-unnecessary-void-conversions/20230320-141403 patch link: https://lore.kernel.org/r/20230320061157.29660-1-yuzhe%40nfschina.com patch subject: [PATCH v2] remoteproc: remove unnecessary (void*) conversions config: arm-defconfig (https://download.01.org/0day-ci/archive/20230327/202303272213.jOYrwBZu-lkp@xxxxxxxxx/config) compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7) 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 arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/intel-lab-lkp/linux/commit/38335303eda6c4de037cd00e20c9065a76f82291 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Yu-Zhe/remoteproc-remove-unnecessary-void-conversions/20230320-141403 git checkout 38335303eda6c4de037cd00e20c9065a76f82291 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/remoteproc/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202303272213.jOYrwBZu-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> drivers/remoteproc/st_remoteproc.c:361:16: error: assigning to 'struct st_rproc_config *' from 'const void *const' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] ddata->config = match->data; ^ ~~~~~~~~~~~ 1 error generated. vim +361 drivers/remoteproc/st_remoteproc.c 337 338 static int st_rproc_probe(struct platform_device *pdev) 339 { 340 struct device *dev = &pdev->dev; 341 const struct of_device_id *match; 342 struct st_rproc *ddata; 343 struct device_node *np = dev->of_node; 344 struct rproc *rproc; 345 struct mbox_chan *chan; 346 int enabled; 347 int ret, i; 348 349 match = of_match_device(st_rproc_match, dev); 350 if (!match || !match->data) { 351 dev_err(dev, "No device match found\n"); 352 return -ENODEV; 353 } 354 355 rproc = rproc_alloc(dev, np->name, &st_rproc_ops, NULL, sizeof(*ddata)); 356 if (!rproc) 357 return -ENOMEM; 358 359 rproc->has_iommu = false; 360 ddata = rproc->priv; > 361 ddata->config = match->data; 362 363 platform_set_drvdata(pdev, rproc); 364 365 ret = st_rproc_parse_dt(pdev); 366 if (ret) 367 goto free_rproc; 368 369 enabled = st_rproc_state(pdev); 370 if (enabled < 0) { 371 ret = enabled; 372 goto free_clk; 373 } 374 375 if (enabled) { 376 atomic_inc(&rproc->power); 377 rproc->state = RPROC_RUNNING; 378 } else { 379 clk_set_rate(ddata->clk, ddata->clk_rate); 380 } 381 382 if (of_get_property(np, "mbox-names", NULL)) { 383 ddata->mbox_client_vq0.dev = dev; 384 ddata->mbox_client_vq0.tx_done = NULL; 385 ddata->mbox_client_vq0.tx_block = false; 386 ddata->mbox_client_vq0.knows_txdone = false; 387 ddata->mbox_client_vq0.rx_callback = st_rproc_mbox_callback_vq0; 388 389 ddata->mbox_client_vq1.dev = dev; 390 ddata->mbox_client_vq1.tx_done = NULL; 391 ddata->mbox_client_vq1.tx_block = false; 392 ddata->mbox_client_vq1.knows_txdone = false; 393 ddata->mbox_client_vq1.rx_callback = st_rproc_mbox_callback_vq1; 394 395 /* 396 * To control a co-processor without IPC mechanism. 397 * This driver can be used without mbox and rpmsg. 398 */ 399 chan = mbox_request_channel_byname(&ddata->mbox_client_vq0, "vq0_rx"); 400 if (IS_ERR(chan)) { 401 dev_err(&rproc->dev, "failed to request mbox chan 0\n"); 402 ret = PTR_ERR(chan); 403 goto free_clk; 404 } 405 ddata->mbox_chan[ST_RPROC_VQ0 * MBOX_MAX + MBOX_RX] = chan; 406 407 chan = mbox_request_channel_byname(&ddata->mbox_client_vq0, "vq0_tx"); 408 if (IS_ERR(chan)) { 409 dev_err(&rproc->dev, "failed to request mbox chan 0\n"); 410 ret = PTR_ERR(chan); 411 goto free_mbox; 412 } 413 ddata->mbox_chan[ST_RPROC_VQ0 * MBOX_MAX + MBOX_TX] = chan; 414 415 chan = mbox_request_channel_byname(&ddata->mbox_client_vq1, "vq1_rx"); 416 if (IS_ERR(chan)) { 417 dev_err(&rproc->dev, "failed to request mbox chan 1\n"); 418 ret = PTR_ERR(chan); 419 goto free_mbox; 420 } 421 ddata->mbox_chan[ST_RPROC_VQ1 * MBOX_MAX + MBOX_RX] = chan; 422 423 chan = mbox_request_channel_byname(&ddata->mbox_client_vq1, "vq1_tx"); 424 if (IS_ERR(chan)) { 425 dev_err(&rproc->dev, "failed to request mbox chan 1\n"); 426 ret = PTR_ERR(chan); 427 goto free_mbox; 428 } 429 ddata->mbox_chan[ST_RPROC_VQ1 * MBOX_MAX + MBOX_TX] = chan; 430 } 431 432 ret = rproc_add(rproc); 433 if (ret) 434 goto free_mbox; 435 436 return 0; 437 438 free_mbox: 439 for (i = 0; i < ST_RPROC_MAX_VRING * MBOX_MAX; i++) 440 mbox_free_channel(ddata->mbox_chan[i]); 441 free_clk: 442 clk_unprepare(ddata->clk); 443 free_rproc: 444 rproc_free(rproc); 445 return ret; 446 } 447 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests