Search Linux Wireless

[PATCH 2/2] [compat-2.6] Update compat.diff

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



__dev_addr_sync and __dev_addr_unsync are not exported in older kernels.

Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
---
 compat/compat.c    |  112 +++++++++++++++++++++++++++++++
 compat/compat.diff |  188 +++++++++++++++++++++++++---------------------------
 config.mk          |    3 +-
 3 files changed, 204 insertions(+), 99 deletions(-)

diff --git a/compat/compat.c b/compat/compat.c
index 585c070..5c4ccdc 100644
--- a/compat/compat.c
+++ b/compat/compat.c
@@ -37,3 +37,115 @@ EXPORT_SYMBOL_GPL(pci_ioremap_bar);
 
 #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) */
 
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32))
+
+#include <linux/netdevice.h>
+
+int __dev_addr_add(struct dev_addr_list **list, int *count,
+		   void *addr, int alen, int glbl)
+{
+	struct dev_addr_list *da;
+
+	for (da = *list; da != NULL; da = da->next) {
+		if (memcmp(da->da_addr, addr, da->da_addrlen) == 0 &&
+		    da->da_addrlen == alen) {
+			if (glbl) {
+				int old_glbl = da->da_gusers;
+				da->da_gusers = 1;
+				if (old_glbl)
+					return 0;
+			}
+			da->da_users++;
+			return 0;
+		}
+	}
+
+	da = kzalloc(sizeof(*da), GFP_ATOMIC);
+	if (da == NULL)
+		return -ENOMEM;
+	memcpy(da->da_addr, addr, alen);
+	da->da_addrlen = alen;
+	da->da_users = 1;
+	da->da_gusers = glbl ? 1 : 0;
+	da->next = *list;
+	*list = da;
+	(*count)++;
+	return 0;
+}
+
+int __dev_addr_delete(struct dev_addr_list **list, int *count,
+		      void *addr, int alen, int glbl)
+{
+	struct dev_addr_list *da;
+
+	for (; (da = *list) != NULL; list = &da->next) {
+		if (memcmp(da->da_addr, addr, da->da_addrlen) == 0 &&
+		    alen == da->da_addrlen) {
+			if (glbl) {
+				int old_glbl = da->da_gusers;
+				da->da_gusers = 0;
+				if (old_glbl == 0)
+					break;
+			}
+			if (--da->da_users)
+				return 0;
+
+			*list = da->next;
+			kfree(da);
+			(*count)--;
+			return 0;
+		}
+	}
+	return -ENOENT;
+}
+
+int __dev_addr_sync(struct dev_addr_list **to, int *to_count,
+		    struct dev_addr_list **from, int *from_count)
+{
+	struct dev_addr_list *da, *next;
+	int err = 0;
+
+	da = *from;
+	while (da != NULL) {
+		next = da->next;
+		if (!da->da_synced) {
+			err = __dev_addr_add(to, to_count,
+					     da->da_addr, da->da_addrlen, 0);
+			if (err < 0)
+				break;
+			da->da_synced = 1;
+			da->da_users++;
+		} else if (da->da_users == 1) {
+			__dev_addr_delete(to, to_count,
+					  da->da_addr, da->da_addrlen, 0);
+			__dev_addr_delete(from, from_count,
+					  da->da_addr, da->da_addrlen, 0);
+		}
+		da = next;
+	}
+	return err;
+}
+EXPORT_SYMBOL_GPL(__dev_addr_sync);
+
+void __dev_addr_unsync(struct dev_addr_list **to, int *to_count,
+		       struct dev_addr_list **from, int *from_count)
+{
+	struct dev_addr_list *da, *next;
+
+	da = *from;
+	while (da != NULL) {
+		next = da->next;
+		if (da->da_synced) {
+			__dev_addr_delete(to, to_count,
+					  da->da_addr, da->da_addrlen, 0);
+			da->da_synced = 0;
+			__dev_addr_delete(from, from_count,
+					  da->da_addr, da->da_addrlen, 0);
+		}
+		da = next;
+	}
+}
+EXPORT_SYMBOL_GPL(__dev_addr_unsync);
+
+#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)) */
+
diff --git a/compat/compat.diff b/compat/compat.diff
index fe99dec..cff2479 100644
--- a/compat/compat.diff
+++ b/compat/compat.diff
@@ -107,7 +107,7 @@
  	if (unlikely(retval < 0)) {
 --- a/drivers/net/usb/usbnet.c
 +++ b/drivers/net/usb/usbnet.c
-@@ -1106,6 +1106,7 @@ void usbnet_disconnect (struct usb_interface *intf)
+@@ -1120,6 +1120,7 @@ void usbnet_disconnect (struct usb_interface *intf)
  }
  EXPORT_SYMBOL_GPL(usbnet_disconnect);
  
