Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37048062
en ru br
Репозитории ALT
S:6.30.223.271-alt15.394501.1
5.1: 5.10.91.9.3-alt1.132640.5
www.altlinux.org/Changes

Группа :: Система/Ядро и оборудование
Пакет: kernel-modules-bcmwl-un-def

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: 03-2.6.29.patch
Скачать


Author: Alexander Feldman <alex@llama.gs>
Description: Patch to compile with kernel 2.6.29.
diff -Naurp broadcom-sta.orig/i386/src/wl/sys/wl_iw.c broadcom-sta/i386/src/wl/sys/wl_iw.c
--- broadcom-sta.orig/i386/src/wl/sys/wl_iw.c	2009-05-03 09:16:11.000000000 +0000
+++ broadcom-sta/i386/src/wl/sys/wl_iw.c	2009-05-17 14:46:01.000000000 +0000
@@ -610,7 +610,11 @@ wl_iw_set_spy(
 	char *extra
 )
 {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wl_iw_t *iw = netdev_priv(dev);
+#else
 	wl_iw_t *iw = dev->priv;
+#endif
 	struct sockaddr *addr = (struct sockaddr *) extra;
 	int i;
 
@@ -635,7 +639,11 @@ wl_iw_get_spy(
 	char *extra
 )
 {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wl_iw_t *iw = netdev_priv(dev);
+#else
 	wl_iw_t *iw = dev->priv;
+#endif
 	struct sockaddr *addr = (struct sockaddr *) extra;
 	struct iw_quality *qual = (struct iw_quality *) &addr[iw->spy_num];
 	int i;
@@ -1110,7 +1118,11 @@ wl_iw_set_nick(
 	char *extra
 )
 {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wl_iw_t *iw = netdev_priv(dev);
+#else
 	wl_iw_t *iw = dev->priv;
+#endif
 
 	WL_TRACE(("%s: SIOCSIWNICKN\n", dev->name));
 
@@ -1134,7 +1146,11 @@ wl_iw_get_nick(
 	char *extra
 )
 {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wl_iw_t *iw = netdev_priv(dev);
+#else
 	wl_iw_t *iw = dev->priv;
+#endif
 
 	WL_TRACE(("%s: SIOCGIWNICKN\n", dev->name));
 
@@ -1790,7 +1806,11 @@ wl_iw_set_wpaauth(
 	int paramid;
 	int paramval;
 	int val = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wl_iw_t *iw = netdev_priv(dev);
+#else
 	wl_iw_t *iw = dev->priv;
+#endif
 
 	WL_TRACE(("%s: SIOCSIWAUTH\n", dev->name));
 
@@ -1921,7 +1941,11 @@ wl_iw_get_wpaauth(
 	int paramid;
 	int paramval = 0;
 	int val;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wl_iw_t *iw = netdev_priv(dev);
+#else
 	wl_iw_t *iw = dev->priv;
+#endif
 
 	WL_TRACE(("%s: SIOCGIWAUTH\n", dev->name));
 
diff -Naurp broadcom-sta.orig/i386/src/wl/sys/wl_linux.c broadcom-sta/i386/src/wl/sys/wl_linux.c
--- broadcom-sta.orig/i386/src/wl/sys/wl_linux.c	2009-05-03 09:16:11.000000000 +0000
+++ broadcom-sta/i386/src/wl/sys/wl_linux.c	2009-05-17 14:46:01.000000000 +0000
@@ -53,6 +53,9 @@
 #include <linux/pci_ids.h>
 #define WLC_MAXBSSCFG		1	
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+#include <net/lib80211.h>
+#endif
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
 #include <net/ieee80211.h>
 #endif
@@ -130,7 +133,11 @@ struct ieee80211_tkip_data {
 	u8 rx_hdr[16], tx_hdr[16];
 };
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+#define	WL_DEV_IF(dev)		((wl_if_t*)netdev_priv(dev))
+#else
 #define	WL_DEV_IF(dev)		((wl_if_t*)(dev)->priv)			
+#endif
 #define	WL_INFO(dev)		((wl_info_t*)(WL_DEV_IF(dev)->wl))	
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
@@ -282,6 +289,9 @@ wl_attach(uint16 vendor, uint16 device, 
 	dev = wlif->dev;
 	wl->dev = dev;
 	wl_if_setup(dev);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wlif = netdev_priv(dev);
+#endif
 
 	dev->base_addr = regs;
 
@@ -359,10 +369,20 @@ wl_attach(uint16 vendor, uint16 device, 
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wl->tkipmodops = lib80211_get_crypto_ops("TKIP");
+#else
 	wl->tkipmodops = ieee80211_get_crypto_ops("TKIP");
+#endif
 	if (wl->tkipmodops == NULL) {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+		request_module("lib80211");
+		request_module("lib80211_crypt_tkip");
+		wl->tkipmodops = lib80211_get_crypto_ops("TKIP");
+#else
 		request_module("ieee80211_crypt_tkip");
 		wl->tkipmodops = ieee80211_get_crypto_ops("TKIP");
+#endif
 	}
 #endif 
 #ifdef CONFIG_WIRELESS_EXT
@@ -666,7 +686,11 @@ wl_free(wl_info_t *wl)
 	}
 
 	if (wl->monitor) {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+		wl_free_if(wl, (wl_if_t *)netdev_priv(wl->monitor));
+#else
 		wl_free_if(wl, (wl_if_t *)(wl->monitor->priv));
+#endif
 		wl->monitor = NULL;
 	}
 
@@ -833,7 +857,10 @@ wl_alloc_if(wl_info_t *wl, int iftype, u
 	strncpy(dev->name, name, IFNAMSIZ);
 #else
 
-	dev = alloc_netdev(0, name, ether_setup);
+	dev = alloc_netdev(sizeof(wl_if_t), name, ether_setup);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	wlif = netdev_priv(dev);
+#endif
 	if (!dev) {
 		MFREE(wl->osh, wlif, sizeof(wl_if_t));
 		WL_ERROR(("wl%d: wl_alloc_if: out of memory, alloc_netdev\n",
@@ -847,7 +874,9 @@ wl_alloc_if(wl_info_t *wl, int iftype, u
 	wlif->wl = wl;
 	wlif->wlcif = wlcif;
 	wlif->subunit = subunit;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
 	dev->priv = wlif;
+#endif
 
 	if (iftype != WL_IFTYPE_MON && wl->dev && netif_queue_stopped(wl->dev))
 		netif_stop_queue(dev);
diff -Naurp broadcom-sta.orig/i386/src/wl/sys/wl_linux.h broadcom-sta/i386/src/wl/sys/wl_linux.h
--- broadcom-sta.orig/i386/src/wl/sys/wl_linux.h	2009-05-03 09:16:11.000000000 +0000
+++ broadcom-sta/i386/src/wl/sys/wl_linux.h	2009-05-17 14:46:01.000000000 +0000
@@ -85,10 +85,16 @@ struct wl_info {
 	bool		resched;	
 	uint32		pci_psstate[16];	
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+	struct lib80211_crypto_ops *tkipmodops;
+	struct lib80211_tkip_data  *tkip_ucast_data;
+	struct lib80211_tkip_data  *tkip_bcast_data;
+#else
 	struct ieee80211_crypto_ops *tkipmodops;	
 	struct ieee80211_tkip_data  *tkip_ucast_data;
 	struct ieee80211_tkip_data  *tkip_bcast_data;
 #endif
+#endif
 
 	uint	stats_id;		
 
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin