diff -Nur a/Embedded/src/CAN/can_main.c b/Embedded/src/CAN/can_main.c
--- a/Embedded/src/CAN/can_main.c	2009-11-30 10:44:39.044269751 +0100
+++ b/Embedded/src/CAN/can_main.c	2009-11-30 10:54:41.434355642 +0100
@@ -213,8 +213,8 @@
     spin_lock_init(&(g_can_os[can_num].int_spinlock));
     spin_lock_init(&(g_can_os[can_num].open_spinlock));
 
-    dev->dev.driver_data = (void *) &(g_can_os[can_num]);
-    if (!dev->dev.driver_data)
+    dev_set_drvdata(&dev->dev, (void *) &(g_can_os[can_num]));
+    if (!dev_get_drvdata(&dev->dev))
     {
         printk("Couldn't create CAN device %d. Exiting.\n",
             dev->device);
@@ -236,7 +236,7 @@
  *****************************************************************************/
 void can_pci_remove(struct pci_dev *dev)
 {
-    can_os_t *can_os = dev->dev.driver_data;
+    can_os_t *can_os = dev_get_drvdata(&dev->dev);
 
     iounmap(can_os->pci_remap);
     icp_can_destroy(can_os->can);
@@ -250,7 +250,7 @@
 {
     unsigned int i;
     unsigned int int_status;
-    can_os_t *can_os = dev->dev.driver_data;
+    can_os_t *can_os = dev_get_drvdata(&dev->dev);
     int err;
 
 	/* Indicate that we are suspending */
@@ -321,7 +321,7 @@
 int can_pci_resume(struct pci_dev *dev)
 {
     unsigned int i;
-    can_os_t *can_os = dev->dev.driver_data;
+    can_os_t *can_os = dev_get_drvdata(&dev->dev);
 
 	/* Restore PCI CFG space */
 	pci_restore_state(dev);