Re: [PATCH v5] net: can: Introduce MEN 16Z192-00 CAN controller driver

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

 



On 10/16/20 1:49 AM, kernel test robot wrote:
> Hi Abhijeet,
> 
> Thank you for the patch! Perhaps something to improve:
> 
> [auto build test WARNING on 549738f15da0e5a00275977623be199fbbf7df50]
> 
> url:    https://github.com/0day-ci/linux/commits/Abhijeet-Badurkar/net-can-Introduce-MEN-16Z192-00-CAN-controller-driver/20201005-192132
> base:    549738f15da0e5a00275977623be199fbbf7df50
> config: openrisc-randconfig-s031-20201015 (attached as .config)
> compiler: or1k-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-rc1-dirty
>         # https://github.com/0day-ci/linux/commit/267876771a434b2be3278c2c87d36146c0fac77d
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Abhijeet-Badurkar/net-can-Introduce-MEN-16Z192-00-CAN-controller-driver/20201005-192132
>         git checkout 267876771a434b2be3278c2c87d36146c0fac77d
>         # 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=openrisc 

I think it's the openrisc arch to blame^w ask here, since their iounmap doesn't
have __iomem annotation.

> 
> 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/net/can/men_z192_can.c:1057:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *addr @@     got void [noderef] __iomem *[assigned] dev_base @@
>>> drivers/net/can/men_z192_can.c:1057:17: sparse:     expected void *addr
>>> drivers/net/can/men_z192_can.c:1057:17: sparse:     got void [noderef] __iomem *[assigned] dev_base
>>> drivers/net/can/men_z192_can.c:1071:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void *addr @@     got void [noderef] __iomem *dev_base @@
>    drivers/net/can/men_z192_can.c:1071:21: sparse:     expected void *addr
>>> drivers/net/can/men_z192_can.c:1071:21: sparse:     got void [noderef] __iomem *dev_base
> 
> vim +1057 drivers/net/can/men_z192_can.c
> 
>    962	
>    963	static int men_z192_probe(struct mcb_device *mdev,
>    964				  const struct mcb_device_id *id)
>    965	{
>    966		struct device *dev = &mdev->dev;
>    967		struct men_z192 *priv;
>    968		struct net_device *ndev;
>    969		void __iomem *dev_base;
>    970		struct resource *mem;
>    971		u32 timebase;
>    972		int ret = 0;
>    973		int irq;
>    974	
>    975		mem = mcb_request_mem(mdev, dev_name(dev));
>    976		if (IS_ERR(mem)) {
>    977			dev_err(dev, "failed to request device memory");
>    978			return PTR_ERR(mem);
>    979		}
>    980	
>    981		dev_base = ioremap(mem->start, resource_size(mem));
>    982		if (!dev_base) {
>    983			dev_err(dev, "failed to ioremap device memory");
>    984			ret = -ENXIO;
>    985			goto out_release;
>    986		}
>    987	
>    988		irq = mcb_get_irq(mdev);
>    989		if (irq <= 0) {
>    990			ret = -ENODEV;
>    991			goto out_unmap;
>    992		}
>    993	
>    994		ndev = alloc_candev(sizeof(struct men_z192), 0);
>    995		if (!ndev) {
>    996			dev_err(dev, "failed to allocat the can device");
>    997			ret = -ENOMEM;
>    998			goto out_unmap;
>    999		}
>   1000	
>   1001		ndev->netdev_ops = &men_z192_netdev_ops;
>   1002		ndev->irq = irq;
>   1003		ndev->flags |= IFF_ECHO;
>   1004	
>   1005		priv = netdev_priv(ndev);
>   1006		priv->ndev = ndev;
>   1007		priv->dev = dev;
>   1008	
>   1009		priv->mem = mem;
>   1010		priv->dev_base = dev_base;
>   1011		priv->regs = priv->dev_base + MEN_Z192_REGS_OFFS;
>   1012	
>   1013		timebase = readl(&priv->regs->timebase);
>   1014		if (!timebase) {
>   1015			dev_err(dev, "invalid timebase configured (timebase=%d)\n",
>   1016				timebase);
>   1017			ret = -EINVAL;
>   1018			goto out_free_candev;
>   1019		}
>   1020	
>   1021		priv->can.clock.freq = timebase;
>   1022		priv->can.bittiming_const = &men_z192_bittiming_const;
>   1023		priv->can.do_set_mode = men_z192_set_mode;
>   1024		priv->can.do_get_berr_counter = men_z192_get_berr_counter;
>   1025		priv->can.ctrlmode_supported = CAN_CTRLMODE_LISTENONLY |
>   1026					       CAN_CTRLMODE_3_SAMPLES |
>   1027					       CAN_CTRLMODE_LOOPBACK;
>   1028	
>   1029		spin_lock_init(&priv->lock);
>   1030	
>   1031		netif_napi_add(ndev, &priv->napi, men_z192_poll,
>   1032			       NAPI_POLL_WEIGHT);
>   1033	
>   1034		skb_queue_head_init(&priv->echoq);
>   1035	
>   1036		mcb_set_drvdata(mdev, ndev);
>   1037		SET_NETDEV_DEV(ndev, dev);
>   1038	
>   1039		ndev->ethtool_ops = &men_z192_ethtool_ops;
>   1040	
>   1041		ret = men_z192_register(ndev);
>   1042		if (ret) {
>   1043			dev_err(dev, "failed to register CAN device");
>   1044			goto out_free_candev;
>   1045		}
>   1046	
>   1047		devm_can_led_init(ndev);
>   1048	
>   1049		dev_info(dev, "MEN 16z192 CAN driver successfully registered\n");
>   1050	
>   1051		return 0;
>   1052	
>   1053	out_free_candev:
>   1054		netif_napi_del(&priv->napi);
>   1055		free_candev(ndev);
>   1056	out_unmap:
>> 1057		iounmap(dev_base);
>   1058	out_release:
>   1059		mcb_release_mem(mem);
>   1060		return ret;
>   1061	}
>   1062	
>   1063	static void men_z192_remove(struct mcb_device *mdev)
>   1064	{
>   1065		struct net_device *ndev = mcb_get_drvdata(mdev);
>   1066		struct men_z192 *priv = netdev_priv(ndev);
>   1067	
>   1068		unregister_candev(ndev);
>   1069		netif_napi_del(&priv->napi);
>   1070	
>> 1071		iounmap(priv->dev_base);
>   1072		mcb_release_mem(priv->mem);
>   1073	
>   1074		free_candev(ndev);
>   1075	}
>   1076	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
> 

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux