With the previous fix, I am able to run Airlin 101 usb dongle with my home wifi gateway. However, I notice there are quite a bit errors and frame errors. I traced the errors. It mostly comes from packet too short. Apparently the packet has a size of 22 instead the expected minimum 24.
jsun: zd_mac_rx(33), len too short, 22 vs. 24 d9 51 02 f5 26 48 64 59 63 8f 9d c0 99 09 2a cc 83 13 0a 21 00 b1 # ifconfig eth0 Link encap:Ethernet HWaddr 00:11:A3:03:BC:9A inet addr:192.168.1.125 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:84 errors:53 dropped:0 overruns:7 frame:46 TX packets:24 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3713 (3.6 kiB) TX bytes:1084 (1.0 kiB) I also copied the related code segments for easier reference. Anybody know what the problem is? Cheers. Jun --------- static void zd_mac_rx(struct zd_mac *mac, struct sk_buff *skb) { int r; struct ieee80211_device *ieee = zd_mac_to_ieee80211(mac); struct ieee80211_rx_stats stats; const struct rx_status *status; static int js_flag2; if (skb->len < ZD_PLCP_HEADER_SIZE + IEEE80211_1ADDR_LEN + IEEE80211_FCS_LEN + sizeof(struct rx_status)) { ieee->stats.rx_errors++; ieee->stats.rx_length_errors++; if ((js_flag2++ % 16) == 0) { printk("jsun: zd_mac_rx(%d), len too short, %d vs. %d\n", js_flag2, skb->len, ZD_PLCP_HEADER_SIZE + IEEE80211_1ADDR_LEN + IEEE80211_FCS_LEN + sizeof(struct rx_status)); jsun_print_stream(skb->data, skb->len); } goto free_skb; } ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ Zd1211-devs mailing list - http://zd1211.wiki.sourceforge.net/ Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs