Message ID | 170052491316.21557.13173111699965824301.stgit@skinsburskii. (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] PCI: mediatek: Fix sparse warning caused to virt_to_phys() prototype change | expand |
Hi Stanislav, kernel test robot noticed the following build warnings: [auto build test WARNING on pci/next] [also build test WARNING on pci/for-linus linus/master v6.7-rc2 next-20231121] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Stanislav-Kinsburskii/PCI-mediatek-Fix-sparse-warning-caused-to-virt_to_phys-prototype-change/20231121-080253 base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next patch link: https://lore.kernel.org/r/170052491316.21557.13173111699965824301.stgit%40skinsburskii. patch subject: [PATCH v2] PCI: mediatek: Fix sparse warning caused to virt_to_phys() prototype change config: openrisc-allmodconfig (https://download.01.org/0day-ci/archive/20231121/202311211958.Z1kPUdyp-lkp@intel.com/config) compiler: or1k-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231121/202311211958.Z1kPUdyp-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/202311211958.Z1kPUdyp-lkp@intel.com/ All warnings (new ones prefixed by >>): drivers/pci/controller/pcie-mediatek.c: In function 'mtk_compose_msi_msg': >> drivers/pci/controller/pcie-mediatek.c:400:62: warning: passing argument 1 of 'virt_to_phys' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 400 | addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); | ^ In file included from arch/openrisc/include/asm/io.h:37, from include/linux/io.h:13, from include/linux/iopoll.h:14, from drivers/pci/controller/pcie-mediatek.c:12: include/asm-generic/io.h:1003:57: note: expected 'volatile void *' but argument is of type 'const void *' 1003 | static inline unsigned long virt_to_phys(volatile void *address) | ~~~~~~~~~~~~~~~^~~~~~~ drivers/pci/controller/pcie-mediatek.c: In function 'mtk_pcie_enable_msi': drivers/pci/controller/pcie-mediatek.c:523:66: warning: passing argument 1 of 'virt_to_phys' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 523 | msg_addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); | ^ include/asm-generic/io.h:1003:57: note: expected 'volatile void *' but argument is of type 'const void *' 1003 | static inline unsigned long virt_to_phys(volatile void *address) | ~~~~~~~~~~~~~~~^~~~~~~ vim +400 drivers/pci/controller/pcie-mediatek.c 393 394 static void mtk_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) 395 { 396 struct mtk_pcie_port *port = irq_data_get_irq_chip_data(data); 397 phys_addr_t addr; 398 399 /* MT2712/MT7622 only support 32-bit MSI addresses */ > 400 addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); 401 msg->address_hi = 0; 402 msg->address_lo = lower_32_bits(addr); 403 404 msg->data = data->hwirq; 405 406 dev_dbg(port->pcie->dev, "msi#%d address_hi %#x address_lo %#x\n", 407 (int)data->hwirq, msg->address_hi, msg->address_lo); 408 } 409
Hi Stanislav, kernel test robot noticed the following build warnings: [auto build test WARNING on pci/next] [also build test WARNING on pci/for-linus linus/master v6.7-rc2 next-20231121] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Stanislav-Kinsburskii/PCI-mediatek-Fix-sparse-warning-caused-to-virt_to_phys-prototype-change/20231121-080253 base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next patch link: https://lore.kernel.org/r/170052491316.21557.13173111699965824301.stgit%40skinsburskii. patch subject: [PATCH v2] PCI: mediatek: Fix sparse warning caused to virt_to_phys() prototype change config: s390-randconfig-r113-20231121 (https://download.01.org/0day-ci/archive/20231121/202311212050.Z3EDRIR3-lkp@intel.com/config) compiler: s390-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20231121/202311212050.Z3EDRIR3-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/202311212050.Z3EDRIR3-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/pci/controller/pcie-mediatek.c:400:62: sparse: sparse: incorrect type in argument 1 (different modifiers) @@ expected void volatile *address @@ got void const * @@ drivers/pci/controller/pcie-mediatek.c:400:62: sparse: expected void volatile *address drivers/pci/controller/pcie-mediatek.c:400:62: sparse: got void const * drivers/pci/controller/pcie-mediatek.c:523:66: sparse: sparse: incorrect type in argument 1 (different modifiers) @@ expected void volatile *address @@ got void const * @@ drivers/pci/controller/pcie-mediatek.c:523:66: sparse: expected void volatile *address drivers/pci/controller/pcie-mediatek.c:523:66: sparse: got void const * vim +400 drivers/pci/controller/pcie-mediatek.c 393 394 static void mtk_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) 395 { 396 struct mtk_pcie_port *port = irq_data_get_irq_chip_data(data); 397 phys_addr_t addr; 398 399 /* MT2712/MT7622 only support 32-bit MSI addresses */ > 400 addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); 401 msg->address_hi = 0; 402 msg->address_lo = lower_32_bits(addr); 403 404 msg->data = data->hwirq; 405 406 dev_dbg(port->pcie->dev, "msi#%d address_hi %#x address_lo %#x\n", 407 (int)data->hwirq, msg->address_hi, msg->address_lo); 408 } 409
Hi Stanislav, kernel test robot noticed the following build errors: [auto build test ERROR on pci/next] [also build test ERROR on pci/for-linus linus/master v6.7-rc2 next-20231122] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Stanislav-Kinsburskii/PCI-mediatek-Fix-sparse-warning-caused-to-virt_to_phys-prototype-change/20231121-080253 base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next patch link: https://lore.kernel.org/r/170052491316.21557.13173111699965824301.stgit%40skinsburskii. patch subject: [PATCH v2] PCI: mediatek: Fix sparse warning caused to virt_to_phys() prototype change config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20231122/202311221830.SR5dv3X7-lkp@intel.com/config) compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231122/202311221830.SR5dv3X7-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/202311221830.SR5dv3X7-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/pci/controller/pcie-mediatek.c:400:22: error: passing 'const void *' to parameter of type 'volatile void *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/io.h:128:55: note: passing argument to parameter 'address' here static inline phys_addr_t virt_to_phys(volatile void *address) ^ drivers/pci/controller/pcie-mediatek.c:523:26: error: passing 'const void *' to parameter of type 'volatile void *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] msg_addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/io.h:128:55: note: passing argument to parameter 'address' here static inline phys_addr_t virt_to_phys(volatile void *address) ^ 2 errors generated. vim +400 drivers/pci/controller/pcie-mediatek.c 393 394 static void mtk_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) 395 { 396 struct mtk_pcie_port *port = irq_data_get_irq_chip_data(data); 397 phys_addr_t addr; 398 399 /* MT2712/MT7622 only support 32-bit MSI addresses */ > 400 addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); 401 msg->address_hi = 0; 402 msg->address_lo = lower_32_bits(addr); 403 404 msg->data = data->hwirq; 405 406 dev_dbg(port->pcie->dev, "msi#%d address_hi %#x address_lo %#x\n", 407 (int)data->hwirq, msg->address_hi, msg->address_lo); 408 } 409
diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c index 66a8f73296fc..27f0f79810a1 100644 --- a/drivers/pci/controller/pcie-mediatek.c +++ b/drivers/pci/controller/pcie-mediatek.c @@ -397,7 +397,7 @@ static void mtk_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) phys_addr_t addr; /* MT2712/MT7622 only support 32-bit MSI addresses */ - addr = virt_to_phys(port->base + PCIE_MSI_VECTOR); + addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); msg->address_hi = 0; msg->address_lo = lower_32_bits(addr); @@ -520,7 +520,7 @@ static void mtk_pcie_enable_msi(struct mtk_pcie_port *port) u32 val; phys_addr_t msg_addr; - msg_addr = virt_to_phys(port->base + PCIE_MSI_VECTOR); + msg_addr = virt_to_phys((__force const void *)port->base + PCIE_MSI_VECTOR); val = lower_32_bits(msg_addr); writel(val, port->base + PCIE_IMSI_ADDR);
Explicitly cast __iomem pointer to const void* with __force to fix the following warning: warning: incorrect type in argument 1 (different address spaces) expected void const volatile *address got void [noderef] __iomem * Signed-off-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202311161120.BgyxTBMQ-lkp@intel.com/ --- drivers/pci/controller/pcie-mediatek.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)