OSDN Git Service

staging: sm750fb: Replace kzalloc with devm_kzalloc
authorAmitoj Kaur Chawla <amitoj1606@gmail.com>
Sun, 28 Feb 2016 15:51:53 +0000 (21:21 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 12 Mar 2016 06:09:09 +0000 (22:09 -0800)
Devm_ functions allocate memory that is released when a driver
detaches.
Replace kzalloc with devm_kzalloc and remove corresponding
kfrees from probe and remove functions of a pci_dev.

Also, an unnecessary label has been removed by replacing it
with a direct return statement.

Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/sm750fb/sm750.c

index aae3c75..8ec81be 100644 (file)
@@ -1058,7 +1058,7 @@ static int lynxfb_pci_probe(struct pci_dev *pdev,
                return err;
 
        err = -ENOMEM;
-       sm750_dev = kzalloc(sizeof(*sm750_dev), GFP_KERNEL);
+       sm750_dev = devm_kzalloc(&pdev->dev, sizeof(*sm750_dev), GFP_KERNEL);
        if (!sm750_dev)
                goto disable_pci;
 
@@ -1090,7 +1090,7 @@ static int lynxfb_pci_probe(struct pci_dev *pdev,
        /* call chip specific mmap routine */
        err = hw_sm750_map(sm750_dev, pdev);
        if (err)
-               goto free_sm750_dev;
+               return err;
 
        if (!sm750_dev->mtrr_off)
                sm750_dev->mtrr.vram = arch_phys_wc_add(sm750_dev->vidmem_start,
@@ -1115,8 +1115,6 @@ static int lynxfb_pci_probe(struct pci_dev *pdev,
 
 release_fb:
        sm750fb_frambuffer_release(sm750_dev);
-free_sm750_dev:
-       kfree(sm750_dev);
 disable_pci:
        pci_disable_device(pdev);
        return err;
@@ -1134,7 +1132,6 @@ static void lynxfb_pci_remove(struct pci_dev *pdev)
        iounmap(sm750_dev->pvReg);
        iounmap(sm750_dev->pvMem);
        kfree(g_settings);
-       kfree(sm750_dev);
 }
 
 static int __init lynxfb_setup(char *options)