David Howells <dhowells@xxxxxxxxxx> wrote: > > When 'head' and 'tail' wrap around, 'log->head - log->tail' will be > > something like '4 - 252 = -248', and comparing that directly to the > > array size is wrong. Fix by casting to 'u8'. > > I think a better fix is to use CIRC_CNT() or CIRC_SPACE(). Or it would be - if CIRC_CNT() and CIRC_SPACE() didn't leave a hole in the buffer - but that's unnecessary if the head and tail counters can hold 2x the ring size or more. David