On Fri 2017-12-01 07:57:15, Lee Jones wrote: > On Thu, 30 Nov 2017, Bjorn Andersson wrote: > > > The pointer returned by of_device_get_match_data() doesn't have the same > > size as u32 on 64-bit architectures, causing a compile warning when > > compile-testing the driver on such platform. > > > > Cast the return value of of_device_get_match_data() to unsigned long and > > then to u32 to silence this warning. > > > > Cc: Linus Walleij > > Fixes: 7f866986e705 ("leds: add PM8058 LEDs driver") > > Signed-off-by: Bjorn Andersson Thanks! Acked-by: Pavel Machek > > diff --git a/drivers/leds/leds-pm8058.c b/drivers/leds/leds-pm8058.c > > index a52674327857..8988ba3b2d65 100644 > > --- a/drivers/leds/leds-pm8058.c > > +++ b/drivers/leds/leds-pm8058.c > > @@ -106,7 +106,7 @@ static int pm8058_led_probe(struct platform_device *pdev) > > if (!led) > > return -ENOMEM; > > > > - led->ledtype = (u32)of_device_get_match_data(&pdev->dev); > > + led->ledtype = (u32)(unsigned long)of_device_get_match_data(&pdev->dev); > > Wouldn't (u32)(void *) be even more correct? > > ... if the compiler will let you get away with it. Afaict that would still produce the warning. of_device_get_match_data already returns void *. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html