[PATCH v2] mux: adgs1408: fix Wvoid-pointer-to-enum-cast warning

Krzysztof Kozlowski posted 1 patch 9 months, 1 week ago
drivers/mux/adgs1408.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] mux: adgs1408: fix Wvoid-pointer-to-enum-cast warning
Posted by Krzysztof Kozlowski 9 months, 1 week ago
'chip_id' is an enum, thus cast of pointer on 64-bit compile test with
W=1 causes:

  adgs1408.c:63:12: error: cast to smaller integer type 'enum adgs1408_chip_id' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast]

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

---

Changes in v2:
1. Use kernel_ulong_t instead of uintptr_t
2. Rebase

Patch from 2023:
Link: https://lore.kernel.org/r/20230810095822.123181-1-krzysztof.kozlowski@linaro.org
---
 drivers/mux/adgs1408.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mux/adgs1408.c b/drivers/mux/adgs1408.c
index 5386cfedcb06..5eaf07d09ac9 100644
--- a/drivers/mux/adgs1408.c
+++ b/drivers/mux/adgs1408.c
@@ -59,7 +59,7 @@ static int adgs1408_probe(struct spi_device *spi)
 	s32 idle_state;
 	int ret;
 
-	chip_id = (enum adgs1408_chip_id)spi_get_device_match_data(spi);
+	chip_id = (kernel_ulong_t)spi_get_device_match_data(spi);
 
 	mux_chip = devm_mux_chip_alloc(dev, 1, 0);
 	if (IS_ERR(mux_chip))
-- 
2.45.2
Re: [PATCH v2] mux: adgs1408: fix Wvoid-pointer-to-enum-cast warning
Posted by Krzysztof Kozlowski 9 months ago
On Thu, 01 May 2025 20:18:20 +0200, Krzysztof Kozlowski wrote:
> 'chip_id' is an enum, thus cast of pointer on 64-bit compile test with
> W=1 causes:
> 
>   adgs1408.c:63:12: error: cast to smaller integer type 'enum adgs1408_chip_id' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast]
> 
> 

v1 of this was waiting on the lists for some time, so I grabbed this v2 as well.

[1/1] mux: adgs1408: fix Wvoid-pointer-to-enum-cast warning
      https://git.kernel.org/krzk/linux/c/9761037d28327e0d4ee9586a8210ef6462c2c757

Best regards,
-- 
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Re: [PATCH v2] mux: adgs1408: fix Wvoid-pointer-to-enum-cast warning
Posted by Nuno Sá 9 months, 1 week ago
On Thu, 2025-05-01 at 20:18 +0200, Krzysztof Kozlowski wrote:
> 'chip_id' is an enum, thus cast of pointer on 64-bit compile test with
> W=1 causes:
> 
>   adgs1408.c:63:12: error: cast to smaller integer type 'enum
> adgs1408_chip_id' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast]
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> ---
> 

Reviewed-by: Nuno Sá <nuno.sa@analog.com>

> Changes in v2:
> 1. Use kernel_ulong_t instead of uintptr_t
> 2. Rebase
> 
> Patch from 2023:
> Link:
> https://lore.kernel.org/r/20230810095822.123181-1-krzysztof.kozlowski@linaro.org
> ---
>  drivers/mux/adgs1408.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mux/adgs1408.c b/drivers/mux/adgs1408.c
> index 5386cfedcb06..5eaf07d09ac9 100644
> --- a/drivers/mux/adgs1408.c
> +++ b/drivers/mux/adgs1408.c
> @@ -59,7 +59,7 @@ static int adgs1408_probe(struct spi_device *spi)
>  	s32 idle_state;
>  	int ret;
>  
> -	chip_id = (enum adgs1408_chip_id)spi_get_device_match_data(spi);
> +	chip_id = (kernel_ulong_t)spi_get_device_match_data(spi);
>  
>  	mux_chip = devm_mux_chip_alloc(dev, 1, 0);
>  	if (IS_ERR(mux_chip))