Re: [PATCH v2 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.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



[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