rfkill was re-implemented on 2.6.31. We port it to
older kernels with a simple hack, just rename the
module as a new one rfkill_backport, and every
exported symbol gets redefined with a _backport
postfix through compat-2.6.31.h. The changes below
are the ones we could not do through compat-2.6.31.h

Do older kernels have /dev/rfkill ? I not then we can
just keep /dev/rfkill and not /dev/rfkill_backport.

Note that 2.6.31 added netdevice notifier upon interface
dev_open() which on cfg80211 will check if checks to see
if rfkill is enabled (or if the mode of operation is not
supported) on the  cfg80211_netdev_notifier_call() and if
so deny bringing the interface up. This was added via
commit:

3b8bcfd5d31ea0fec58681d035544ace707d2536

Since older kernels will not have the notifier call
on dev_open() if we *really want* to port this we could have
mac80211's subif_open() call :

	ret = call_netdevice_notifiers(NETDEV_PRE_UP, dev);
	ret = notifier_to_errno(ret);
	if (ret)
		return ret;

This would do the policing from within mac80211.

--- a/net/rfkill/Makefile
+++ b/net/rfkill/Makefile
@@ -2,8 +2,8 @@
 # Makefile for the RF switch subsystem.
 #
 
-rfkill-y			+= core.o
-rfkill-$(CONFIG_RFKILL_INPUT)	+= input.o
-obj-$(CONFIG_RFKILL)		+= rfkill.o
+rfkill_backport-y			+= core.o
+rfkill_backport-$(CONFIG_RFKILL_BACKPORT_INPUT)	+= input.o
+obj-$(CONFIG_RFKILL_BACKPORT)		+= rfkill_backport.o
 obj-$(CONFIG_RFKILL_REGULATOR)	+= rfkill-regulator.o
 obj-$(CONFIG_RFKILL_GPIO)	+= rfkill-gpio.o
--- a/net/rfkill/input.c
+++ b/net/rfkill/input.c
@@ -233,7 +233,7 @@ static int rfkill_connect(struct input_h
 
 	handle->dev = dev;
 	handle->handler = handler;
-	handle->name = "rfkill";
+	handle->name = "rfkill_backport";
 
 	/* causes rfkill_start() to be called */
 	error = input_register_handle(handle);
--- a/net/rfkill/core.c
+++ b/net/rfkill/core.c
@@ -805,7 +805,7 @@ static int rfkill_resume(struct device *
 }
 
 static struct class rfkill_class = {
-	.name		= "rfkill",
+	.name		= "rfkill_backport",
 	.dev_release	= rfkill_release,
 	.dev_attrs	= rfkill_dev_attrs,
 	.dev_uevent	= rfkill_dev_uevent,
