>+	/* Wait 20 msec for reset to take effect */
>+	set_current_state(TASK_UNINTERRUPTIBLE);
>+	schedule_timeout(HZ / 50);
Hm. This assumes HZ=100, doesn't it? 
>+	/* Wait for command to be cleared up to 1 sec */
>+	for (i=0; i<1000; i++) {
>+		if (!readb(&bdp->scb->scb_cmd_low))
>+			break;
>+		set_current_state(TASK_UNINTERRUPTIBLE);
>+		schedule_timeout(HZ / 1000);
>+	}
HZ = 100 -> HZ / 1000 == 0 ?
This whole patch scares me. :-)
	Regards
		Henning
-- Dipl.-Inf. (Univ.) Henning P. Schmiedehausen -- Geschaeftsfuehrer INTERMETA - Gesellschaft fuer Mehrwertdienste mbH hps@intermeta.deAm Schwabachgrund 22 Fon.: 09131 / 50654-0 info@intermeta.de D-91054 Buckenhof Fax.: 09131 / 50654-20 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/