PCI: iproc: Fix -Wvoid-pointer-to-enum-cast warning
authorJustin Stitt <justinstitt@google.com>
Wed, 20 Dec 2023 05:38:28 +0000 (14:38 +0900)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Sat, 6 Jan 2024 08:06:50 +0000 (08:06 +0000)
When building with clang 18, the following warning will be reported:

  drivers/pci/controller/pcie-iproc-platform.c:54:15: warning: cast to smaller integer type 'enum iproc_pcie_type' from 'const void *' [-Wvoid-pointer-to-enum-cast]
     55 |         pcie->type = (enum iproc_pcie_type) of_device_get_match_data(dev);

To fix this issue, cast the data the of_device_get_match_data() helper
returns to uintptr_t rather than the iproc_pcie_type enum.

[kwilczynski: commit log]
Link: https://lore.kernel.org/linux-pci/20231220053829.1921187-6-yoshihiro.shimoda.uh@renesas.com
Link: https://github.com/ClangBuiltLinux/linux/issues/1910
Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Justin Stitt <justinstitt@google.com>
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
drivers/pci/controller/pcie-iproc-platform.c

index acdc583d29802ca3a33e62aec8c7de02b6fbc32c..4e6aa882a567abb00b1b94a6550586bd6df47452 100644 (file)
@@ -52,7 +52,7 @@ static int iproc_pltfm_pcie_probe(struct platform_device *pdev)
        pcie = pci_host_bridge_priv(bridge);
 
        pcie->dev = dev;
-       pcie->type = (enum iproc_pcie_type) of_device_get_match_data(dev);
+       pcie->type = (uintptr_t)of_device_get_match_data(dev);
 
        ret = of_address_to_resource(np, 0, &reg);
        if (ret < 0) {