diff -uprN a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
--- a/drivers/block/aoe/aoecmd.c	2008-11-10 11:18:24.000000000 -0800
+++ b/drivers/block/aoe/aoecmd.c	2009-03-16 15:15:36.000000000 -0700
@@ -16,7 +16,13 @@
 
 static int aoe_deadsecs = 60 * 3;
 module_param(aoe_deadsecs, int, 0644);
-MODULE_PARM_DESC(aoe_deadsecs, "After aoe_deadsecs seconds, give up and fail dev.");
+MODULE_PARM_DESC(aoe_deadsecs, "After aoe_deadsecs seconds, give up and fail " 
+                               "dev.");
+
+static int aoe_helpsecs = 8;
+module_param(aoe_helpsecs, int, 0644);
+MODULE_PARM_DESC(aoe_helpsecs, "After aoe_helpsecs seconds, try another "
+                               "advertised mac of the same shelf and slot.");
 
 static int aoe_maxout = 16;
 module_param(aoe_maxout, int, 0644);
@@ -547,7 +553,8 @@ rexmit_timer(ulong vp)
 				break;
 			}
 
-			if (n > HELPWAIT /* see if another target can help */
+                        /* see if another target can help */
+			if (n > aoe_helpsecs 
 			&& (tt != d->targets || d->targets[1]))
 				d->htgt = tt;
 
