Hi "周琰杰, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tip/timers/core] [also build test WARNING on robh/for-next v5.16-rc5 next-20211217] [cannot apply to daniel-lezcano/clockevents/next] [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] url: https://github.com/0day-ci/linux/commits/Zhou-Yanjie/Add-SMP-SMT-support-for-Ingenic-sysost-driver/20211217-235813 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git a8da61cee95e627ed3d4274861428013aa9604ea config: sparc-randconfig-s031-20211218 (https://download.01.org/0day-ci/archive/20211219/202112190917.6yxHlgI2-lkp@xxxxxxxxx/config) compiler: sparc-linux-gcc (GCC) 11.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-dirty # https://github.com/0day-ci/linux/commit/3cd1f50718078825e6411751f137406442bb84c0 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Zhou-Yanjie/Add-SMP-SMT-support-for-Ingenic-sysost-driver/20211217-235813 git checkout 3cd1f50718078825e6411751f137406442bb84c0 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc SHELL=/bin/bash drivers/clocksource/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) >> drivers/clocksource/ingenic-sysost.c:702:65: sparse: sparse: incorrect type in argument 5 (different address spaces) @@ expected void *dev @@ got struct ingenic_ost_timer [noderef] __percpu *timers @@ drivers/clocksource/ingenic-sysost.c:702:65: sparse: expected void *dev drivers/clocksource/ingenic-sysost.c:702:65: sparse: got struct ingenic_ost_timer [noderef] __percpu *timers vim +702 drivers/clocksource/ingenic-sysost.c 677 678 static int __init ingenic_ost_init(struct device_node *np) 679 { 680 struct ingenic_ost *ost; 681 unsigned long rate; 682 int ret; 683 684 ret = ingenic_ost_probe(np); 685 if (ret) { 686 pr_crit("%s: Failed to initialize OST clocks: %d\n", __func__, ret); 687 return ret; 688 } 689 690 of_node_clear_flag(np, OF_POPULATED); 691 692 ost = ingenic_ost; 693 if (IS_ERR(ost)) 694 return PTR_ERR(ost); 695 696 if (ost->soc_info->has_event_timer) { 697 if (ost->soc_info->version >= ID_X2000) 698 ret = request_percpu_irq(ost->irq, ingenic_ost_cevt_cb, 699 "OST event timer", ost->timers); 700 else 701 ret = request_irq(ost->irq, ingenic_ost_cevt_cb, IRQF_TIMER, > 702 "OST event timer", ost->timers); 703 704 if (ret) { 705 pr_crit("%s: Unable to request IRQ: %d\n", __func__, ret); 706 goto err_free_ingenic_ost; 707 } 708 709 /* Setup clock events on each CPU core */ 710 ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "Ingenic XBurst: online", 711 ingenic_ost_setup_cevt, NULL); 712 if (ret < 0) { 713 pr_crit("%s: Unable to init event timers: %d\n", __func__, ret); 714 goto err_free_ingenic_ost; 715 } 716 } 717 718 if (ost->soc_info->has_global_timer) { 719 ret = ingenic_ost_global_timer_init(np, ost); 720 if (ret) { 721 pr_crit("%s: Unable to init global timer: %d\n", __func__, ret); 722 723 if (!ost->soc_info->has_event_timer) 724 goto err_free_ingenic_ost; 725 } 726 727 /* Register the sched_clock at the end as there's no way to undo it */ 728 rate = clk_get_rate(ost->global_timer_clk); 729 sched_clock_register(ingenic_ost_global_timer_read_cntl, 32, rate); 730 } 731 732 return 0; 733 734 err_free_ingenic_ost: 735 kfree(ost); 736 return ret; 737 } 738 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx