Re: 2.6.18-mm1 -- ieee80211: Info elem: parse failed: info_element->len + 2 > left : info_element->len+2=28 left=9, id=221.

From: Denis Vlasenko
Date: Wed Sep 27 2006 - 20:16:50 EST


On Thursday 28 September 2006 00:58, James Ketrenos wrote:
> Andrew Morton wrote:
> > On Wed, 27 Sep 2006 13:47:18 -0700
> > James Ketrenos <jketreno@xxxxxxxxxxxxxxx> wrote:
> >
> >> +static int snprint_line(char *buf, size_t count,
> >> + const u8 * data, u32 len, u32 ofs)
> >> +{
> >> + int out, i, j, l;
> >> + char c;
> >> +
> >> + out = snprintf(buf, count, "%08X", ofs);
> >> +
> >> + for (l = 0, i = 0; i < 2; i++) {
> >> + out += snprintf(buf + out, count - out, " ");
> >> + for (j = 0; j < 8 && l < len; j++, l++)
> >> + out += snprintf(buf + out, count - out, "%02X ",
> >> + data[(i * 8 + j)]);
> >> + for (; j < 8; j++)
> >> + out += snprintf(buf + out, count - out, " ");
> >> + }

Dumping this will slow things down,
there will be a lot of calls to snprinf.
Consider making it a bit less slow by handling
full 16-byte lines a bit faster, like:

if (len >= 16) {
printk( "%02X %02X %02X %02X %02X %02X %02X %02X "
"%02X %02X %02X %02X %02X %02X %02X %02X ",
ptr[0], ptr[1], ptr[2], ptr[3],
ptr[4], ptr[5], ptr[6], ptr[7],
ptr[8], ptr[9], ptr[10], ptr[11],
ptr[12], ptr[13], ptr[14], ptr[15]);
num -= 16;
ptr += 16;
}

Just my 0.02 euros
--
vda
-
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/