tree 56c4e59dd09f2db0845b5851cffbf579cc86ff05
parent 2fd9d74b35efa9823f1f7d34cb421e2b9eee9650
author Greg Kroah-Hartman <[EMAIL PROTECTED]> Thu, 18 Aug 2005 14:33:01 +1000
committer Greg Kroah-Hartman <[EMAIL PROTECTED]> Sat, 10 Sep 2005 01:24:19 -0700

[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 <[EMAIL PROTECTED]>

 drivers/pci/hotplug.c |   53 +++++++++++++++++++-------------------------------
 1 files changed, 21 insertions(+), 32 deletions(-)

diff --git a/drivers/pci/hotplug.c b/drivers/pci/hotplug.c
--- a/drivers/pci/hotplug.c
+++ b/drivers/pci/hotplug.c
@@ -20,46 +20,35 @@ int pci_hotplug (struct device *dev, cha
 
        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))
+
+       if (add_hotplug_env_var(envp, num_envp, &i,
+                               buffer, buffer_size, &length,
+                               "PCI_CLASS=%04X", pdev->class))
                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))
+       if (add_hotplug_env_var(envp, num_envp, &i,
+                               buffer, buffer_size, &length,
+                               "PCI_ID=%04X:%04X", pdev->vendor, pdev->device))
                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))
+       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;
-       ++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_SLOT_NAME=%s", pci_name(pdev)))
                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,
+                               
"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;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to