]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
fbdev: pxafb: use devm_kmemdup*()
authorRaag Jadav <raag.jadav@intel.com>
Fri, 28 Feb 2025 07:10:09 +0000 (12:40 +0530)
committerHelge Deller <deller@gmx.de>
Wed, 26 Mar 2025 21:39:20 +0000 (22:39 +0100)
Convert to use devm_kmemdup() and devm_kmemdup_array() which are
more robust.

Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Helge Deller <deller@gmx.de>
drivers/video/fbdev/pxafb.c

index 4aa84853e31a842b35d5a89e7285b0a43fe5321d..ee6da5084242b5f93c386e1887b4f2c46085a4a3 100644 (file)
@@ -2233,32 +2233,27 @@ static int pxafb_probe(struct platform_device *dev)
 {
        struct pxafb_info *fbi;
        struct pxafb_mach_info *inf, *pdata;
-       int i, irq, ret;
+       int irq, ret;
 
        dev_dbg(&dev->dev, "pxafb_probe\n");
 
        ret = -ENOMEM;
        pdata = dev_get_platdata(&dev->dev);
-       inf = devm_kmalloc(&dev->dev, sizeof(*inf), GFP_KERNEL);
-       if (!inf)
-               goto failed;
-
        if (pdata) {
-               *inf = *pdata;
-               inf->modes =
-                       devm_kmalloc_array(&dev->dev, pdata->num_modes,
-                                          sizeof(inf->modes[0]), GFP_KERNEL);
+               inf = devm_kmemdup(&dev->dev, pdata, sizeof(*pdata), GFP_KERNEL);
+               if (!inf)
+                       goto failed;
+
+               inf->modes = devm_kmemdup_array(&dev->dev, pdata->modes, pdata->num_modes,
+                                               sizeof(*pdata->modes), GFP_KERNEL);
                if (!inf->modes)
                        goto failed;
-               for (i = 0; i < inf->num_modes; i++)
-                       inf->modes[i] = pdata->modes[i];
        } else {
                inf = of_pxafb_of_mach_info(&dev->dev);
+               if (IS_ERR_OR_NULL(inf))
+                       goto failed;
        }
 
-       if (IS_ERR_OR_NULL(inf))
-               goto failed;
-
        ret = pxafb_parse_options(&dev->dev, g_options, inf);
        if (ret < 0)
                goto failed;