From: kernel test robot <lkp@intel.com>
To: jasperwang@tencent.com, kaixuxia@tencent.com,
frankjpliu@tencent.com, kasong@tencent.com,
sagazchen@tencent.com, kernelxing@tencent.com,
aurelianliu@tencent.com, jason.zeng@intel.com,
wu.zheng@intel.com, yingbao.jia@intel.com, pei.p.jia@intel.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:33:44: sparse: sparse: incorrect type in argument 2 (different address spaces)
Date: Mon, 4 Mar 2024 03:41:22 +0800 [thread overview]
Message-ID: <202403040325.RRbzn2ux-lkp@intel.com> (raw)
Hi Jason,
First bad commit (maybe != root cause):
tree: https://gitee.com/OpenCloudOS/OpenCloudOS-Kernel.git linux-5.4/lts/5.4.119-20.0009
head: 3bf5c3f6e32e9cfe13f09bac3ae93b8e39d472c1
commit: c29a8fe73857e9fa29d3d4bc9897fb7f126a7af2 vfio: IOMMU_API should be selected
date: 2 years, 11 months ago
config: arm64-randconfig-r131-20240303 (https://download.01.org/0day-ci/archive/20240304/202403040325.RRbzn2ux-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20240304/202403040325.RRbzn2ux-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202403040325.RRbzn2ux-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:33:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got void * @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:33:44: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:33:44: sparse: got void *
>> drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:34:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] <asn:2> *addr @@ got void * @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:34:33: sparse: expected void const volatile [noderef] <asn:2> *addr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:34:33: sparse: got void *
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:44:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got void * @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:44:44: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:44:44: sparse: got void *
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:45:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got void * @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:45:33: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:45:33: sparse: got void *
>> drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:69:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ioaddr @@ got void [noderef] <asn:2> *ioaddr @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:69:41: sparse: expected void *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:69:41: sparse: got void [noderef] <asn:2> *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:71:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ioaddr @@ got void [noderef] <asn:2> *ioaddr @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:71:30: sparse: expected void *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:71:30: sparse: got void [noderef] <asn:2> *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:76:49: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ioaddr @@ got void [noderef] <asn:2> *ioaddr @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:76:49: sparse: expected void *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:76:49: sparse: got void [noderef] <asn:2> *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:85:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ioaddr @@ got void [noderef] <asn:2> *ioaddr @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:85:37: sparse: expected void *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:85:37: sparse: got void [noderef] <asn:2> *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:87:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ioaddr @@ got void [noderef] <asn:2> *ioaddr @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:87:30: sparse: expected void *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:87:30: sparse: got void [noderef] <asn:2> *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:90:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ioaddr @@ got void [noderef] <asn:2> *ioaddr @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:90:30: sparse: expected void *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:90:30: sparse: got void [noderef] <asn:2> *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:93:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ioaddr @@ got void [noderef] <asn:2> *ioaddr @@
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:93:30: sparse: expected void *ioaddr
drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:93:30: sparse: got void [noderef] <asn:2> *ioaddr
vim +33 drivers/vfio/platform/reset/vfio_platform_amdxgbe.c
^590eaf1fec755 Kaixu Xia 2021-03-16 26
^590eaf1fec755 Kaixu Xia 2021-03-16 27 static unsigned int xmdio_read(void *ioaddr, unsigned int mmd,
^590eaf1fec755 Kaixu Xia 2021-03-16 28 unsigned int reg)
^590eaf1fec755 Kaixu Xia 2021-03-16 29 {
^590eaf1fec755 Kaixu Xia 2021-03-16 30 unsigned int mmd_address, value;
^590eaf1fec755 Kaixu Xia 2021-03-16 31
^590eaf1fec755 Kaixu Xia 2021-03-16 32 mmd_address = (mmd << 16) | ((reg) & 0xffff);
^590eaf1fec755 Kaixu Xia 2021-03-16 @33 iowrite32(mmd_address >> 8, ioaddr + (PCS_MMD_SELECT << 2));
^590eaf1fec755 Kaixu Xia 2021-03-16 @34 value = ioread32(ioaddr + ((mmd_address & 0xff) << 2));
^590eaf1fec755 Kaixu Xia 2021-03-16 35 return value;
^590eaf1fec755 Kaixu Xia 2021-03-16 36 }
^590eaf1fec755 Kaixu Xia 2021-03-16 37
^590eaf1fec755 Kaixu Xia 2021-03-16 38 static void xmdio_write(void *ioaddr, unsigned int mmd,
^590eaf1fec755 Kaixu Xia 2021-03-16 39 unsigned int reg, unsigned int value)
^590eaf1fec755 Kaixu Xia 2021-03-16 40 {
^590eaf1fec755 Kaixu Xia 2021-03-16 41 unsigned int mmd_address;
^590eaf1fec755 Kaixu Xia 2021-03-16 42
^590eaf1fec755 Kaixu Xia 2021-03-16 43 mmd_address = (mmd << 16) | ((reg) & 0xffff);
^590eaf1fec755 Kaixu Xia 2021-03-16 44 iowrite32(mmd_address >> 8, ioaddr + (PCS_MMD_SELECT << 2));
^590eaf1fec755 Kaixu Xia 2021-03-16 45 iowrite32(value, ioaddr + ((mmd_address & 0xff) << 2));
^590eaf1fec755 Kaixu Xia 2021-03-16 46 }
^590eaf1fec755 Kaixu Xia 2021-03-16 47
^590eaf1fec755 Kaixu Xia 2021-03-16 48 static int vfio_platform_amdxgbe_reset(struct vfio_platform_device *vdev)
^590eaf1fec755 Kaixu Xia 2021-03-16 49 {
^590eaf1fec755 Kaixu Xia 2021-03-16 50 struct vfio_platform_region *xgmac_regs = &vdev->regions[0];
^590eaf1fec755 Kaixu Xia 2021-03-16 51 struct vfio_platform_region *xpcs_regs = &vdev->regions[1];
^590eaf1fec755 Kaixu Xia 2021-03-16 52 u32 dma_mr_value, pcs_value, value;
^590eaf1fec755 Kaixu Xia 2021-03-16 53 unsigned int count;
^590eaf1fec755 Kaixu Xia 2021-03-16 54
^590eaf1fec755 Kaixu Xia 2021-03-16 55 if (!xgmac_regs->ioaddr) {
^590eaf1fec755 Kaixu Xia 2021-03-16 56 xgmac_regs->ioaddr =
^590eaf1fec755 Kaixu Xia 2021-03-16 57 ioremap_nocache(xgmac_regs->addr, xgmac_regs->size);
^590eaf1fec755 Kaixu Xia 2021-03-16 58 if (!xgmac_regs->ioaddr)
^590eaf1fec755 Kaixu Xia 2021-03-16 59 return -ENOMEM;
^590eaf1fec755 Kaixu Xia 2021-03-16 60 }
^590eaf1fec755 Kaixu Xia 2021-03-16 61 if (!xpcs_regs->ioaddr) {
^590eaf1fec755 Kaixu Xia 2021-03-16 62 xpcs_regs->ioaddr =
^590eaf1fec755 Kaixu Xia 2021-03-16 63 ioremap_nocache(xpcs_regs->addr, xpcs_regs->size);
^590eaf1fec755 Kaixu Xia 2021-03-16 64 if (!xpcs_regs->ioaddr)
^590eaf1fec755 Kaixu Xia 2021-03-16 65 return -ENOMEM;
^590eaf1fec755 Kaixu Xia 2021-03-16 66 }
^590eaf1fec755 Kaixu Xia 2021-03-16 67
^590eaf1fec755 Kaixu Xia 2021-03-16 68 /* reset the PHY through MDIO*/
^590eaf1fec755 Kaixu Xia 2021-03-16 @69 pcs_value = xmdio_read(xpcs_regs->ioaddr, MDIO_MMD_PCS, MDIO_CTRL1);
^590eaf1fec755 Kaixu Xia 2021-03-16 70 pcs_value |= MDIO_CTRL1_RESET;
^590eaf1fec755 Kaixu Xia 2021-03-16 71 xmdio_write(xpcs_regs->ioaddr, MDIO_MMD_PCS, MDIO_CTRL1, pcs_value);
^590eaf1fec755 Kaixu Xia 2021-03-16 72
^590eaf1fec755 Kaixu Xia 2021-03-16 73 count = 50;
^590eaf1fec755 Kaixu Xia 2021-03-16 74 do {
^590eaf1fec755 Kaixu Xia 2021-03-16 75 msleep(20);
^590eaf1fec755 Kaixu Xia 2021-03-16 76 pcs_value = xmdio_read(xpcs_regs->ioaddr, MDIO_MMD_PCS,
^590eaf1fec755 Kaixu Xia 2021-03-16 77 MDIO_CTRL1);
^590eaf1fec755 Kaixu Xia 2021-03-16 78 } while ((pcs_value & MDIO_CTRL1_RESET) && --count);
^590eaf1fec755 Kaixu Xia 2021-03-16 79
^590eaf1fec755 Kaixu Xia 2021-03-16 80 if (pcs_value & MDIO_CTRL1_RESET)
^590eaf1fec755 Kaixu Xia 2021-03-16 81 dev_warn(vdev->device, "%s: XGBE PHY reset timeout\n",
^590eaf1fec755 Kaixu Xia 2021-03-16 82 __func__);
^590eaf1fec755 Kaixu Xia 2021-03-16 83
^590eaf1fec755 Kaixu Xia 2021-03-16 84 /* disable auto-negotiation */
^590eaf1fec755 Kaixu Xia 2021-03-16 85 value = xmdio_read(xpcs_regs->ioaddr, MDIO_MMD_AN, MDIO_CTRL1);
^590eaf1fec755 Kaixu Xia 2021-03-16 86 value &= ~MDIO_AN_CTRL1_ENABLE;
^590eaf1fec755 Kaixu Xia 2021-03-16 87 xmdio_write(xpcs_regs->ioaddr, MDIO_MMD_AN, MDIO_CTRL1, value);
^590eaf1fec755 Kaixu Xia 2021-03-16 88
^590eaf1fec755 Kaixu Xia 2021-03-16 89 /* disable AN IRQ */
^590eaf1fec755 Kaixu Xia 2021-03-16 90 xmdio_write(xpcs_regs->ioaddr, MDIO_MMD_AN, MDIO_AN_INTMASK, 0);
^590eaf1fec755 Kaixu Xia 2021-03-16 91
^590eaf1fec755 Kaixu Xia 2021-03-16 92 /* clear AN IRQ */
^590eaf1fec755 Kaixu Xia 2021-03-16 93 xmdio_write(xpcs_regs->ioaddr, MDIO_MMD_AN, MDIO_AN_INT, 0);
^590eaf1fec755 Kaixu Xia 2021-03-16 94
^590eaf1fec755 Kaixu Xia 2021-03-16 95 /* MAC software reset */
^590eaf1fec755 Kaixu Xia 2021-03-16 96 dma_mr_value = ioread32(xgmac_regs->ioaddr + DMA_MR);
^590eaf1fec755 Kaixu Xia 2021-03-16 97 dma_mr_value |= 0x1;
^590eaf1fec755 Kaixu Xia 2021-03-16 98 iowrite32(dma_mr_value, xgmac_regs->ioaddr + DMA_MR);
^590eaf1fec755 Kaixu Xia 2021-03-16 99
^590eaf1fec755 Kaixu Xia 2021-03-16 100 usleep_range(10, 15);
^590eaf1fec755 Kaixu Xia 2021-03-16 101
^590eaf1fec755 Kaixu Xia 2021-03-16 102 count = 2000;
^590eaf1fec755 Kaixu Xia 2021-03-16 103 while (--count && (ioread32(xgmac_regs->ioaddr + DMA_MR) & 1))
^590eaf1fec755 Kaixu Xia 2021-03-16 104 usleep_range(500, 600);
^590eaf1fec755 Kaixu Xia 2021-03-16 105
^590eaf1fec755 Kaixu Xia 2021-03-16 106 if (!count)
^590eaf1fec755 Kaixu Xia 2021-03-16 107 dev_warn(vdev->device, "%s: MAC SW reset failed\n", __func__);
^590eaf1fec755 Kaixu Xia 2021-03-16 108
^590eaf1fec755 Kaixu Xia 2021-03-16 109 return 0;
^590eaf1fec755 Kaixu Xia 2021-03-16 110 }
^590eaf1fec755 Kaixu Xia 2021-03-16 111
:::::: The code at line 33 was first introduced by commit
:::::: 590eaf1fec755215547690e787cc7d83f58ea948 Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces.
:::::: TO: Kaixu Xia <kaixuxia@tencent.com>
:::::: CC: Kaixu Xia <kaixuxia@tencent.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2024-03-03 19:42 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-03 19:41 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-03-04 18:09 drivers/vfio/platform/reset/vfio_platform_amdxgbe.c:33:44: sparse: sparse: incorrect type in argument 2 (different address spaces) kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202403040325.RRbzn2ux-lkp@intel.com \
--to=lkp@intel.com \
--cc=aurelianliu@tencent.com \
--cc=frankjpliu@tencent.com \
--cc=jason.zeng@intel.com \
--cc=jasperwang@tencent.com \
--cc=kaixuxia@tencent.com \
--cc=kasong@tencent.com \
--cc=kernelxing@tencent.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pei.p.jia@intel.com \
--cc=sagazchen@tencent.com \
--cc=wu.zheng@intel.com \
--cc=yingbao.jia@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.