[PATCH] PCI: move pci core to use add_hotplug_env_var()

This fixes a bug in the environment variables for all PCI device hotplug calls.

Thanks to Kay Sievers for pointing out the problem.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff --git a/drivers/pci/hotplug.c b/drivers/pci/hotplug.c
index b844bc9..1044498 100644
--- a/drivers/pci/hotplug.c
+++ b/drivers/pci/hotplug.c
@@ -20,46 +20,35 @@
 
 	scratch = buffer;
 
-	/* stuff we want to pass to /sbin/hotplug */
-	envp[i++] = scratch;
-	length += scnprintf (scratch, buffer_size - length, "PCI_CLASS=%04X",
-			    pdev->class);
-	if ((buffer_size - length <= 0) || (i >= num_envp))
-		return -ENOMEM;
-	++length;
-	scratch += length;
 
-	envp[i++] = scratch;
-	length += scnprintf (scratch, buffer_size - length, "PCI_ID=%04X:%04X",
-			    pdev->vendor, pdev->device);
-	if ((buffer_size - length <= 0) || (i >= num_envp))
-		return -ENOMEM;
-	++length;
-	scratch += length;
-
-	envp[i++] = scratch;
-	length += scnprintf (scratch, buffer_size - length,
-			    "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor,
-			    pdev->subsystem_device);
-	if ((buffer_size - length <= 0) || (i >= num_envp))
-		return -ENOMEM;
-	++length;
-	scratch += length;
-
-	envp[i++] = scratch;
-	length += scnprintf (scratch, buffer_size - length, "PCI_SLOT_NAME=%s",
-			    pci_name(pdev));
-	if ((buffer_size - length <= 0) || (i >= num_envp))
+	if (add_hotplug_env_var(envp, num_envp, &i,
+				buffer, buffer_size, &length,
+				"PCI_CLASS=%04X", pdev->class))
 		return -ENOMEM;
 
-	envp[i++] = scratch;
-	length += scnprintf (scratch, buffer_size - length,
-			    "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x",
-			    pdev->vendor, pdev->device,
-			    pdev->subsystem_vendor, pdev->subsystem_device,
-			    (u8)(pdev->class >> 16), (u8)(pdev->class >> 8),
-			    (u8)(pdev->class));
-	if ((buffer_size - length <= 0) || (i >= num_envp))
+	if (add_hotplug_env_var(envp, num_envp, &i,
+				buffer, buffer_size, &length,
+				"PCI_ID=%04X:%04X", pdev->vendor, pdev->device))
+		return -ENOMEM;
+
+	if (add_hotplug_env_var(envp, num_envp, &i,
+				buffer, buffer_size, &length,
+				"PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor,
+				pdev->subsystem_device))
+		return -ENOMEM;
+
+	if (add_hotplug_env_var(envp, num_envp, &i,
+				buffer, buffer_size, &length,
+				"PCI_SLOT_NAME=%s", pci_name(pdev)))
+		return -ENOMEM;
+
+	if (add_hotplug_env_var(envp, num_envp, &i,
+				buffer, buffer_size, &length,
+				"MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x",
+				pdev->vendor, pdev->device,
+				pdev->subsystem_vendor, pdev->subsystem_device,
+				(u8)(pdev->class >> 16), (u8)(pdev->class >> 8),
+				(u8)(pdev->class)))
 		return -ENOMEM;
 
 	envp[i] = NULL;