diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 2d4c4fc1d90053fa6c04785eac027ef0a59d424c..2bbd49653aa2cf6fbc71664786e42027ff6690d0 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -852,8 +852,8 @@ static void dm9000_timeout(struct net_device *dev)
 	unsigned long flags;
 
 	/* Save previous register address */
-	reg_save = readb(db->io_addr);
 	spin_lock_irqsave(&db->lock, flags);
+	reg_save = readb(db->io_addr);
 
 	netif_stop_queue(dev);
 	dm9000_reset(db);