All of lore.kernel.org
 help / color / mirror / Atom feed
* [char-misc:char-misc-testing 100/117] drivers/bus/fsl-mc/fsl-mc-bus.c:988:17: sparse: sparse: incorrect type in argument 2 (different address spaces)
@ 2020-12-10  3:23 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-12-10  3:23 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7388 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git char-misc-testing
head:   74e71964b1a9ffd34fa4b6ec8f2fa13e7cf0ac7a
commit: 74abd1f2d49a2a9660eadd9486da333554c4a23b [100/117] bus: fsl-mc: make sure MC firmware is up and running
config: arm64-randconfig-s032-20201209 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.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.3-179-ga00755aa-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/commit/?id=74abd1f2d49a2a9660eadd9486da333554c4a23b
        git remote add char-misc https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
        git fetch --no-tags char-misc char-misc-testing
        git checkout 74abd1f2d49a2a9660eadd9486da333554c4a23b
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


"sparse warnings: (new ones prefixed by >>)"
   drivers/bus/fsl-mc/fsl-mc-bus.c:974:33: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *fsl_mc_regs @@     got void [noderef] __iomem * @@
   drivers/bus/fsl-mc/fsl-mc-bus.c:974:33: sparse:     expected void *fsl_mc_regs
   drivers/bus/fsl-mc/fsl-mc-bus.c:974:33: sparse:     got void [noderef] __iomem *
   drivers/bus/fsl-mc/fsl-mc-bus.c:988:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/bus/fsl-mc/fsl-mc-bus.c:988:17: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/bus/fsl-mc/fsl-mc-bus.c:988:17: sparse:     got void *
>> drivers/bus/fsl-mc/fsl-mc-bus.c:988:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/bus/fsl-mc/fsl-mc-bus.c:988:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/bus/fsl-mc/fsl-mc-bus.c:988:17: sparse:     got void *
   drivers/bus/fsl-mc/fsl-mc-bus.c:992:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/bus/fsl-mc/fsl-mc-bus.c:992:40: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/bus/fsl-mc/fsl-mc-bus.c:992:40: sparse:     got void *

