Репозитории ALT
S: | 6.30.223.271-alt15.394501.1 |
5.1: | 5.10.91.9.3-alt1.132640.5 |
Группа :: Система/Ядро и оборудование
Пакет: 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;