mfd: lpc_ich: Use devres API to allocate private data
authorAaron Sierra <asierra@xes-inc.com>
Thu, 14 Feb 2013 17:35:04 +0000 (11:35 -0600)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 15 Feb 2013 17:43:38 +0000 (18:43 +0100)
And fix a kzalloc argument inversion bug while converting to devres.

Signed-off-by: Aaron Sierra <asierra@xes-inc.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/lpc_ich.c

index 5c2ef41fa24c9fa0d8bbb0484d3cf17e9dfc4729..9f12f91d6296e6793dca0a5f29e07c8a6621b314 100644 (file)
@@ -916,7 +916,8 @@ static int lpc_ich_probe(struct pci_dev *dev,
        int ret;
        bool cell_added = false;
 
-       priv = kmalloc(GFP_KERNEL, sizeof(struct lpc_ich_priv));
+       priv = devm_kzalloc(&dev->dev,
+                           sizeof(struct lpc_ich_priv), GFP_KERNEL);
        if (!priv)
                return -ENOMEM;
 
@@ -952,7 +953,6 @@ static int lpc_ich_probe(struct pci_dev *dev,
                dev_warn(&dev->dev, "No MFD cells added\n");
                lpc_ich_restore_config_space(dev);
                pci_set_drvdata(dev, NULL);
-               kfree(priv);
                return -ENODEV;
        }
 
@@ -961,12 +961,9 @@ static int lpc_ich_probe(struct pci_dev *dev,
 
 static void lpc_ich_remove(struct pci_dev *dev)
 {
-       void *priv = pci_get_drvdata(dev);
-
        mfd_remove_devices(&dev->dev);
        lpc_ich_restore_config_space(dev);
        pci_set_drvdata(dev, NULL);
-       kfree(priv);
 }
 
 static struct pci_driver lpc_ich_driver = {