diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
index 5c28ca7380ff6fa0683599178cbd17af6109e8d4..800c09e128eeb40a467ec42837960adc4d7b14d5 100644
--- a/drivers/atm/iphase.c
+++ b/drivers/atm/iphase.c
@@ -3198,6 +3198,8 @@ static int __devinit ia_init_one(struct pci_dev *pdev,
 	IF_INIT(printk("dev_id = 0x%x iadev->LineRate = %d \n", (u32)dev,
 		iadev->LineRate);)
 
+	pci_set_drvdata(pdev, dev);
+
 	ia_dev[iadev_count] = iadev;
 	_ia_dev[iadev_count] = dev;
 	iadev_count++;
@@ -3219,8 +3221,6 @@ static int __devinit ia_init_one(struct pci_dev *pdev,
 	iadev->next_board = ia_boards;  
 	ia_boards = dev;  
 
-	pci_set_drvdata(pdev, dev);
-
 	return 0;
 
 err_out_deregister_dev: