drivers/tty/serial/mxs-auart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
of_device_get_match_data() returns a pointer. Casting it directly to
enum truncates on 64-bit platforms. Cast to unsigned long instead.
Fixes compilation with W=1.
Assisted-by: Opencode:Big-pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/tty/serial/mxs-auart.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index 697318dbb146..de97c0f74e7d 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -1598,7 +1598,7 @@ static int mxs_auart_probe(struct platform_device *pdev)
return -EINVAL;
}
- s->devtype = (enum mxs_auart_type)of_device_get_match_data(&pdev->dev);
+ s->devtype = (unsigned long)of_device_get_match_data(&pdev->dev);
ret = mxs_get_clks(s, pdev);
if (ret)
--
2.54.0
On 28. 05. 26, 22:30, Rosen Penev wrote: > of_device_get_match_data() returns a pointer. Casting it directly to > enum truncates on 64-bit platforms. Cast to unsigned long instead. This is a misleading commit log. It still truncates during the assignment. > Fixes compilation with W=1. Fixes a warning, not compilation, right? > Assisted-by: Opencode:Big-pickle > Signed-off-by: Rosen Penev <rosenp@gmail.com> > --- > drivers/tty/serial/mxs-auart.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c > index 697318dbb146..de97c0f74e7d 100644 > --- a/drivers/tty/serial/mxs-auart.c > +++ b/drivers/tty/serial/mxs-auart.c > @@ -1598,7 +1598,7 @@ static int mxs_auart_probe(struct platform_device *pdev) > return -EINVAL; > } > > - s->devtype = (enum mxs_auart_type)of_device_get_match_data(&pdev->dev); > + s->devtype = (unsigned long)of_device_get_match_data(&pdev->dev); > > ret = mxs_get_clks(s, pdev); > if (ret) > -- > 2.54.0 > -- js suse labs
On Fri, May 29, 2026 at 12:37 AM Jiri Slaby <jirislaby@kernel.org> wrote: > > On 28. 05. 26, 22:30, Rosen Penev wrote: > > of_device_get_match_data() returns a pointer. Casting it directly to > > enum truncates on 64-bit platforms. Cast to unsigned long instead. > > This is a misleading commit log. It still truncates during the assignment. > > > Fixes compilation with W=1. > > Fixes a warning, not compilation, right? compilation. I believe -Werror is passed. > > > Assisted-by: Opencode:Big-pickle > > Signed-off-by: Rosen Penev <rosenp@gmail.com> > > --- > > drivers/tty/serial/mxs-auart.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c > > index 697318dbb146..de97c0f74e7d 100644 > > --- a/drivers/tty/serial/mxs-auart.c > > +++ b/drivers/tty/serial/mxs-auart.c > > @@ -1598,7 +1598,7 @@ static int mxs_auart_probe(struct platform_device *pdev) > > return -EINVAL; > > } > > > > - s->devtype = (enum mxs_auart_type)of_device_get_match_data(&pdev->dev); > > + s->devtype = (unsigned long)of_device_get_match_data(&pdev->dev); > > > > ret = mxs_get_clks(s, pdev); > > if (ret) > > -- > > 2.54.0 > > > > > -- > js > suse labs
© 2016 - 2026 Red Hat, Inc.