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