-This patch was taken from http://lists.berlios.de/pipermail/at76c503a-develop/2005-September/000235.html\r
-\r
---- at76c503.c\r
-+++ at76c503.c\r
-@@ -193,7 +193,7 @@ static inline void usb_set_intfdata(stru\r
- # define eth_hdr(s) (s)->mac.ethernet\r
- # define set_eth_hdr(s,p) (s)->mac.ethernet=(p)\r
- #else\r
--# define set_eth_hdr(s,p) (s)->mac.raw=(p)\r
-+# define set_eth_hdr(s,p) (s)->mac.raw=(unsigned char *)(p)\r
- #endif\r
- \r
- /* wireless extension level this source currently supports */\r
-@@ -205,7 +205,11 @@ static inline void usb_set_intfdata(stru\r
- #endif\r
- \r
- #ifndef USB_ASYNC_UNLINK\r
-+#ifdef URB_ASYNC_UNLINK\r
- #define USB_ASYNC_UNLINK URB_ASYNC_UNLINK\r
-+#else\r
-+#define USB_ASYNC_UNLINK 0\r
-+#endif\r
- #endif\r
- \r
- #ifndef FILL_BULK_URB\r
-@@ -3605,7 +3609,7 @@ static void rx_mgmt_beacon(struct at76c5\r
- if (match == NULL) {\r
- /* haven't found the bss in the list */\r
- if ((match=kmalloc(sizeof(struct bss_info), GFP_ATOMIC)) == NULL) {\r
-- dbg(DBG_BSS_TABLE, "%s: cannot kmalloc new bss info (%d byte)",\r
-+ dbg(DBG_BSS_TABLE, "%s: cannot kmalloc new bss info (%zd byte)",\r
- dev->netdev->name, sizeof(struct bss_info));\r
- goto rx_mgmt_beacon_end;\r
- }\r
-@@ -6699,7 +6703,9 @@ static const struct iw_handler_def at76c\r
- .standard = (iw_handler *) at76c503_handlers,\r
- .private = (iw_handler *) at76c503_priv_handlers,\r
- .private_args = (struct iw_priv_args *) at76c503_priv_args,\r
--#if WIRELESS_EXT > 15\r
-+#if WIRELESS_EXT > 16\r
-+ .get_wireless_stats = at76c503_get_wireless_stats,\r
-+#elif WIRELESS_EXT = 16\r
- .spy_offset = offsetof(struct at76c503, spy_data),\r
- #endif // #if WIRELESS_EXT > 15\r
- \r
-@@ -7354,7 +7360,7 @@ struct at76c503 *alloc_new_device(struct\r
- dev->pm_mode = pm_mode;\r
- dev->pm_period_us = pm_period;\r
- \r
-- strcpy(netdev->name, netdev_name);\r
-+ dev_alloc_name(netdev, netdev_name);\r
- \r
- return dev;\r
- } /* alloc_new_device */\r
-@@ -7456,7 +7462,15 @@ int init_new_device(struct at76c503 *dev\r
- netdev->open = at76c503_open;\r
- netdev->stop = at76c503_stop;\r
- netdev->get_stats = at76c503_get_stats;\r
-+\r
-+#if WIRELESS_EXT > 16\r
-+ /* Add pointers to enable iwspy support. */\r
-+ dev->wireless_data.spy_data = &dev->spy_data;\r
-+ netdev->wireless_data = &dev->wireless_data;\r
-+#else /* WIRELESS_EXT > 16 */\r
- netdev->get_wireless_stats = at76c503_get_wireless_stats;\r
-+#endif /* WIRELESS_EXT > 16 */\r
-+\r
- netdev->hard_start_xmit = at76c503_tx;\r
- netdev->tx_timeout = at76c503_tx_timeout;\r
- netdev->watchdog_timeo = 2 * HZ;\r
-@@ -7599,7 +7613,7 @@ int at76c503_do_probe(struct module *mod\r
- }\r
- \r
- dbg(DBG_DEVSTART, "firmware board %u version %u.%u.%u#%u "\r
-- "(int %x:%x, ext %x:%x)",\r
-+ "(int %x:%tx, ext %x:%tx)",\r
- dev->board_type, version>>24,(version>>16)&0xff,\r
- (version>>8)&0xff, version&0xff,\r
- dev->intfw_size, dev->intfw-fw_data,\r
-@@ -7655,7 +7669,7 @@ int at76c503_do_probe(struct module *mod\r
- dbg(DBG_DEVSTART, "cannot get firmware (ret %d) or all zeros "\r
- "- download external firmware", ret);\r
- dbg(DBG_DEVSTART, "firmware board %u version %u.%u.%u#%u "\r
-- "(int %x:%x, ext %x:%x)",\r
-+ "(int %x:%tx, ext %x:%tx)",\r
- dev->board_type, version>>24,(version>>16)&0xff,\r
- (version>>8)&0xff, version&0xff,\r
- dev->intfw_size, dev->intfw-fw_data,\r
---- at76c503.h\r
-+++ at76c503.h\r
-@@ -634,6 +634,10 @@\r
- #endif\r
- #endif\r
- \r
-+#if WIRELESS_EXT > 16\r
-+ struct iw_public_data wireless_data;\r
-+#endif /* WIRELESS_EXT > 16 */\r
-+\r
- /* These fields contain HW config provided by the device (not all of\r
- * these fields are used by all board types) */\r
- u8 mac_addr[ETH_ALEN];\r
+This patch was taken from http://lists.berlios.de/pipermail/at76c503a-develop/2005-September/000235.html
+
+--- at76c503.c
++++ at76c503.c
+@@ -193,7 +193,7 @@ static inline void usb_set_intfdata(stru
+ # define eth_hdr(s) (s)->mac.ethernet
+ # define set_eth_hdr(s,p) (s)->mac.ethernet=(p)
+ #else
+-# define set_eth_hdr(s,p) (s)->mac.raw=(p)
++# define set_eth_hdr(s,p) (s)->mac.raw=(unsigned char *)(p)
+ #endif
+
+ /* wireless extension level this source currently supports */
+@@ -205,7 +205,11 @@ static inline void usb_set_intfdata(stru
+ #endif
+
+ #ifndef USB_ASYNC_UNLINK
++#ifdef URB_ASYNC_UNLINK
+ #define USB_ASYNC_UNLINK URB_ASYNC_UNLINK
++#else
++#define USB_ASYNC_UNLINK 0
++#endif
+ #endif
+
+ #ifndef FILL_BULK_URB
+@@ -3605,7 +3609,7 @@ static void rx_mgmt_beacon(struct at76c5
+ if (match == NULL) {
+ /* haven't found the bss in the list */
+ if ((match=kmalloc(sizeof(struct bss_info), GFP_ATOMIC)) == NULL) {
+- dbg(DBG_BSS_TABLE, "%s: cannot kmalloc new bss info (%d byte)",
++ dbg(DBG_BSS_TABLE, "%s: cannot kmalloc new bss info (%zd byte)",
+ dev->netdev->name, sizeof(struct bss_info));
+ goto rx_mgmt_beacon_end;
+ }
+@@ -6699,7 +6703,9 @@ static const struct iw_handler_def at76c
+ .standard = (iw_handler *) at76c503_handlers,
+ .private = (iw_handler *) at76c503_priv_handlers,
+ .private_args = (struct iw_priv_args *) at76c503_priv_args,
+-#if WIRELESS_EXT > 15
++#if WIRELESS_EXT > 16
++ .get_wireless_stats = at76c503_get_wireless_stats,
++#elif WIRELESS_EXT = 16
+ .spy_offset = offsetof(struct at76c503, spy_data),
+ #endif // #if WIRELESS_EXT > 15
+
+@@ -7354,7 +7360,7 @@ struct at76c503 *alloc_new_device(struct
+ dev->pm_mode = pm_mode;
+ dev->pm_period_us = pm_period;
+
+- strcpy(netdev->name, netdev_name);
++ dev_alloc_name(netdev, netdev_name);
+
+ return dev;
+ } /* alloc_new_device */
+@@ -7456,7 +7462,15 @@ int init_new_device(struct at76c503 *dev
+ netdev->open = at76c503_open;
+ netdev->stop = at76c503_stop;
+ netdev->get_stats = at76c503_get_stats;
++
++#if WIRELESS_EXT > 16
++ /* Add pointers to enable iwspy support. */
++ dev->wireless_data.spy_data = &dev->spy_data;
++ netdev->wireless_data = &dev->wireless_data;
++#else /* WIRELESS_EXT > 16 */
+ netdev->get_wireless_stats = at76c503_get_wireless_stats;
++#endif /* WIRELESS_EXT > 16 */
++
+ netdev->hard_start_xmit = at76c503_tx;
+ netdev->tx_timeout = at76c503_tx_timeout;
+ netdev->watchdog_timeo = 2 * HZ;
+@@ -7599,7 +7613,7 @@ int at76c503_do_probe(struct module *mod
+ }
+
+ dbg(DBG_DEVSTART, "firmware board %u version %u.%u.%u#%u "
+- "(int %x:%x, ext %x:%x)",
++ "(int %x:%tx, ext %x:%tx)",
+ dev->board_type, version>>24,(version>>16)&0xff,
+ (version>>8)&0xff, version&0xff,
+ dev->intfw_size, dev->intfw-fw_data,
+@@ -7655,7 +7669,7 @@ int at76c503_do_probe(struct module *mod
+ dbg(DBG_DEVSTART, "cannot get firmware (ret %d) or all zeros "
+ "- download external firmware", ret);
+ dbg(DBG_DEVSTART, "firmware board %u version %u.%u.%u#%u "
+- "(int %x:%x, ext %x:%x)",
++ "(int %x:%tx, ext %x:%tx)",
+ dev->board_type, version>>24,(version>>16)&0xff,
+ (version>>8)&0xff, version&0xff,
+ dev->intfw_size, dev->intfw-fw_data,
+--- at76c503.h
++++ at76c503.h
+@@ -634,6 +634,10 @@
+ #endif
+ #endif
+
++#if WIRELESS_EXT > 16
++ struct iw_public_data wireless_data;
++#endif /* WIRELESS_EXT > 16 */
++
+ /* These fields contain HW config provided by the device (not all of
+ * these fields are used by all board types) */
+ u8 mac_addr[ETH_ALEN];