i7core_edac: Introduce free_i7core_dev
Hidetoshi Seto [Fri, 20 Aug 2010 07:25:00 +0000 (04:25 -0300)]
Have a method to make a couple with alloc_i7core_dev() previously
introduced.  Using in pair will help proper resource handling.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

drivers/edac/i7core_edac.c

index c4fa112..e1cbbba 100644 (file)
@@ -470,6 +470,13 @@ static struct i7core_dev *alloc_i7core_dev(u8 socket,
        return i7core_dev;
 }
 
+static void free_i7core_dev(struct i7core_dev *i7core_dev)
+{
+       list_del(&i7core_dev->list);
+       kfree(i7core_dev->pdev);
+       kfree(i7core_dev);
+}
+
 /****************************************************************************
                        Memory check routines
  ****************************************************************************/
@@ -1265,7 +1272,6 @@ static void i7core_put_devices(struct i7core_dev *i7core_dev)
                        PCI_SLOT(pdev->devfn), PCI_FUNC(pdev->devfn));
                pci_dev_put(pdev);
        }
-       kfree(i7core_dev->pdev);
 }
 
 static void i7core_put_all_devices(void)
@@ -1274,8 +1280,7 @@ static void i7core_put_all_devices(void)
 
        list_for_each_entry_safe(i7core_dev, tmp, &i7core_edac_list, list) {
                i7core_put_devices(i7core_dev);
-               list_del(&i7core_dev->list);
-               kfree(i7core_dev);
+               free_i7core_dev(i7core_dev);
        }
 }
 
@@ -2106,8 +2111,7 @@ static void __devexit i7core_remove(struct pci_dev *pdev)
 
                        /* Release PCI resources */
                        i7core_put_devices(i7core_dev);
-                       list_del(&i7core_dev->list);
-                       kfree(i7core_dev);
+                       free_i7core_dev(i7core_dev);
                }
        }
        probed--;