On 14/08/2023 10:33, David Laight wrote: > From: Krzysztof Kozlowski >> Sent: 10 August 2023 10:32 >> >> 'chip' is an enum, thus cast of pointer on 64-bit compile test with W=1 >> causes: >> >> ina2xx.c:627:10: error: cast to smaller integer type 'enum ina2xx_ids' from 'const void *' [- >> Werror,-Wvoid-pointer-to-enum-cast] >> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> >> --- >> drivers/hwmon/ina2xx.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/hwmon/ina2xx.c b/drivers/hwmon/ina2xx.c >> index a47973e2d606..d8415d1f21fc 100644 >> --- a/drivers/hwmon/ina2xx.c >> +++ b/drivers/hwmon/ina2xx.c >> @@ -624,7 +624,7 @@ static int ina2xx_probe(struct i2c_client *client) >> enum ina2xx_ids chip; >> >> if (client->dev.of_node) >> -chip = (enum ina2xx_ids)of_device_get_match_data(&client->dev); >> +chip = (uintptr_t)of_device_get_match_data(&client->dev); > > The kernel type would be 'long' not uintptr_t. Yeah, Greg also pointed out. It was applied, so no sure if it is worth to change to kernel_ulong_t. > But this all looks like something horrid is being done. Why exactly? This is pretty often pattern, code is correct and easy to understand. > > (And you've clearly lost all the tabs) It's your email client who lost them: https://lore.kernel.org/all/20230810093157.94244-4-krzysztof.kozlowski@xxxxxxxxxx/ Best regards, Krzysztof