[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87zli693i0.fsf@qurzaw.linpro.no>
Date: Sun, 04 Jan 2009 22:15:51 +0100
From: Tollef Fog Heen <tfheen@....no>
To: Alan Cox <alan@...rguk.ukuu.org.uk>
Cc: linux-kernel@...r.kernel.org, werner@...nelius-consult.de,
frank@...gswood-consulting.co.uk
Subject: Re: [PATCH] Winchiphead 340/1: full baud rate and status/control line support
]] Alan Cox
| > + 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 ?
Nothing, that code is completely wrong. I've rewritten it now. Thanks
for explaining.
| > + 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.
Indeed, fixed as well. New patch incoming in a few minutes.
I've also added the mutex protecting set_handshake, but I feel less
confident about whether that's the right approach, so feedback there is
also appreciated.
--
Tollef Fog Heen
UNIX is user friendly, it's just picky about who its friends are
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists