PCI: Restore detection of read-only BARs
[pandora-kernel.git] / drivers / pci / hotplug.c
index e1743be..2b5352a 100644 (file)
@@ -3,12 +3,9 @@
 #include <linux/module.h>
 #include "pci.h"
 
-int pci_hotplug (struct device *dev, char **envp, int num_envp,
-                char *buffer, int buffer_size)
+int pci_uevent(struct device *dev, struct kobj_uevent_env *env)
 {
        struct pci_dev *pdev;
-       int i = 0;
-       int length = 0;
 
        if (!dev)
                return -ENODEV;
@@ -17,37 +14,24 @@ int pci_hotplug (struct device *dev, char **envp, int num_envp,
        if (!pdev)
                return -ENODEV;
 
-       if (add_hotplug_env_var(envp, num_envp, &i,
-                               buffer, buffer_size, &length,
-                               "PCI_CLASS=%04X", pdev->class))
+       if (add_uevent_var(env, "PCI_CLASS=%04X", pdev->class))
                return -ENOMEM;
 
-       if (add_hotplug_env_var(envp, num_envp, &i,
-                               buffer, buffer_size, &length,
-                               "PCI_ID=%04X:%04X", pdev->vendor, pdev->device))
+       if (add_uevent_var(env, "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))
+       if (add_uevent_var(env, "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)))
+       if (add_uevent_var(env, "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)))
+       if (add_uevent_var(env, "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;
-
        return 0;
 }