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;