vim +988 drivers/bus/fsl-mc/fsl-mc-bus.c

   949	
   950	/**
   951	 * fsl_mc_bus_probe - callback invoked when the root MC bus is being
   952	 * added
   953	 */
   954	static int fsl_mc_bus_probe(struct platform_device *pdev)
   955	{
   956		struct fsl_mc_obj_desc obj_desc;
   957		int error;
   958		struct fsl_mc *mc;
   959		struct fsl_mc_device *mc_bus_dev = NULL;
   960		struct fsl_mc_io *mc_io = NULL;
   961		int container_id;
   962		phys_addr_t mc_portal_phys_addr;
   963		u32 mc_portal_size, mc_stream_id;
   964		struct resource *plat_res;
   965	
   966		mc = devm_kzalloc(&pdev->dev, sizeof(*mc), GFP_KERNEL);
   967		if (!mc)
   968			return -ENOMEM;
   969	
   970		platform_set_drvdata(pdev, mc);
   971	
   972		plat_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
   973		if (plat_res) {
 > 974			mc->fsl_mc_regs = devm_ioremap_resource(&pdev->dev, plat_res);
   975			if (IS_ERR(mc->fsl_mc_regs))
   976				return PTR_ERR(mc->fsl_mc_regs);
   977		}
   978	
   979		if (mc->fsl_mc_regs) {
   980			/*
   981			 * Some bootloaders pause the MC firmware before booting the
   982			 * kernel so that MC will not cause faults as soon as the
   983			 * SMMU probes due to the fact that there's no configuration
   984			 * in place for MC.
   985			 * At this point MC should have all its SMMU setup done so make
   986			 * sure it is resumed.
   987			 */
 > 988			writel(readl(mc->fsl_mc_regs + FSL_MC_GCR1) & (~GCR1_P1_STOP),
   989			       mc->fsl_mc_regs + FSL_MC_GCR1);
   990	
   991			if (IS_ENABLED(CONFIG_ACPI) && !dev_of_node(&pdev->dev)) {
   992				mc_stream_id = readl(mc->fsl_mc_regs + FSL_MC_FAPR);
   993				/*
   994				 * HW ORs the PL and BMT bit, places the result in bit
   995				 * 14 of the StreamID and ORs in the ICID. Calculate it
   996				 * accordingly.
   997				 */
   998				mc_stream_id = (mc_stream_id & 0xffff) |
   999					((mc_stream_id & (MC_FAPR_PL | MC_FAPR_BMT)) ?
  1000						BIT(14) : 0);
  1001				error = acpi_dma_configure_id(&pdev->dev,
  1002							      DEV_DMA_COHERENT,
  1003							      &mc_stream_id);
  1004				if (error)
  1005					dev_warn(&pdev->dev,
  1006						 "failed to configure dma: %d.\n",
  1007						 error);
  1008			}
  1009		}
  1010	
  1011		/*
  1012		 * Get physical address of MC portal for the root DPRC:
  1013		 */
  1014		plat_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  1015		mc_portal_phys_addr = plat_res->start;
  1016		mc_portal_size = resource_size(plat_res);
  1017		error = fsl_create_mc_io(&pdev->dev, mc_portal_phys_addr,
  1018					 mc_portal_size, NULL,
  1019					 FSL_MC_IO_ATOMIC_CONTEXT_PORTAL, &mc_io);
  1020		if (error < 0)
  1021			return error;
  1022	
  1023		error = mc_get_version(mc_io, 0, &mc_version);
  1024		if (error != 0) {
  1025			dev_err(&pdev->dev,
  1026				"mc_get_version() failed with error %d\n", error);
  1027			goto error_cleanup_mc_io;
  1028		}
  1029	
  1030		dev_info(&pdev->dev, "MC firmware version: %u.%u.%u\n",
  1031			 mc_version.major, mc_version.minor, mc_version.revision);
  1032	
  1033		if (dev_of_node(&pdev->dev)) {
  1034			error = get_mc_addr_translation_ranges(&pdev->dev,
  1035							&mc->translation_ranges,
  1036							&mc->num_translation_ranges);
  1037			if (error < 0)
  1038				goto error_cleanup_mc_io;
  1039		}
  1040	
  1041		error = dprc_get_container_id(mc_io, 0, &container_id);
  1042		if (error < 0) {
  1043			dev_err(&pdev->dev,
  1044				"dprc_get_container_id() failed: %d\n", error);
  1045			goto error_cleanup_mc_io;
  1046		}
  1047	
  1048		memset(&obj_desc, 0, sizeof(struct fsl_mc_obj_desc));
  1049		error = dprc_get_api_version(mc_io, 0,
  1050					     &obj_desc.ver_major,
  1051					     &obj_desc.ver_minor);
  1052		if (error < 0)
  1053			goto error_cleanup_mc_io;
  1054	
  1055		obj_desc.vendor = FSL_MC_VENDOR_FREESCALE;
  1056		strcpy(obj_desc.type, "dprc");
  1057		obj_desc.id = container_id;
  1058		obj_desc.irq_count = 1;
  1059		obj_desc.region_count = 0;
  1060	
  1061		error = fsl_mc_device_add(&obj_desc, mc_io, &pdev->dev, &mc_bus_dev);
  1062		if (error < 0)
  1063			goto error_cleanup_mc_io;
  1064	
  1065		mc->root_mc_bus_dev = mc_bus_dev;
  1066		mc_bus_dev->dev.fwnode = pdev->dev.fwnode;
  1067		return 0;
  1068	
  1069	error_cleanup_mc_io:
  1070		fsl_destroy_mc_io(mc_io);
  1071		return error;
  1072	}
  1073	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 33874 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-12-10  3:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-10  3:23 [char-misc:char-misc-testing 100/117] drivers/bus/fsl-mc/fsl-mc-bus.c:988:17: sparse: sparse: incorrect type in argument 2 (different address spaces) kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.