Jelajahi Sumber

i7core_edac: Introduce alloc_i7core_dev

It's nice to have a method for a single purpose.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hidetoshi Seto 15 tahun lalu
induk
melakukan
848b2f7ed6
1 mengubah file dengan 24 tambahan dan 10 penghapusan
  1. 24 10
      drivers/edac/i7core_edac.c

+ 24 - 10
drivers/edac/i7core_edac.c

@@ -447,6 +447,29 @@ static struct i7core_dev *get_i7core_dev(u8 socket)
 	return NULL;
 }
 
+static struct i7core_dev *alloc_i7core_dev(u8 socket,
+					   const struct pci_id_table *table)
+{
+	struct i7core_dev *i7core_dev;
+
+	i7core_dev = kzalloc(sizeof(*i7core_dev), GFP_KERNEL);
+	if (!i7core_dev)
+		return NULL;
+
+	i7core_dev->pdev = kzalloc(sizeof(*i7core_dev->pdev) * table->n_devs,
+				   GFP_KERNEL);
+	if (!i7core_dev->pdev) {
+		kfree(i7core_dev);
+		return NULL;
+	}
+
+	i7core_dev->socket = socket;
+	i7core_dev->n_devs = table->n_devs;
+	list_add_tail(&i7core_dev->list, &i7core_edac_list);
+
+	return i7core_dev;
+}
+
 /****************************************************************************
 			Memory check routines
  ****************************************************************************/
@@ -1355,18 +1378,9 @@ static int i7core_get_onedevice(struct pci_dev **prev,
 
 	i7core_dev = get_i7core_dev(socket);
 	if (!i7core_dev) {
-		i7core_dev = kzalloc(sizeof(*i7core_dev), GFP_KERNEL);
+		i7core_dev = alloc_i7core_dev(socket, table);
 		if (!i7core_dev)
 			return -ENOMEM;
-		i7core_dev->pdev = kzalloc(sizeof(*i7core_dev->pdev)
-						* table->n_devs, GFP_KERNEL);
-		if (!i7core_dev->pdev) {
-			kfree(i7core_dev);
-			return -ENOMEM;
-		}
-		i7core_dev->socket = socket;
-		i7core_dev->n_devs = table->n_devs;
-		list_add_tail(&i7core_dev->list, &i7core_edac_list);
 	}
 
 	if (i7core_dev->pdev[devno]) {