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.
+        */
+
        if (bcm->ieee->iw_mode == IW_MODE_MONITOR) {
                bcm430x_rx_packet(bcm, skb, &stats);
                return 0;
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
http://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to