Seems to work in master mode on x86_64 2.6.23.1

-Bryan

--- zd1211-r85/src/zd1205.h.orig        2007-11-11 21:04:33.000000000 -0800
+++ zd1211-r85/src/zd1205.h     2007-11-11 21:04:43.000000000 -0800
@@ -613,7 +613,7 @@
 {
         struct net_device_stats net_stats;
 /* ath_desc: added iw_get_stats */
-#ifdef CONFIG_NET_WIRELESS
+#ifdef CONFIG_WIRELESS_EXT
         struct iw_statistics iw_stats;
 #endif
         unsigned long tx_late_col;
--- zd1211-r85/src/zd1211.c.orig        2007-02-24 15:31:17.000000000 -0800
+++ zd1211-r85/src/zd1211.c     2007-11-11 21:05:06.000000000 -0800
@@ -1801,7 +1801,7 @@
                           extern struct iw_handler_def p80211wext_handler_def;
 
 /* ath_desc: added iw_get_stats */
-#ifdef CONFIG_NET_WIRELESS
+#ifdef CONFIG_WIRELESS_EXT
 extern struct iw_statistics *zd1205wext_iw_get_stats(struct net_device *);
 #endif
 
--- zd1211-r85/src/zddebug.c.orig       2007-02-24 15:31:17.000000000 -0800
+++ zd1211-r85/src/zddebug.c    2007-11-11 21:30:37.000000000 -0800
@@ -527,12 +527,15 @@
                         macp->rxOffset = zdreq->value;
                 break;
 
+/* 1. security risk; 2. 32-bit only. */
+#if 0 
         case ZD_IOCTL_MEM_DUMP:
                 zd1205_dump_data("mem", (u8 *)zdreq->addr, zdreq->value);
                 //memcpy(&zdreq->data[0], (u8 *)zdreq->addr, zdreq->value);
                 //if (copy_to_user(ifr->ifr_data, &zdreq, sizeof (zdreq)))
                 //return -EFAULT;
                 break;
+#endif
 
         case ZD_IOCTL_RATE:
                 /* Check for the validation of vale */
--- zd1211-r85/src/zd1205.c.orig        2007-02-24 15:31:17.000000000 -0800
+++ zd1211-r85/src/zd1205.c     2007-11-11 22:16:15.000000000 -0800
@@ -4156,10 +4156,11 @@
                         zd_ReceivePkt(pHdr, hdrLen, pBody, bodyLen, (void 
*)skb, EthHdr, &macp->rxInfo);
                         macp->bDataTrafficLight = 1;
                 } else {
-                        skb->tail = skb->data = pHdr;
+                        skb->data = pHdr;
+                        skb_reset_tail_pointer(skb);
                         /* ath_desc: fix monitor mode frame length */
                         skb_put(skb, data_sz - PLCP_HEADER - EXTRA_INFO_LEN - 
CRC32_LEN);
-                        skb->mac.raw = skb->data;
+                        skb_reset_mac_header(skb);
                         skb->pkt_type = PACKET_OTHERHOST;
                         skb->protocol = __constant_htons(ETH_P_802_2);
                         skb->dev = dev;
@@ -9412,12 +9413,13 @@
                 if (skb) {
                         skb->dev = g_dev;
                         skb_reserve(skb, 2);
-                        eth_copy_and_sum(skb, pData, length, 0);
+                        memcpy(skb->data, pData, length);
 
                         skb_put(skb, length);
                 }
         } else {
-                skb->tail = skb->data = pData;
+                skb->data = pData;
+                skb_reset_tail_pointer(skb);
                 skb_put(skb, length);
         }
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Zd1211-devs mailing list - http://zd1211.wiki.sourceforge.net/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Reply via email to