Re: IPMI driver version 19 release

Jeff Garzik (jgarzik@pobox.com)
Thu, 3 Apr 2003 11:37:00 -0500


On Thu, Apr 03, 2003 at 10:24:02AM -0600, Corey Minyard wrote:
> @@ -563,8 +576,9 @@
> spin_lock_irqsave(&(kcs_info->kcs_lock), flags);
> result = kcs_event_handler(kcs_info, 0);
> while (result != KCS_SM_IDLE) {
> - udelay(500);
> - result = kcs_event_handler(kcs_info, 500);
> + udelay(KCS_SHORT_TIMEOUT_USEC);
> + result = kcs_event_handler(kcs_info,
> + KCS_SHORT_TIMEOUT_USEC);
> }
> spin_unlock_irqrestore(&(kcs_info->kcs_lock), flags);
> return;

Do you really want to udelay this long with interrupts disabled?
Certainly comments in kcs_event[_handler] indicate you're aware of the
issue, but the code does not belie this fact :)

Not only is the udelay itself "long" relatively speaking, but it's in a
loop. Which also calls a function that contains a loop that is
potentially infinite is hardware is being wonky.

Jeff

-
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/