Re: [PATCH v4 3/3] clocksource: Ingenic: Add SMP/SMT support for sysost driver.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.18-rc2 next-20220411]
[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/intel-lab-lkp/linux/commits/Zhou-Yanjie/Add-SMP-SMT-support-for-Ingenic-sysost-driver/20220411-223537
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8afbcaf8690dac19ebf570a4e4fef9c59c75bf8e
config: openrisc-randconfig-s032-20220411 (https://download.01.org/0day-ci/archive/20220412/202204120622.OSuTgle5-lkp@xxxxxxxxx/config)
compiler: or1k-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/intel-lab-lkp/linux/commit/facdbd1eb8f72863d589c575577f6130d8cf6ed1
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Zhou-Yanjie/Add-SMP-SMT-support-for-Ingenic-sysost-driver/20220411-223537
        git checkout facdbd1eb8f72863d589c575577f6130d8cf6ed1
        # 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=openrisc 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:703: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:703:65: sparse:     expected void *dev
   drivers/clocksource/ingenic-sysost.c:703:65: sparse:     got struct ingenic_ost_timer [noderef] __percpu *timers

vim +703 drivers/clocksource/ingenic-sysost.c

   678	
   679	static int __init ingenic_ost_init(struct device_node *np)
   680	{
   681		struct ingenic_ost *ost;
   682		unsigned long rate;
   683		int ret;
   684	
   685		ret = ingenic_ost_probe(np);
   686		if (ret) {
   687			pr_crit("%s: Failed to initialize OST clocks: %d\n", __func__, ret);
   688			return ret;
   689		}
   690	
   691		of_node_clear_flag(np, OF_POPULATED);
   692	
   693		ost = ingenic_ost;
   694		if (IS_ERR(ost))
   695			return PTR_ERR(ost);
   696	
   697		if (ost->soc_info->has_event_timer) {
   698			if (ost->soc_info->version >= ID_X2000)
   699				ret = request_percpu_irq(ost->irq, ingenic_ost_cevt_cb,
   700						  "OST event timer", ost->timers);
   701			else
   702				ret = request_irq(ost->irq, ingenic_ost_cevt_cb, IRQF_TIMER,
 > 703						  "OST event timer", ost->timers);
   704	
   705			if (ret) {
   706				pr_crit("%s: Unable to request IRQ: %d\n", __func__, ret);
   707				goto err_free_ingenic_ost;
   708			}
   709	
   710			/* Setup clock events on each CPU core */
   711			ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "Ingenic XBurst: online",
   712						ingenic_ost_setup_cevt, NULL);
   713			if (ret < 0) {
   714				pr_crit("%s: Unable to init event timers: %d\n", __func__, ret);
   715				goto err_free_ingenic_ost;
   716			}
   717		}
   718	
   719		if (ost->soc_info->has_global_timer) {
   720			ret = ingenic_ost_global_timer_init(np, ost);
   721			if (ret) {
   722				pr_crit("%s: Unable to init global timer: %d\n", __func__, ret);
   723	
   724				if (!ost->soc_info->has_event_timer)
   725					goto err_free_ingenic_ost;
   726			}
   727	
   728			/* Register the sched_clock at the end as there's no way to undo it */
   729			rate = clk_get_rate(ost->global_timer_clk);
   730			sched_clock_register(ingenic_ost_global_timer_read_cntl, 32, rate);
   731		}
   732	
   733		return 0;
   734	
   735	err_free_ingenic_ost:
   736		kfree(ost);
   737		return ret;
   738	}
   739	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux