Merge tag 'md-3.9' of git://neil.brown.name/md
[firefly-linux-kernel-4.4.55.git] / 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 = {