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