aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2008-06-09 03:09:54 -0700
committerLuis R. Rodriguez <lrodriguez@atheros.com>2008-06-09 03:09:54 -0700
commit1e19d61176d5070edc6e0aa40685104d37a95b57 (patch)
tree2e97a6475b5dab7891c97022edaa81308a1dd54c
parenteeb4f590247a87c42cce9331ec6100e7157d098f (diff)
downloadcompat-wireless-2.6-old-1e19d61176d5070edc6e0aa40685104d37a95b57.tar.gz
Oops, forgot to use CONFIG_ in config.mk, so we found some other
things which needed porting like the rtnl->netlink migration. This has been tested by Intel for on 11n on iwl4965. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
-rw-r--r--compat/compat.diff75
-rw-r--r--compat/mq_compat.h2
-rw-r--r--config.mk6
3 files changed, 68 insertions, 15 deletions
diff --git a/compat/compat.diff b/compat/compat.diff
index 54036f0..cd2b765 100644
--- a/compat/compat.diff
+++ b/compat/compat.diff
@@ -1069,7 +1069,7 @@
sdata->vif.type = IEEE80211_IF_TYPE_AP;
--- a/include/net/mac80211.h 2008-06-04 00:38:13.000000000 -0700
-+++ b/include/net/mac80211.h 2008-06-08 05:08:41.000000000 -0700
++++ b/include/net/mac80211.h 2008-06-09 01:25:08.000000000 -0700
@@ -293,7 +293,11 @@
s8 tx_rate_idx;
u8 antenna_sel_tx;
@@ -1082,7 +1082,7 @@
union {
struct {
-@@ -323,6 +327,15 @@
+@@ -323,6 +327,20 @@
return (struct ieee80211_tx_info *)skb->cb;
}
@@ -1094,18 +1094,71 @@
+{
+ return IEEE80211_SKB_CB(skb)->queue;
+}
++
++static inline void skb_set_queue_mapping(struct sk_buff *skb, u16 queue_mapping)
++{
++ IEEE80211_SKB_CB(skb)->queue = queue_mapping;
++}
+#endif
/**
* enum mac80211_rx_flags - receive flags
---- a/drivers/net/wireless/iwlwifi/iwl-rfkill.h 2008-06-08 07:33:03.000000000 -0700
-+++ b/drivers/net/wireless/iwlwifi/iwl-rfkill.h 2008-06-08 07:33:42.000000000 -0700
-@@ -31,8 +31,6 @@
- struct iwl_priv;
+--- a/net/mac80211/wme.c 2008-06-09 02:06:22.000000000 -0700
++++ b/net/mac80211/wme.c 2008-06-09 02:09:30.000000000 -0700
+@@ -17,6 +17,9 @@
+ #include <net/mac80211.h>
+ #include "ieee80211_i.h"
+ #include "wme.h"
++#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,22))
++#include "mq_compat.h"
++#endif
- #include <linux/rfkill.h>
--#include <linux/input.h>
--
+ /* maximum number of hardware queues we support. */
+ #define QD_MAX_QUEUES (IEEE80211_MAX_AMPDU_QUEUES + IEEE80211_MAX_QUEUES)
+@@ -328,14 +331,22 @@
- #ifdef CONFIG_IWLWIFI_RFKILL
- struct iwl_rfkill_mngr {
+
+ /* called whenever parameters are updated on existing qdisc */
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25))
++static int wme_qdiscop_tune(struct Qdisc *qd, struct rtattr *opt)
++#else
+ static int wme_qdiscop_tune(struct Qdisc *qd, struct nlattr *opt)
++#endif
+ {
+ return 0;
+ }
+
+
+ /* called during initial creation of qdisc on device */
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25))
++static int wme_qdiscop_init(struct Qdisc *qd, struct rtattr *opt)
++#else
+ static int wme_qdiscop_init(struct Qdisc *qd, struct nlattr *opt)
++#endif
+ {
+ struct ieee80211_sched_data *q = qdisc_priv(qd);
+ struct net_device *dev = qd->dev;
+@@ -456,7 +467,11 @@
+
+
+ static int wme_classop_change(struct Qdisc *qd, u32 handle, u32 parent,
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25))
++ struct rtattr **tca, unsigned long *arg)
++#else
+ struct nlattr **tca, unsigned long *arg)
++#endif
+ {
+ unsigned long cl = *arg;
+ struct ieee80211_local *local = wdev_priv(qd->dev->ieee80211_ptr);
+@@ -540,7 +555,11 @@
+
+ /* this qdisc is classful (i.e. has classes, some of which may have leaf qdiscs attached)
+ * - these are the operations on the classes */
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25))
++static struct Qdisc_class_ops class_ops =
++#else
+ static const struct Qdisc_class_ops class_ops =
++#endif
+ {
+ .graft = wme_classop_graft,
+ .leaf = wme_classop_leaf,
diff --git a/compat/mq_compat.h b/compat/mq_compat.h
index 7b33eb0..e0bb162 100644
--- a/compat/mq_compat.h
+++ b/compat/mq_compat.h
@@ -31,7 +31,7 @@ enum ieee80211_link_state_t {
IEEE80211_LINK_STATE_PENDING,
};
-/* Note: skb_get_queue_mapping() was added as of 2.6.24 in
+/* Note: skb_[get|set]_queue_mapping() was added as of 2.6.24 in
* include/linux/skbuff.h. We port this and add it into
* include/net/mac80211.h through compat.diff as this could
* be used by mac80211 drivers as well. We don't add it to
diff --git a/config.mk b/config.mk
index aeb8241..e8dc469 100644
--- a/config.mk
+++ b/config.mk
@@ -14,7 +14,7 @@ include $(KLIB_BUILD)/.config
endif
# Wireless subsystem stuff
-CONFIG_MAC80211=m
+CONFIG_MAC80211=y
# Enable QOS for 2.6.22, we'll do some hacks here to enable it.
# You will need this for HT support (802.11n).
@@ -24,9 +24,9 @@ CONFIG_MAC80211=m
ifeq ($(shell test -e $(KLIB_BUILD)/Makefile && echo yes),yes)
KERNEL_SUBLEVEL = $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
ifeq ($(shell test $(KERNEL_SUBLEVEL) -lt 23 && echo yes),yes)
-MAC80211_QOS=m
+CONFIG_MAC80211_QOS=y
else
-ifneq ($(CONFIG_NETDEVICES_MULTIQUEUE),)
+ifeq ($(CONFIG_NETDEVICES_MULTIQUEUE),)
$(warning "WARNING: You are running a kernel >= 2.6.23, you should enable CONFIG_NETDEVICES_MULTIQUEUE for 802.11n support")
endif
endif