Re: [PATCH] dz: test after postfix decrement fails indz_console_putchar()

From: Maciej W. Rozycki
Date: Wed Apr 09 2008 - 10:35:39 EST


On Wed, 9 Apr 2008, Johannes Weiner wrote:

> The intention was probably that this gets executed if the break in the
> loop (trdy == dport->port.line) is reached. Without your fix, this
> branch is also taken if the while-loop terminates with loops == -1
> because of the postfix dec.

You are right about the intention -- you cannot send a character to the
transmitter unless the intended line has been reported as selected for
transmission by the serial controller. Otherwise it will go to the wrong
line -- this is a serial multiplexer that selects transmission lines by
itself.

It used to be the other kind of a "while" loop. This is a cut & paste
bug -- I noticed the problem with the terminating condition of the loop
and correctly moved it to the end, but forgot to adjust the
decrementation.

> Your fix is correct but your changelog entry is wrong.

s/fails/incorrectly succeeds/

Maciej
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/