@@ -115,7 +115,7 @@
  static const struct net_device_ops usbnet_netdev_ops = {
  	.ndo_open		= usbnet_open,
  	.ndo_stop		= usbnet_stop,
-@@ -1115,6 +1116,7 @@ static const struct net_device_ops usbnet_netdev_ops = {
+@@ -1129,6 +1130,7 @@ static const struct net_device_ops usbnet_netdev_ops = {
  	.ndo_set_mac_address 	= eth_mac_addr,
  	.ndo_validate_addr	= eth_validate_addr,
  };
@@ -123,7 +123,7 @@
  
  /*-------------------------------------------------------------------------*/
  
-@@ -1184,8 +1186,10 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
+@@ -1198,8 +1200,10 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
  		net->features |= NETIF_F_HIGHDMA;
  #endif
  
@@ -440,9 +440,9 @@
  	rtap_dev->ml_priv = priv;
  	SET_NETDEV_DEV(rtap_dev, priv->dev->dev.parent);
  
---- a/drivers/net/wireless/mac80211_hwsim.c	2009-05-18 14:35:29.000000000 -0700
-+++ b/drivers/net/wireless/mac80211_hwsim.c	2009-05-18 14:35:29.000000000 -0700
-@@ -733,16 +733,22 @@
+--- a/drivers/net/wireless/mac80211_hwsim.c
++++ b/drivers/net/wireless/mac80211_hwsim.c
+@@ -734,16 +734,22 @@ static struct device_driver mac80211_hwsim_driver = {
  	.name = "mac80211_hwsim"
  };
  
@@ -465,9 +465,9 @@
  	dev->destructor = free_netdev;
  	ether_setup(dev);
  	dev->tx_queue_len = 0;
---- a/drivers/net/wireless/rndis_wlan.c	2009-04-28 15:35:05.000000000 -0700
-+++ b/drivers/net/wireless/rndis_wlan.c	2009-04-28 15:35:06.000000000 -0700
-@@ -2362,6 +2362,7 @@
+--- a/drivers/net/wireless/rndis_wlan.c
++++ b/drivers/net/wireless/rndis_wlan.c
+@@ -2335,6 +2335,7 @@ static int bcm4320b_early_init(struct usbnet *usbdev)
  	return 0;
  }
  
@@ -475,7 +475,7 @@
  /* same as rndis_netdev_ops but with local multicast handler */
  static const struct net_device_ops rndis_wlan_netdev_ops = {
  	.ndo_open		= usbnet_open,
-@@ -2372,6 +2373,7 @@
+@@ -2345,6 +2346,7 @@ static const struct net_device_ops rndis_wlan_netdev_ops = {
  	.ndo_validate_addr	= eth_validate_addr,
  	.ndo_set_multicast_list	= rndis_wlan_set_multicast_list,
  };
@@ -483,7 +483,7 @@
  
  
  static int rndis_wlan_bind(struct usbnet *usbdev, struct usb_interface *intf)
-@@ -2422,7 +2424,11 @@
+@@ -2395,7 +2397,11 @@ static int rndis_wlan_bind(struct usbnet *usbdev, struct usb_interface *intf)
  	 * rndis_host wants to avoid all OID as much as possible
  	 * so do promisc/multicast handling in rndis_wlan.
  	 */
@@ -495,8 +495,8 @@
  
  	tmp = RNDIS_PACKET_TYPE_DIRECTED | RNDIS_PACKET_TYPE_BROADCAST;
  	retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp,
---- a/drivers/net/wireless/wl12xx/main.c
-+++ b/drivers/net/wireless/wl12xx/main.c
+--- a/drivers/net/wireless/wl12xx/wl1251_main.c
++++ b/drivers/net/wireless/wl12xx/wl1251_main.c
 @@ -26,6 +26,9 @@
  #include <linux/firmware.h>
  #include <linux/delay.h>
@@ -507,8 +507,8 @@
  #include <linux/spi/spi.h>
  #include <linux/crc32.h>
  #include <linux/etherdevice.h>
---- a/drivers/net/wireless/wl12xx/spi.c
-+++ b/drivers/net/wireless/wl12xx/spi.c
+--- a/drivers/net/wireless/wl12xx/wl1251_spi.c
++++ b/drivers/net/wireless/wl12xx/wl1251_spi.c
 @@ -23,6 +23,9 @@
  
  #include <linux/module.h>
@@ -518,7 +518,7 @@
 +#endif
  #include <linux/spi/spi.h>
  
- #include "wl12xx.h"
+ #include "wl1251.h"
 --- a/include/linux/rfkill_backport.h
 +++ b/include/linux/rfkill_backport.h
 @@ -134,7 +134,7 @@ struct rfkill_ops {
@@ -539,7 +539,7 @@
  					  struct device *parent,
  					  const enum rfkill_type type,
  					  const struct rfkill_ops *ops,
-@@ -166,7 +166,7 @@ struct rfkill * __must_check rfkill_alloc(const char *name,
+@@ -167,7 +167,7 @@ struct rfkill * __must_check rfkill_alloc(const char *name,
   * If the hardware blocked state is not set before registration,
   * it is assumed to be unblocked.
   */
@@ -548,7 +548,7 @@
  
  /**
   * rfkill_pause_polling(struct rfkill *rfkill)
-@@ -175,7 +175,7 @@ int __must_check rfkill_register(struct rfkill *rfkill);
+@@ -176,7 +176,7 @@ int __must_check rfkill_register(struct rfkill *rfkill);
   * NOTE: not necessary for suspend/resume -- in that case the
   * core stops polling anyway
   */
@@ -557,7 +557,7 @@
  
  /**
   * rfkill_resume_polling(struct rfkill *rfkill)
-@@ -184,7 +184,7 @@ void rfkill_pause_polling(struct rfkill *rfkill);
+@@ -185,7 +185,7 @@ void rfkill_pause_polling(struct rfkill *rfkill);
   * NOTE: not necessary for suspend/resume -- in that case the
   * core stops polling anyway
   */
@@ -566,7 +566,7 @@
  
  
  /**
-@@ -195,7 +195,7 @@ void rfkill_resume_polling(struct rfkill *rfkill);
+@@ -196,7 +196,7 @@ void rfkill_resume_polling(struct rfkill *rfkill);
   * teardown to destroy rfkill structure. Until it returns, the driver
   * needs to be able to service method calls.
   */
@@ -575,7 +575,7 @@
  
  /**
   * rfkill_destroy - free rfkill structure
-@@ -203,7 +203,7 @@ void rfkill_unregister(struct rfkill *rfkill);
+@@ -204,7 +204,7 @@ void rfkill_unregister(struct rfkill *rfkill);
   *
   * Destroys the rfkill structure.
   */
@@ -584,7 +584,7 @@
  
  /**
   * rfkill_set_hw_state - Set the internal rfkill hardware block state
-@@ -224,7 +224,7 @@ void rfkill_destroy(struct rfkill *rfkill);
+@@ -225,7 +225,7 @@ void rfkill_destroy(struct rfkill *rfkill);
   * should be blocked) so that drivers need not keep track of the soft
   * block state -- which they might not be able to.
   */
@@ -593,7 +593,7 @@
  
  /**
   * rfkill_set_sw_state - Set the internal rfkill software block state
-@@ -244,7 +244,7 @@ bool __must_check rfkill_set_hw_state(struct rfkill *rfkill, bool blocked);
+@@ -247,7 +247,7 @@ bool __must_check rfkill_set_hw_state(struct rfkill *rfkill, bool blocked);
   * The function returns the combined block state (true if transmitter
   * should be blocked).
   */
@@ -601,8 +601,17 @@
 +bool backport_rfkill_set_sw_state(struct rfkill *rfkill, bool blocked);
  
  /**
+  * rfkill_init_sw_state - Initialize persistent software block state
+@@ -263,7 +263,7 @@ bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked);
+  * can be read by userspace.  Persistent devices are expected to preserve
+  * preserve their own state when suspended.
+  */
+-void rfkill_init_sw_state(struct rfkill *rfkill, bool blocked);
++void backport_rfkill_init_sw_state(struct rfkill *rfkill, bool blocked);
+ 
+ /**
   * rfkill_set_states - Set the internal rfkill block states
-@@ -255,17 +255,17 @@ bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked);
+@@ -274,17 +274,17 @@ void rfkill_init_sw_state(struct rfkill *rfkill, bool blocked);
   * This function can be called in any context, even from within rfkill
   * callbacks.
   */
@@ -624,7 +633,7 @@
  	     struct device *parent,
  	     const enum rfkill_type type,
  	     const struct rfkill_ops *ops,
-@@ -274,57 +274,57 @@ rfkill_alloc(const char *name,
+@@ -293,18 +293,18 @@ rfkill_alloc(const char *name,
  	return ERR_PTR(-ENODEV);
  }
  
@@ -646,8 +655,7 @@
  {
  }
  
--static inline void rfkill_unregister(struct rfkill *rfkill)
-+static inline void backport_rfkill_unregister(struct rfkill *rfkill)
+@@ -312,42 +312,42 @@ static inline void rfkill_unregister(struct rfkill *rfkill)
  {
  }
  
@@ -668,6 +676,11 @@
  	return blocked;
  }
  
+-static inline void rfkill_init_sw_state(struct rfkill *rfkill, bool blocked)
++static inline void backport_rfkill_init_sw_state(struct rfkill *rfkill, bool blocked)
+ {
+ }
+ 
 -static inline void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
 +static inline void backport_rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
  {
@@ -694,7 +707,7 @@
  
  /**
   * rfkill_set_led_trigger_name -- set the LED trigger name
-@@ -335,15 +335,15 @@ const char *rfkill_get_led_trigger_name(struct rfkill *rfkill);
+@@ -358,15 +358,15 @@ const char *rfkill_get_led_trigger_name(struct rfkill *rfkill);
   * trigger that rfkill creates. It is optional, but if called
   * must be called before rfkill_register() to be effective.
   */
@@ -723,9 +736,9 @@
  
  
  /*
---- a/net/mac80211/iface.c	2009-04-28 15:34:50.000000000 -0700
-+++ b/net/mac80211/iface.c	2009-04-28 15:35:06.000000000 -0700
-@@ -671,6 +671,7 @@
+--- a/net/mac80211/iface.c
++++ b/net/mac80211/iface.c
+@@ -670,6 +670,7 @@ static void ieee80211_teardown_sdata(struct net_device *dev)
  	WARN_ON(flushed);
  }
  
@@ -733,7 +746,7 @@
  static const struct net_device_ops ieee80211_dataif_ops = {
  	.ndo_open		= ieee80211_open,
  	.ndo_stop		= ieee80211_stop,
-@@ -690,11 +691,22 @@
+@@ -689,11 +690,22 @@ static const struct net_device_ops ieee80211_monitorif_ops = {
  	.ndo_change_mtu 	= ieee80211_change_mtu,
  	.ndo_set_mac_address 	= eth_mac_addr,
  };
@@ -756,7 +769,7 @@
  	dev->wireless_handlers = &ieee80211_iw_handler_def;
  	dev->destructor = free_netdev;
  }
-@@ -710,7 +722,11 @@
+@@ -709,7 +721,11 @@ static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
  
  	/* and set some type-dependent values */
  	sdata->vif.type = type;
@@ -768,7 +781,7 @@
  	sdata->wdev.iftype = type;
  
  	/* only monitor differs */
-@@ -733,7 +749,11 @@
+@@ -732,7 +748,11 @@ static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
  		break;
  	case NL80211_IFTYPE_MONITOR:
  		sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
@@ -780,7 +793,7 @@
  		sdata->u.mntr_flags = MONITOR_FLAG_CONTROL |
  				      MONITOR_FLAG_OTHER_BSS;
  		break;
-@@ -840,6 +860,10 @@
+@@ -839,6 +859,10 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name,
  	if (ret)
  		goto fail;
  
@@ -803,39 +816,6 @@
  
  /**
   * DOC: Key handling basics
---- a/net/mac80211/main.c
-+++ b/net/mac80211/main.c
-@@ -759,6 +759,7 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
- }
- EXPORT_SYMBOL(ieee80211_alloc_hw);
- 
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
- static const struct net_device_ops ieee80211_master_ops = {
- 	.ndo_start_xmit = ieee80211_master_start_xmit,
- 	.ndo_open = ieee80211_master_open,
-@@ -766,12 +767,22 @@ static const struct net_device_ops ieee80211_master_ops = {
- 	.ndo_set_multicast_list = ieee80211_master_set_multicast_list,
- 	.ndo_select_queue = ieee80211_select_queue,
- };
-+#endif
- 
- static void ieee80211_master_setup(struct net_device *mdev)
- {
- 	mdev->type = ARPHRD_IEEE80211;
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
- 	mdev->netdev_ops = &ieee80211_master_ops;
- 	mdev->header_ops = &ieee80211_header_ops;
-+#else
-+	mdev->hard_start_xmit = ieee80211_master_start_xmit;
-+	mdev->open = ieee80211_master_open;
-+	mdev->stop = ieee80211_master_stop;
-+	mdev->header_ops = &ieee80211_header_ops;
-+	mdev->set_multicast_list = ieee80211_master_set_multicast_list;
-+	mdev->select_queue = ieee80211_select_queue;
-+#endif
- 	mdev->tx_queue_len = 1000;
- 	mdev->addr_len = ETH_ALEN;
- }
 --- a/net/mac80211/rate.c
 +++ b/net/mac80211/rate.c
 @@ -22,7 +22,7 @@ struct rate_control_alg {
@@ -881,7 +861,7 @@
  #include <linux/spinlock.h>
  #include <linux/miscdevice.h>
  #include <linux/wait.h>
-@@ -62,7 +62,7 @@ struct rfkill {
+@@ -61,7 +61,7 @@ struct rfkill {
  	const struct rfkill_ops	*ops;
  	void			*data;
  
@@ -890,7 +870,7 @@
  	struct led_trigger	led_trigger;
  	const char		*ledtrigname;
  #endif
-@@ -123,7 +123,7 @@ static struct {
+@@ -122,7 +122,7 @@ static struct {
  static bool rfkill_epo_lock_active;
  
  
@@ -899,7 +879,7 @@
  static void rfkill_led_trigger_event(struct rfkill *rfkill)
  {
  	struct led_trigger *trigger;
-@@ -148,19 +148,19 @@ static void rfkill_led_trigger_activate(struct led_classdev *led)
+@@ -147,19 +147,19 @@ static void rfkill_led_trigger_activate(struct led_classdev *led)
  	rfkill_led_trigger_event(rfkill);
  }
  
@@ -923,7 +903,7 @@
  
  static int rfkill_led_trigger_register(struct rfkill *rfkill)
  {
-@@ -187,7 +187,7 @@ static inline int rfkill_led_trigger_register(struct rfkill *rfkill)
+@@ -186,7 +186,7 @@ static inline int rfkill_led_trigger_register(struct rfkill *rfkill)
  static inline void rfkill_led_trigger_unregister(struct rfkill *rfkill)
  {
  }
@@ -932,7 +912,7 @@
  
  static void rfkill_fill_event(struct rfkill_event *ev, struct rfkill *rfkill,
  			      enum rfkill_operation op)
-@@ -317,7 +317,7 @@ static void rfkill_set_block(struct rfkill *rfkill, bool blocked)
+@@ -316,7 +316,7 @@ static void rfkill_set_block(struct rfkill *rfkill, bool blocked)
  	rfkill_event(rfkill);
  }
  
@@ -941,7 +921,7 @@
  static atomic_t rfkill_input_disabled = ATOMIC_INIT(0);
  
  /**
-@@ -464,7 +464,7 @@ bool rfkill_get_global_sw_state(const enum rfkill_type type)
+@@ -463,7 +463,7 @@ bool rfkill_get_global_sw_state(const enum rfkill_type type)
  #endif
  
  
@@ -950,7 +930,7 @@
  {
  	bool ret, change;
  
-@@ -478,7 +478,7 @@ bool rfkill_set_hw_state(struct rfkill *rfkill, bool blocked)
+@@ -477,7 +477,7 @@ bool rfkill_set_hw_state(struct rfkill *rfkill, bool blocked)
  
  	return ret;
  }
@@ -959,7 +939,7 @@
  
  static void __rfkill_set_sw_state(struct rfkill *rfkill, bool blocked)
  {
-@@ -494,7 +494,7 @@ static void __rfkill_set_sw_state(struct rfkill *rfkill, bool blocked)
+@@ -493,7 +493,7 @@ static void __rfkill_set_sw_state(struct rfkill *rfkill, bool blocked)
  		rfkill->state &= ~bit;
  }
  
@@ -968,19 +948,31 @@
  {
  	unsigned long flags;
  	bool prev, hwblock;
-@@ -519,9 +519,9 @@ bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked)
+@@ -517,9 +517,9 @@ bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked)
  
  	return blocked;
  }
 -EXPORT_SYMBOL(rfkill_set_sw_state);
 +EXPORT_SYMBOL(backport_rfkill_set_sw_state);
  
+-void rfkill_init_sw_state(struct rfkill *rfkill, bool blocked)
++void backport_rfkill_init_sw_state(struct rfkill *rfkill, bool blocked)
+ {
+ 	unsigned long flags;
+ 
+@@ -531,9 +531,9 @@ void rfkill_init_sw_state(struct rfkill *rfkill, bool blocked)
+ 	rfkill->persistent = true;
+ 	spin_unlock_irqrestore(&rfkill->lock, flags);
+ }
+-EXPORT_SYMBOL(rfkill_init_sw_state);
++EXPORT_SYMBOL(backport_rfkill_init_sw_state);
+ 
 -void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
 +void backport_rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
  {
  	unsigned long flags;
  	bool swprev, hwprev;
-@@ -549,7 +549,7 @@ void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
+@@ -561,7 +561,7 @@ void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
  		rfkill_led_trigger_event(rfkill);
  	}
  }
@@ -989,7 +981,7 @@
  
  static ssize_t rfkill_name_show(struct device *dev,
  				struct device_attribute *attr,
-@@ -690,7 +690,7 @@ static int rfkill_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
+@@ -712,7 +712,7 @@ static int rfkill_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
  	return error;
  }
  
@@ -998,7 +990,7 @@
  {
  	BUG_ON(!rfkill);
  
-@@ -699,9 +699,9 @@ void rfkill_pause_polling(struct rfkill *rfkill)
+@@ -721,9 +721,9 @@ void rfkill_pause_polling(struct rfkill *rfkill)
  
  	cancel_delayed_work_sync(&rfkill->poll_work);
  }
@@ -1010,7 +1002,7 @@
  {
  	BUG_ON(!rfkill);
  
-@@ -710,13 +710,13 @@ void rfkill_resume_polling(struct rfkill *rfkill)
+@@ -732,13 +732,13 @@ void rfkill_resume_polling(struct rfkill *rfkill)
  
  	schedule_work(&rfkill->poll_work.work);
  }
@@ -1024,11 +1016,11 @@
 -	rfkill_pause_polling(rfkill);
 +	backport_rfkill_pause_polling(rfkill);
  
- 	rfkill->suspended = true;
- 
-@@ -733,13 +733,13 @@ static int rfkill_resume(struct device *dev)
- 
- 	rfkill->suspended = false;
+ 	return 0;
+ }
+@@ -753,13 +753,13 @@ static int rfkill_resume(struct device *dev)
+ 		rfkill_set_block(rfkill, cur);
+ 	}
  
 -	rfkill_resume_polling(rfkill);
 +	backport_rfkill_resume_polling(rfkill);
@@ -1042,7 +1034,7 @@
  	.dev_release	= rfkill_release,
  	.dev_attrs	= rfkill_dev_attrs,
  	.dev_uevent	= rfkill_dev_uevent,
-@@ -747,7 +747,7 @@ static struct class rfkill_class = {
+@@ -767,7 +767,7 @@ static struct class rfkill_class = {
  	.resume		= rfkill_resume,
  };
  
@@ -1051,7 +1043,7 @@
  {
  	unsigned long flags;
  	u32 state;
-@@ -758,10 +758,10 @@ bool rfkill_blocked(struct rfkill *rfkill)
+@@ -778,10 +778,10 @@ bool rfkill_blocked(struct rfkill *rfkill)
  
  	return !!(state & RFKILL_BLOCK_ANY);
  }
@@ -1064,7 +1056,7 @@
  					  struct device *parent,
  					  const enum rfkill_type type,
  					  const struct rfkill_ops *ops,
-@@ -800,7 +800,7 @@ struct rfkill * __must_check rfkill_alloc(const char *name,
+@@ -820,7 +820,7 @@ struct rfkill * __must_check rfkill_alloc(const char *name,
  
  	return rfkill;
  }
@@ -1073,7 +1065,7 @@
  
  static void rfkill_poll(struct work_struct *work)
  {
-@@ -843,7 +843,7 @@ static void rfkill_sync_work(struct work_struct *work)
+@@ -863,7 +863,7 @@ static void rfkill_sync_work(struct work_struct *work)
  	mutex_unlock(&rfkill_global_mutex);
  }
  
@@ -1082,7 +1074,7 @@
  {
  	static unsigned long rfkill_no;
  	struct device *dev = &rfkill->dev;
-@@ -885,7 +885,7 @@ int __must_check rfkill_register(struct rfkill *rfkill)
+@@ -905,7 +905,7 @@ int __must_check rfkill_register(struct rfkill *rfkill)
  	if (!rfkill->persistent || rfkill_epo_lock_active) {
  		schedule_work(&rfkill->sync_work);
  	} else {
@@ -1091,7 +1083,7 @@
  		bool soft_blocked = !!(rfkill->state & RFKILL_BLOCK_SW);
  
  		if (!atomic_read(&rfkill_input_disabled))
-@@ -906,9 +906,9 @@ int __must_check rfkill_register(struct rfkill *rfkill)
+@@ -926,9 +926,9 @@ int __must_check rfkill_register(struct rfkill *rfkill)
  	mutex_unlock(&rfkill_global_mutex);
  	return error;
  }
@@ -1103,7 +1095,7 @@
  {
  	BUG_ON(!rfkill);
  
-@@ -929,14 +929,14 @@ void rfkill_unregister(struct rfkill *rfkill)
+@@ -949,14 +949,14 @@ void rfkill_unregister(struct rfkill *rfkill)
  
  	rfkill_led_trigger_unregister(rfkill);
  }
@@ -1121,7 +1113,7 @@
  
  static int rfkill_fop_open(struct inode *inode, struct file *file)
  {
-@@ -1107,7 +1107,7 @@ static int rfkill_fop_release(struct inode *inode, struct file *file)
+@@ -1127,7 +1127,7 @@ static int rfkill_fop_release(struct inode *inode, struct file *file)
  	list_for_each_entry_safe(ev, tmp, &data->events, list)
  		kfree(ev);
  
@@ -1130,7 +1122,7 @@
  	if (data->input_handler)
  		if (atomic_dec_return(&rfkill_input_disabled) == 0)
  			printk(KERN_DEBUG "rfkill: input handler enabled\n");
-@@ -1118,7 +1118,7 @@ static int rfkill_fop_release(struct inode *inode, struct file *file)
+@@ -1138,7 +1138,7 @@ static int rfkill_fop_release(struct inode *inode, struct file *file)
  	return 0;
  }
  
@@ -1139,7 +1131,7 @@
  static long rfkill_fop_ioctl(struct file *file, unsigned int cmd,
  			     unsigned long arg)
  {
-@@ -1150,14 +1150,14 @@ static const struct file_operations rfkill_fops = {
+@@ -1170,14 +1170,14 @@ static const struct file_operations rfkill_fops = {
  	.write		= rfkill_fop_write,
  	.poll		= rfkill_fop_poll,
  	.release	= rfkill_fop_release,
@@ -1156,7 +1148,7 @@
  	.fops	= &rfkill_fops,
  	.minor	= MISC_DYNAMIC_MINOR,
  };
-@@ -1180,7 +1180,7 @@ static int __init rfkill_init(void)
+@@ -1200,7 +1200,7 @@ static int __init rfkill_init(void)
  		goto out;
  	}
  
@@ -1165,7 +1157,7 @@
  	error = rfkill_handler_init();
  	if (error) {
  		misc_deregister(&rfkill_miscdev);
-@@ -1196,7 +1196,7 @@ subsys_initcall(rfkill_init);
+@@ -1216,7 +1216,7 @@ subsys_initcall(rfkill_init);
  
  static void __exit rfkill_exit(void)
  {
diff --git a/config.mk b/config.mk
index 55d5627..809e275 100644
--- a/config.mk
+++ b/config.mk
@@ -295,7 +295,7 @@ endif # end of USB driver list
 
 ifneq ($(CONFIG_SPI_MASTER),)
 
-CONFIG_WL12XX=m
+CONFIG_WL1251=m
 CONFIG_P54_SPI=m
 CONFIG_LIBERTAS_SPI=m
 NEED_LIBERTAS=y
@@ -340,6 +340,7 @@ CONFIG_P54_LEDS=y
 # Atheros
 CONFIG_ATH_COMMON=m
 
+CONFIG_WL12XX=y
 
 # Sonics Silicon Backplane
 CONFIG_SSB_POSSIBLE=y
-- 
1.6.2.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux