CONFIG_MAC80211 is required for skb structures on older kernels
authorVitja Makarov <vitja.makarov@gmail.com>
Fri, 13 Feb 2009 22:39:00 +0000 (14:39 -0800)
committerLuis R. Rodriguez <lrodriguez@atheros.com>
Fri, 13 Feb 2009 22:43:58 +0000 (14:43 -0800)
Without this you won't get skb->do_not_encrypt on 2.6.27 and
skb->requeue on 2.6.28. We bail out if you don't have this
enabled otherwise your kernel will crash.

Signed-off-by: Vitja Makarov <vitja.makarov@gmail.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
config.mk

index 38ccd388a84413c55d032548de2a52b36f78d824..4a625f2578718084bafefe766261c22b725e515c 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -16,8 +16,6 @@ endif
 ifeq ($(CONFIG_MAC80211),y)
 $(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular")
 endif
-# Wireless subsystem stuff
-CONFIG_MAC80211=m
 
 # We will warn when you don't have MQ support or NET_SCHED enabled.
 #
@@ -44,6 +42,21 @@ $(error "ERROR: Your 2.6.27 kernel has CONFIG_DYNAMIC_FTRACE, please upgrade you
 endif
 endif
 
+# This is because with CONFIG_MAC80211 include/linux/skbuff.h will
+# enable on 2.6.27 a new attribute:
+#
+# skb->do_not_encrypt
+#
+# and on 2.6.28 another new attribute:
+#
+# skb->requeue
+#
+ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 27 && echo yes),yes)
+ifeq ($(CONFIG_MAC80211),)
+$(error "ERROR: Your >=2.6.27 kernel has CONFIG_MAC80211 disabled, you should have it CONFIG_MAC80211=m if you want to use this thing.")
+endif
+endif
+
 ifneq ($(KERNELRELEASE),) # This prevents a warning
 
 ifeq ($(CONFIG_NET_SCHED),)
@@ -59,6 +72,8 @@ endif
 endif # build check
 endif # kernel Makefile check
 
+# Wireless subsystem stuff
+CONFIG_MAC80211=m
 
 # choose between pid and minstrel as default rate control algorithm
 CONFIG_MAC80211_RC_DEFAULT=minstrel