-------------- Original message ----------------------
From: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
> On Sat, 2005-11-19 at 18:16 +0000, [EMAIL PROTECTED] wrote:
> > Previously I had reported that recent revisions were causing my computer to
> freeze when using kernel 2.6.15-gitX. In fact, it freezes under kernel 2.6.14
> as
> well. By using the svn 'export' command, I was able to locate the patch that
> causes the problem, which was part of rev 661 and listed below. From an added
> printk statement, I know that the branch that skips just the PLCP header is
> the
> one taken. The freeze happens a little bit later - thus the actual cause is
> not
> yet known. I am continuing to try to find the problem; however, if anyone has
> any suggestions, I would appreciate any help I can get. Once the problem
> happens, I have to turn the power off to get the machine restarted.
> Fortunately,
> I use a Reiser file system and do not have to endure a lengthy fsck. Thanks,
>
> Larry
> >
> >
> > diff -au ./bcm430x_main.c rev661/./bcm430x_main.c
> > --- ./bcm430x_main.c 2005-11-12 07:41:07.000000000 -0600
> > +++ rev661/./bcm430x_main.c 2005-11-12 08:38:59.000000000 -0600
> > @@ -3549,6 +3549,17 @@
> > memset(&stats, 0, sizeof(stats));
> > //TODO: Interpret the rxhdr and construct the stats.
> >
> > + if (rxhdr->flags2 & BCM430x_RXHDR_FLAGS2_TYPE2FRAME) {
> > + /* Skip two unknown bytes and the PLCP header. */
> > + skb_pull(skb, 2 + sizeof(struct bcm430x_plcp_hdr6));
> > + } else {
> > + /* Skip the PLCP header. */
> > + skb_pull(skb, sizeof(struct bcm430x_plcp_hdr6));
> > + }
> > + /* The SKB contains the PAYLOAD (wireless header + data)
> > + * at this point. The FCS at the end is stripped.
> > + */
> > +
>
> Maybe we need to check for short packets ?
>
> Ben.
If you mean short preamble, I don't think so. When I dump the RX data, I can
see the signal byte (0x0a) that labels the first byte of the PLCP header. It is
the first byte of the buffer. I can also see the beacon code (0x80) as the
first byte of the MAC header as the 7th byte of the buffer - thus the PLCP
header length is 6.
The only thing I see that I don't understand is that the 0x40 bit is always set
in rxhdr->flags1. Sometimes the 0x02 bit is also set. Neither of these bits has
a symbolic value.
One other question: Where is rxhdr->flags2 saved? I didn't see anyplace where
this location is loaded, only where it is tested!
Larry
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
http://lists.berlios.de/mailman/listinfo/bcm43xx-dev