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>
        }
 
        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");
 
 
        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
 
 /* 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