lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <24882539-577e-9a04-d184-6b5818b63b8b@duagon.com>
Date:   Fri, 8 Jan 2021 09:38:40 +0100
From:   Abhijeet Badurkar <abhijeet.badurkar@...gon.com>
To:     Marc Kleine-Budde <mkl@...gutronix.de>,
        kernel test robot <lkp@...el.com>, <wg@...ndegger.com>
CC:     <kbuild-all@...ts.01.org>, <linux-kernel@...r.kernel.org>,
        <linux-can@...r.kernel.org>, <andreas.geissler@...gon.com>,
        Jonas Bonn <jonas@...thpole.se>,
        Stefan Kristiansson <stefan.kristiansson@...nalahti.fi>,
        Stafford Horne <shorne@...il.com>,
        <openrisc@...ts.librecores.org>
Subject: Re: [PATCH v5] net: can: Introduce MEN 16Z192-00 CAN controller
 driver





M. Sc.
Abhijeet Badurkar
Software Engineering 
Business Unit Computing Systems, duagon

duagon Germany GmbH
Neuwieder Straße 1-7
90411 Nürnberg
Deutschland
Phone		+49 911 99 33 5 - 219
www.duagon.com

duagon Germany GmbH - Geschäftsführer: Dr. Michael Goldbach - Mathias Kamolz - Kalina Scott - Handelsregister/Trade Register AG Nürnberg HRB 5540

This message and/or attachments may be privileged or confidential. If you are not the intended recipient, you are hereby notified that you have received this transmittal in error; any review, dissemination, or copying is strictly prohibited. If you received this transmittal in error, please notify us immediately by reply and immediately delete this message and all its attachments. Thank you.
On 16.10.20 09:55, Marc Kleine-Budde wrote:
> * PGP Signed by an unknown key
> 
> 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.
Yes, only the iounmap of openrisc arch has the problem. Is there any specific reason why it does not have __iomem annotation? What's the possible way to fix this? Wait for iounmap funtion of openrisc to get fixed?
> 
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@...el.com>
>>
>>
>> "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@lists.01.org
>>
> 
> Marc
> 

-- 
Abhijeet Badurkar - Software Engineer

 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