Re: [PATCH/RFC v5 4/5]: core: Add dump device to call on oopses and panics

Artem Bityutskiy
2009-11-30T07:28:48Z

On Thu, 2009-11-26 at 10:36 +0100, Jörn Engel wrote:
> Just stumbled across this patch.
>
> On Tue, 13 October 2009 15:22:35 +0200, Simon Kagstrom wrote:
> > +void dump_kmsg(int panic)
> > +{
> > + unsigned long len = ACCESS_ONCE(log_end);
> > + struct dump_device *dump;
> > + const char *s1, *s2;
> > + unsigned long l1, l2;
> > +
> > + s1 = "";
> > + l1 = 0;
> > + s2 = log_buf;
> > + l2 = len;
> > +
> > + /* Have we rotated around the circular buffer? */
> > + if (len > log_buf_len) {
>
> I believe this bit is wrong. log_end is an unsigned int, so it can
> wrap relatively quickly. If log_end just wrapped to 0 and dump_kmsg is
> called, the amount of printk buffer stored appears to be 0 as well.

To me it looks like 'log_end' is not supposed to wrap. What makes you
think it can? In which cases it can?

--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)