diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 1b19022b6c7ca7a379d92f373f9d9fc86c5e4268..de7a913c487cc84c77ee7c645536cd0408bdcb68 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -308,7 +308,7 @@ static void smc_reset(struct net_device *dev)
 	 * can't handle it then there will be no recovery except for
 	 * a hard reset or power cycle
 	 */
-	if (nowait)
+	if (lp->cfg.flags & SMC91X_NOWAIT)
 		cfg |= CONFIG_NO_WAIT;
 
 	/*
@@ -2160,6 +2160,7 @@ static int smc_drv_probe(struct platform_device *pdev)
 		lp->cfg.flags |= (SMC_CAN_USE_8BIT)  ? SMC91X_USE_8BIT  : 0;
 		lp->cfg.flags |= (SMC_CAN_USE_16BIT) ? SMC91X_USE_16BIT : 0;
 		lp->cfg.flags |= (SMC_CAN_USE_32BIT) ? SMC91X_USE_32BIT : 0;
+		lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0;
 	}
 
 	ndev->dma = (unsigned char)-1;
diff --git a/include/linux/smc91x.h b/include/linux/smc91x.h
index fc7682f04d89649d46a40619fa714ec7cd947530..90434db72db2ef6720b1d281e1cf1daa4624f0a0 100644
--- a/include/linux/smc91x.h
+++ b/include/linux/smc91x.h
@@ -5,6 +5,8 @@
 #define SMC91X_USE_16BIT (1 << 1)
 #define SMC91X_USE_32BIT (1 << 2)
 
+#define SMC91X_NOWAIT		(1 << 3)
+
 struct smc91x_platdata {
 	unsigned long flags;
 };