eisa: remove driver_data direct access of struct device
Greg Kroah-Hartman [Thu, 30 Apr 2009 21:43:31 +0000 (14:43 -0700)]
In the near future, the driver core is going to not allow direct access
to the driver_data pointer in struct device.  Instead, the functions
dev_get_drvdata() and dev_set_drvdata() should be used.  These functions
have been around since the beginning, so are backwards compatible with
all older kernel versions.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

drivers/eisa/pci_eisa.c
drivers/eisa/virtual_root.c
include/linux/eisa.h

index 74edb1d..0dd0f63 100644 (file)
@@ -31,11 +31,11 @@ static int __init pci_eisa_init(struct pci_dev *pdev,
        }
 
        pci_eisa_root.dev              = &pdev->dev;
-       pci_eisa_root.dev->driver_data = &pci_eisa_root;
        pci_eisa_root.res              = pdev->bus->resource[0];
        pci_eisa_root.bus_base_addr    = pdev->bus->resource[0]->start;
        pci_eisa_root.slots            = EISA_MAX_SLOTS;
        pci_eisa_root.dma_mask         = pdev->dma_mask;
+       dev_set_drvdata(pci_eisa_root.dev, &pci_eisa_root);
 
        if (eisa_root_register (&pci_eisa_root)) {
                printk (KERN_ERR "pci_eisa : Could not register EISA root\n");
index 3074879..535e4f9 100644 (file)
@@ -57,7 +57,7 @@ static int __init virtual_eisa_root_init (void)
 
        eisa_bus_root.force_probe = force_probe;
        
-       eisa_root_dev.dev.driver_data = &eisa_bus_root;
+       dev_set_drvdata(&eisa_root_dev.dev, &eisa_bus_root);
 
        if (eisa_root_register (&eisa_bus_root)) {
                /* A real bridge may have been registered before
index e61c0be..6925249 100644 (file)
@@ -78,12 +78,12 @@ static inline void eisa_driver_unregister (struct eisa_driver *edrv) { }
 /* Mimics pci.h... */
 static inline void *eisa_get_drvdata (struct eisa_device *edev)
 {
-        return edev->dev.driver_data;
+        return dev_get_drvdata(&edev->dev);
 }
 
 static inline void eisa_set_drvdata (struct eisa_device *edev, void *data)
 {
-        edev->dev.driver_data = data;
+        dev_set_drvdata(&edev->dev, data);
 }
 
 /* The EISA root device. There's rumours about machines with multiple