Re: [PATCH] Winchiphead 340/1: full baud rate and status/controlline support

From: Alan Cox
Date: Sun Jan 04 2009 - 07:17:04 EST


> + if (factor > 0xfff0) { /* Clamp */
> + factor = 0xfff0;
> + divisor = 0;
> + }
> +
> + t1 = factor;
> + for (t2 = divisor; t2 <= CH341_BAUDBASE_DIVMAX; t2++)
> + t1 >>= 3;
> + baud = CH341_BAUDBASE_FACTOR / t1;
> +

Same question as before: Can baud really become zero at this point ? Also
for that matter what guarantees that t1 cannot become zero in this
computation ?


> + if (baud && tty)
> + tty_encode_baud_rate(tty, baud, baud);

The check for B0 (hangup) was done earlier (see set_termios). So if you
can end up with a requested baud rate being turned into 0 you need to
bump it up to 1. If not you don't need the test.

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