rpms/kernel/devel linux-2.6-wireless-pending.patch, NONE, 1.1 linux-2.6-wireless.patch, 1.2, 1.3

John W. Linville (linville) fedora-extras-commits at redhat.com
Wed Aug 8 20:35:07 UTC 2007


Author: linville

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv10223

Added Files:
	linux-2.6-wireless-pending.patch linux-2.6-wireless.patch 
Log Message:
update wireless bits (forgot new patches)

linux-2.6-wireless-pending.patch:

--- NEW FILE linux-2.6-wireless-pending.patch ---
--- linux-2.6.22.noarch/drivers/net/wireless/orinoco_tmd.c.orig	2007-07-08 19:32:17.000000000 -0400
+++ linux-2.6.22.noarch/drivers/net/wireless/orinoco_tmd.c	2007-08-08 16:01:01.000000000 -0400
@@ -190,7 +190,7 @@ static int orinoco_tmd_init_one(struct p
 static void __devexit orinoco_tmd_remove_one(struct pci_dev *pdev)
 {
 	struct net_device *dev = pci_get_drvdata(pdev);
-	struct orinoco_private *priv = dev->priv;
+	struct orinoco_private *priv = netdev_priv(dev);
 	struct orinoco_pci_card *card = priv->card;
 
 	unregister_netdev(dev);
--- linux-2.6.22.noarch/drivers/net/wireless/airo.c.orig	2007-08-08 16:00:10.000000000 -0400
+++ linux-2.6.22.noarch/drivers/net/wireless/airo.c	2007-08-08 16:01:01.000000000 -0400
@@ -241,8 +241,8 @@ static int proc_perm = 0644;
 
 MODULE_AUTHOR("Benjamin Reed");
 MODULE_DESCRIPTION("Support for Cisco/Aironet 802.11 wireless ethernet \
-                   cards.  Direct support for ISA/PCI/MPI cards and support \
-		   for PCMCIA when used with airo_cs.");
+cards.  Direct support for ISA/PCI/MPI cards and support \
+for PCMCIA when used with airo_cs.");
 MODULE_LICENSE("Dual BSD/GPL");
 MODULE_SUPPORTED_DEVICE("Aironet 4500, 4800 and Cisco 340/350");
 module_param_array(io, int, NULL, 0);
--- linux-2.6.22.noarch/drivers/net/wireless/strip.c.orig	2007-07-08 19:32:17.000000000 -0400
+++ linux-2.6.22.noarch/drivers/net/wireless/strip.c	2007-08-08 16:01:01.000000000 -0400
@@ -2571,7 +2571,7 @@ static struct strip *strip_alloc(void)
 		return NULL;	/* If no more memory, return */
 
 
-	strip_info = dev->priv;
+	strip_info = netdev_priv(dev);
 	strip_info->dev = dev;
 
 	strip_info->magic = STRIP_MAGIC;
--- linux-2.6.22.noarch/drivers/net/wireless/ray_cs.c.orig	2007-07-08 19:32:17.000000000 -0400
+++ linux-2.6.22.noarch/drivers/net/wireless/ray_cs.c	2007-08-08 16:01:01.000000000 -0400
@@ -314,7 +314,7 @@ static int ray_probe(struct pcmcia_devic
     if (!dev)
 	    goto fail_alloc_dev;
 
-    local = dev->priv;
+    local = netdev_priv(dev);
     local->finder = p_dev;
 
     /* The io structure describes IO port mapping. None used here */
@@ -388,7 +388,7 @@ static void ray_detach(struct pcmcia_dev
 
     ray_release(link);
 
-    local = (ray_dev_t *)dev->priv;
+    local = netdev_priv(dev);
     del_timer(&local->timer);
 
     if (link->priv) {
@@ -412,7 +412,7 @@ static int ray_config(struct pcmcia_devi
     win_req_t req;
     memreq_t mem;
     struct net_device *dev = (struct net_device *)link->priv;
-    ray_dev_t *local = (ray_dev_t *)dev->priv;
+    ray_dev_t *local = netdev_priv(dev);
 
     DEBUG(1, "ray_config(0x%p)\n", link);
 
@@ -520,7 +520,7 @@ static int ray_init(struct net_device *d
     int i;
     UCHAR *p;
     struct ccs __iomem *pccs;
-    ray_dev_t *local = (ray_dev_t *)dev->priv;
+    ray_dev_t *local = netdev_priv(dev);
     struct pcmcia_device *link = local->finder;
     DEBUG(1, "ray_init(0x%p)\n", dev);
     if (!(pcmcia_dev_present(link))) {
@@ -581,7 +581,7 @@ static int ray_init(struct net_device *d
 static int dl_startup_params(struct net_device *dev)
 {
     int ccsindex;
-    ray_dev_t *local = (ray_dev_t *)dev->priv;
+    ray_dev_t *local = netdev_priv(dev);
     struct ccs __iomem *pccs;
     struct pcmcia_device *link = local->finder;
 
@@ -786,7 +786,7 @@ static void join_net(u_long data)
 static void ray_release(struct pcmcia_device *link)
 {
     struct net_device *dev = link->priv; 
-    ray_dev_t *local = dev->priv;
+    ray_dev_t *local = netdev_priv(dev);
     int i;
     
     DEBUG(1, "ray_release(0x%p)\n", link);
@@ -834,7 +834,7 @@ int ray_dev_init(struct net_device *dev)
 #ifdef RAY_IMMEDIATE_INIT
     int i;
 #endif	/* RAY_IMMEDIATE_INIT */
-    ray_dev_t *local = dev->priv;
+    ray_dev_t *local = netdev_priv(dev);
     struct pcmcia_device *link = local->finder;
 
     DEBUG(1,"ray_dev_init(dev=%p)\n",dev);
@@ -868,7 +868,7 @@ int ray_dev_init(struct net_device *dev)
 /*===========================================================================*/
 static int ray_dev_config(struct net_device *dev, struct ifmap *map)
 {
-    ray_dev_t *local = dev->priv;
+    ray_dev_t *local = netdev_priv(dev);
     struct pcmcia_device *link = local->finder;
     /* Dummy routine to satisfy device structure */
     DEBUG(1,"ray_dev_config(dev=%p,ifmap=%p)\n",dev,map);
@@ -882,7 +882,7 @@ static int ray_dev_config(struct net_dev
 /*===========================================================================*/
 static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-    ray_dev_t *local = dev->priv;
+    ray_dev_t *local = netdev_priv(dev);
     struct pcmcia_device *link = local->finder;
     short length = skb->len;
 
@@ -925,7 +925,7 @@ static int ray_dev_start_xmit(struct sk_
 static int ray_hw_xmit(unsigned char* data, int len, struct net_device* dev, 
                 UCHAR msg_type)
 {
-    ray_dev_t *local = (ray_dev_t *)dev->priv;
+    ray_dev_t *local = netdev_priv(dev);
     struct ccs __iomem *pccs;
     int ccsindex;
     int offset;
@@ -1099,7 +1099,7 @@ static int ray_set_freq(struct net_devic
 			struct iw_freq *fwrq,
 			char *extra)
 {
-	ray_dev_t *local = (ray_dev_t *)dev->priv;
+	ray_dev_t *local = netdev_priv(dev);
 	int err = -EINPROGRESS;		/* Call commit handler */
 
 	/* Reject if card is already initialised */
@@ -1124,7 +1124,7 @@ static int ray_get_freq(struct net_devic
 			struct iw_freq *fwrq,
 			char *extra)
 {
-	ray_dev_t *local = (ray_dev_t *)dev->priv;
+	ray_dev_t *local = netdev_priv(dev);
 
 	fwrq->m = local->sparm.b5.a_hop_pattern;
 	fwrq->e = 0;
@@ -1140,7 +1140,7 @@ static int ray_set_essid(struct net_devi
 			 struct iw_point *dwrq,
 			 char *extra)
 {
-	ray_dev_t *local = (ray_dev_t *)dev->priv;
+	ray_dev_t *local = netdev_priv(dev);
 
 	/* Reject if card is already initialised */
 	if(local->card_status != CARD_AWAITING_PARAM)
@@ -1173,7 +1173,7 @@ static int ray_get_essid(struct net_devi
 			 struct iw_point *dwrq,
 			 char *extra)
 {
-	ray_dev_t *local = (ray_dev_t *)dev->priv;
+	ray_dev_t *local = netdev_priv(dev);
 
 	/* Get the essid that was set */
 	memcpy(extra, local->sparm.b5.a_current_ess_id, IW_ESSID_MAX_SIZE);
@@ -1194,7 +1194,7 @@ static int ray_get_wap(struct net_device
 			struct sockaddr *awrq,
 			char *extra)
 {
-	ray_dev_t *local = (ray_dev_t *)dev->priv;
+	ray_dev_t *local = netdev_priv(dev);
 
 	memcpy(awrq->sa_data, local->bss_id, ETH_ALEN);
 	awrq->sa_family = ARPHRD_ETHER;
@@ -1211,7 +1211,7 @@ static int ray_set_rate(struct net_devic
 			struct iw_param *vwrq,
 			char *extra)
 {
-	ray_dev_t *local = (ray_dev_t *)dev->priv;
+	ray_dev_t *local = netdev_priv(dev);
 
 	/* Reject if card is already initialised */
 	if(local->card_status != CARD_AWAITING_PARAM)
@@ -1240,7 +1240,7 @@ static int ray_get_rate(struct net_devic
 			struct iw_param *vwrq,
 			char *extra)
 {
-	ray_dev_t *local = (ray_dev_t *)dev->priv;
+	ray_dev_t *local = netdev_priv(dev);
 
 	if(local->net_default_tx_rate == 3)
 		vwrq->value = 2000000;		/* Hum... */
@@ -1260,7 +1260,7 @@ static int ray_set_rts(struct net_device
 		       struct iw_param *vwrq,
 		       char *extra)
 {
-	ray_dev_t *local = (ray_dev_t *)dev->priv;
+	ray_dev_t *local = netdev_priv(dev);
 	int rthr = vwrq->value;
 
 	/* Reject if card is already initialised */
[...12035 lines suppressed...]
 		  goto final;
 	} else
-		priva = arlan_device[devnum]->priv;
+		priva = netdev_priv(arlan_device[devnum]);
 	if (priva == NULL)
 	{
 		printk(KERN_WARNING " Could not find the device private in arlan procsys, bad\n ");
@@ -745,7 +745,7 @@ static int arlan_sysctl_info18(ctl_table
 		goto final;
 	}
 	else
-		priva = arlan_device[devnum]->priv;
+		priva = netdev_priv(arlan_device[devnum]);
 	if (priva == NULL)
 	{
 		printk(KERN_WARNING " Could not find the device private in arlan procsys, bad\n ");
@@ -780,7 +780,7 @@ static int arlan_configure(ctl_table * c
 	}
 	else if (arlan_device[devnum] != NULL)
 	{
-		  priv = arlan_device[devnum]->priv;
+		  priv = netdev_priv(arlan_device[devnum]);
 
 		  arlan_command(arlan_device[devnum], ARLAN_COMMAND_CLEAN_AND_CONF);
 	}
@@ -805,7 +805,7 @@ static int arlan_sysctl_reset(ctl_table 
 	}
 	else if (arlan_device[devnum] != NULL)
 	{
-		priv = arlan_device[devnum]->priv;
+		priv = netdev_priv(arlan_device[devnum]);
 		arlan_command(arlan_device[devnum], ARLAN_COMMAND_CLEAN_AND_RESET);
 
 	} else
--- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_wlan.h.orig	2007-07-08 19:32:17.000000000 -0400
+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_wlan.h	2007-08-08 16:01:01.000000000 -0400
@@ -3,6 +3,7 @@
 
 #include <linux/wireless.h>
 #include <linux/netdevice.h>
+#include <linux/mutex.h>
 #include <net/iw_handler.h>
 
 #include "hostap_config.h"
@@ -641,7 +642,7 @@ struct local_info {
 			      * when removing entries from the list.
 			      * TX and RX paths can use read lock. */
 	spinlock_t cmdlock, baplock, lock;
-	struct semaphore rid_bap_sem;
+	struct mutex rid_bap_mtx;
 	u16 infofid; /* MAC buffer id for info frame */
 	/* txfid, intransmitfid, next_txtid, and next_alloc are protected by
 	 * txfidlock */
--- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig	2007-08-08 16:00:10.000000000 -0400
+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c	2007-08-08 16:01:01.000000000 -0400
@@ -272,7 +272,7 @@ static int sandisk_enable_wireless(struc
 {
 	int res, ret = 0;
 	conf_reg_t reg;
-	struct hostap_interface *iface = dev->priv;
+	struct hostap_interface *iface = netdev_priv(dev);
 	local_info_t *local = iface->local;
 	tuple_t tuple;
 	cisparse_t *parse = NULL;
--- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_hw.c.orig	2007-07-08 19:32:17.000000000 -0400
+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_hw.c	2007-08-08 16:01:01.000000000 -0400
@@ -825,7 +825,7 @@ static int hfa384x_get_rid(struct net_de
 	    local->hw_downloading)
 		return -ENODEV;
 
-	res = down_interruptible(&local->rid_bap_sem);
+	res = mutex_lock_interruptible(&local->rid_bap_mtx);
 	if (res)
 		return res;
 
@@ -834,7 +834,7 @@ static int hfa384x_get_rid(struct net_de
 		printk(KERN_DEBUG "%s: hfa384x_get_rid: CMDCODE_ACCESS failed "
 		       "(res=%d, rid=%04x, len=%d)\n",
 		       dev->name, res, rid, len);
-		up(&local->rid_bap_sem);
+		mutex_unlock(&local->rid_bap_mtx);
 		return res;
 	}
 
@@ -861,7 +861,7 @@ static int hfa384x_get_rid(struct net_de
 		res = hfa384x_from_bap(dev, BAP0, buf, len);
 
 	spin_unlock_bh(&local->baplock);
-	up(&local->rid_bap_sem);
+	mutex_unlock(&local->rid_bap_mtx);
 
 	if (res) {
 		if (res != -ENODATA)
@@ -902,7 +902,7 @@ static int hfa384x_set_rid(struct net_de
 	/* RID len in words and +1 for rec.rid */
 	rec.len = cpu_to_le16(len / 2 + len % 2 + 1);
 
-	res = down_interruptible(&local->rid_bap_sem);
+	res = mutex_lock_interruptible(&local->rid_bap_mtx);
 	if (res)
 		return res;
 
@@ -917,12 +917,12 @@ static int hfa384x_set_rid(struct net_de
 	if (res) {
 		printk(KERN_DEBUG "%s: hfa384x_set_rid (rid=%04x, len=%d) - "
 		       "failed - res=%d\n", dev->name, rid, len, res);
-		up(&local->rid_bap_sem);
+		mutex_unlock(&local->rid_bap_mtx);
 		return res;
 	}
 
 	res = hfa384x_cmd(dev, HFA384X_CMDCODE_ACCESS_WRITE, rid, NULL, NULL);
-	up(&local->rid_bap_sem);
+	mutex_unlock(&local->rid_bap_mtx);
 
 	if (res) {
 		printk(KERN_DEBUG "%s: hfa384x_set_rid: CMDCODE_ACCESS_WRITE "
@@ -3171,7 +3171,7 @@ prism2_init_local_data(struct prism2_hel
 	spin_lock_init(&local->cmdlock);
 	spin_lock_init(&local->baplock);
 	spin_lock_init(&local->lock);
-	init_MUTEX(&local->rid_bap_sem);
+	mutex_init(&local->rid_bap_mtx);
 
 	if (card_idx < 0 || card_idx >= MAX_PARM_DEVICES)
 		card_idx = 0;
@@ -3424,7 +3424,7 @@ static void prism2_suspend(struct net_de
 	struct local_info *local;
 	union iwreq_data wrqu;
 
-	iface = dev->priv;
+	iface = netdev_priv(dev);
 	local = iface->local;
 
 	/* Send disconnect event, e.g., to trigger reassociation after resume
--- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig	2007-08-08 16:00:10.000000000 -0400
+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2007-08-08 16:01:01.000000000 -0400
@@ -3088,7 +3088,7 @@ static int prism2_ioctl_priv_download(lo
 static int prism2_set_genericelement(struct net_device *dev, u8 *elem,
 				     size_t len)
 {
-	struct hostap_interface *iface = dev->priv;
+	struct hostap_interface *iface = netdev_priv(dev);
 	local_info_t *local = iface->local;
 	u8 *buf;
 
@@ -3116,7 +3116,7 @@ static int prism2_ioctl_siwauth(struct n
 				struct iw_request_info *info,
 				struct iw_param *data, char *extra)
 {
-	struct hostap_interface *iface = dev->priv;
+	struct hostap_interface *iface = netdev_priv(dev);
 	local_info_t *local = iface->local;
 
 	switch (data->flags & IW_AUTH_INDEX) {
@@ -3182,7 +3182,7 @@ static int prism2_ioctl_giwauth(struct n
 				struct iw_request_info *info,
 				struct iw_param *data, char *extra)
 {
-	struct hostap_interface *iface = dev->priv;
+	struct hostap_interface *iface = netdev_priv(dev);
 	local_info_t *local = iface->local;
 
 	switch (data->flags & IW_AUTH_INDEX) {
@@ -3221,7 +3221,7 @@ static int prism2_ioctl_siwencodeext(str
 				     struct iw_request_info *info,
 				     struct iw_point *erq, char *extra)
 {
-	struct hostap_interface *iface = dev->priv;
+	struct hostap_interface *iface = netdev_priv(dev);
 	local_info_t *local = iface->local;
 	struct iw_encode_ext *ext = (struct iw_encode_ext *) extra;
 	int i, ret = 0;
@@ -3395,7 +3395,7 @@ static int prism2_ioctl_giwencodeext(str
 				     struct iw_request_info *info,
 				     struct iw_point *erq, char *extra)
 {
-	struct hostap_interface *iface = dev->priv;
+	struct hostap_interface *iface = netdev_priv(dev);
 	local_info_t *local = iface->local;
 	struct ieee80211_crypt_data **crypt;
 	void *sta_ptr;
@@ -3716,7 +3716,7 @@ static int prism2_ioctl_giwgenie(struct 
 				 struct iw_request_info *info,
 				 struct iw_point *data, char *extra)
 {
-	struct hostap_interface *iface = dev->priv;
+	struct hostap_interface *iface = netdev_priv(dev);
 	local_info_t *local = iface->local;
 	int len = local->generic_elem_len - 2;
 
@@ -3755,7 +3755,7 @@ static int prism2_ioctl_siwmlme(struct n
 				struct iw_request_info *info,
 				struct iw_point *data, char *extra)
 {
-	struct hostap_interface *iface = dev->priv;
+	struct hostap_interface *iface = netdev_priv(dev);
 	local_info_t *local = iface->local;
 	struct iw_mlme *mlme = (struct iw_mlme *) extra;
 	u16 reason;

linux-2.6-wireless.patch:

Index: linux-2.6-wireless.patch
===================================================================
RCS file: linux-2.6-wireless.patch
diff -N linux-2.6-wireless.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6-wireless.patch	8 Aug 2007 20:35:05 -0000	1.3
@@ -0,0 +1,152 @@
+--- linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_wx.c.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_wx.c	2007-08-08 15:51:15.000000000 -0400
+@@ -74,8 +74,8 @@ ieee80211softmac_wx_set_essid(struct net
+ 	struct ieee80211softmac_auth_queue_item *authptr;
+ 	int length = 0;
+ 
++check_assoc_again:
+ 	mutex_lock(&sm->associnfo.mutex);
+-
+ 	/* Check if we're already associating to this or another network
+ 	 * If it's another network, cancel and start over with our new network
+ 	 * If it's our network, ignore the change, we're already doing it!
+@@ -98,13 +98,18 @@ ieee80211softmac_wx_set_essid(struct net
+ 				cancel_delayed_work(&authptr->work);
+ 			sm->associnfo.bssvalid = 0;
+ 			sm->associnfo.bssfixed = 0;
+-			flush_scheduled_work();
+ 			sm->associnfo.associating = 0;
+ 			sm->associnfo.associated = 0;
++			/* We must unlock to avoid deadlocks with the assoc workqueue
++			 * on the associnfo.mutex */
++			mutex_unlock(&sm->associnfo.mutex);
++			flush_scheduled_work();
++			/* Avoid race! Check assoc status again. Maybe someone started an
++			 * association while we flushed. */
++			goto check_assoc_again;
+ 		}
+ 	}
+ 
+-
+ 	sm->associnfo.static_essid = 0;
+ 	sm->associnfo.assoc_wait = 0;
+ 
+--- linux-2.6.22.noarch/net/mac80211/ieee80211_ioctl.c.orig	2007-08-08 15:49:33.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_ioctl.c	2007-08-08 15:51:12.000000000 -0400
+@@ -697,17 +697,24 @@ static int ieee80211_ioctl_siwscan(struc
+ 	if (!netif_running(dev))
+ 		return -ENETDOWN;
+ 
+-	if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
+-		if (sdata->type == IEEE80211_IF_TYPE_STA ||
+-		    sdata->type == IEEE80211_IF_TYPE_IBSS) {
++	switch (sdata->type) {
++	case IEEE80211_IF_TYPE_STA:
++	case IEEE80211_IF_TYPE_IBSS:
++		if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
+ 			ssid = sdata->u.sta.ssid;
+ 			ssid_len = sdata->u.sta.ssid_len;
+-		} else if (sdata->type == IEEE80211_IF_TYPE_AP) {
++		}
++		break;
++	case IEEE80211_IF_TYPE_AP:
++		if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
+ 			ssid = sdata->u.ap.ssid;
+ 			ssid_len = sdata->u.ap.ssid_len;
+-		} else
+-			return -EINVAL;
++		}
++		break;
++	default:
++		return -EOPNOTSUPP;
+ 	}
++
+ 	return ieee80211_sta_req_scan(dev, ssid, ssid_len);
+ }
+ 
+--- linux-2.6.22.noarch/net/mac80211/debugfs_sta.c.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/debugfs_sta.c	2007-08-08 15:51:12.000000000 -0400
+@@ -157,7 +157,7 @@ static ssize_t sta_last_seq_ctrl_read(st
+ 	struct sta_info *sta = file->private_data;
+ 	for (i = 0; i < NUM_RX_DATA_QUEUES; i++)
+ 		p += scnprintf(p, sizeof(buf)+buf-p, "%x ",
+-			       sta->last_seq_ctrl[i]);
++			       le16_to_cpu(sta->last_seq_ctrl[i]));
+ 	p += scnprintf(p, sizeof(buf)+buf-p, "\n");
+ 	return simple_read_from_buffer(userbuf, count, ppos, buf, p - buf);
+ }
+--- linux-2.6.22.noarch/net/mac80211/ieee80211.c.orig	2007-08-08 15:49:33.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211.c	2007-08-08 15:51:12.000000000 -0400
+@@ -1650,6 +1650,7 @@ static int ieee80211_master_start_xmit(s
+ 	if (skb_headroom(skb) < headroom) {
+ 		if (pskb_expand_head(skb, headroom, 0, GFP_ATOMIC)) {
+ 			dev_kfree_skb(skb);
++			dev_put(odev);
+ 			return 0;
+ 		}
+ 	}
+--- linux-2.6.22.noarch/net/mac80211/debugfs_netdev.c.orig	2007-08-08 15:49:33.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/debugfs_netdev.c	2007-08-08 15:51:12.000000000 -0400
+@@ -271,9 +271,11 @@ static void add_files(struct ieee80211_s
+ 	}
+ }
+ 
+-#define DEBUGFS_DEL(name, type)\
+-	debugfs_remove(sdata->debugfs.type.name);\
+-	sdata->debugfs.type.name = NULL;
++#define DEBUGFS_DEL(name, type)					\
++	do {							\
++		debugfs_remove(sdata->debugfs.type.name);	\
++		sdata->debugfs.type.name = NULL;		\
++	} while (0)
+ 
+ static void del_sta_files(struct ieee80211_sub_if_data *sdata)
+ {
+--- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.c.orig	2007-08-08 15:49:27.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.c	2007-08-08 15:51:15.000000000 -0400
+@@ -822,7 +822,7 @@ static void cs_set_control(struct zd_mac
+ 		cs->control |= ZD_CS_MULTICAST;
+ 
+ 	/* PS-POLL */
+-	if (stype == IEEE80211_STYPE_PSPOLL)
++	if (ftype == IEEE80211_FTYPE_CTL && stype == IEEE80211_STYPE_PSPOLL)
+ 		cs->control |= ZD_CS_PS_POLL_FRAME;
+ 
+ 	/* Unicast data frames over the threshold should have RTS */
+--- linux-2.6.22.noarch/drivers/net/wireless/rtl8187_dev.c.orig	2007-08-08 15:49:27.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/rtl8187_dev.c	2007-08-08 15:51:15.000000000 -0400
+@@ -466,7 +466,7 @@ static int rtl8187_add_interface(struct 
+ 		return -EOPNOTSUPP;
+ 	}
+ 
+-	priv->hwaddr = conf->mac_addr;
++	priv->hwaddr = conf->mac_addr ? conf->mac_addr : dev->wiphy->perm_addr;
+ 
+ 	return 0;
+ }
+--- linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_phy.c.orig	2007-08-08 15:49:27.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_phy.c	2007-08-08 15:51:15.000000000 -0400
+@@ -1638,7 +1638,7 @@ void bcm43xx_phy_set_baseband_attenuatio
+ 		return;
+ 	}
+ 
+-	if (phy->analog == 1) {
++	if (phy->analog > 1) {
+ 		value = bcm43xx_phy_read(bcm, 0x0060) & ~0x003C;
+ 		value |= (baseband_attenuation << 2) & 0x003C;
+ 	} else {
+--- linux-2.6.22.noarch/fs/compat_ioctl.c.orig	2007-08-08 15:49:31.000000000 -0400
++++ linux-2.6.22.noarch/fs/compat_ioctl.c	2007-08-08 15:51:15.000000000 -0400
+@@ -3161,12 +3161,9 @@ COMPATIBLE_IOCTL(SIOCSIWSENS)
+ COMPATIBLE_IOCTL(SIOCGIWSENS)
+ COMPATIBLE_IOCTL(SIOCSIWRANGE)
+ COMPATIBLE_IOCTL(SIOCSIWPRIV)
+-COMPATIBLE_IOCTL(SIOCGIWPRIV)
+ COMPATIBLE_IOCTL(SIOCSIWSTATS)
+-COMPATIBLE_IOCTL(SIOCGIWSTATS)
+ COMPATIBLE_IOCTL(SIOCSIWAP)
+ COMPATIBLE_IOCTL(SIOCGIWAP)
+-COMPATIBLE_IOCTL(SIOCSIWSCAN)
+ COMPATIBLE_IOCTL(SIOCSIWRATE)
+ COMPATIBLE_IOCTL(SIOCGIWRATE)
+ COMPATIBLE_IOCTL(SIOCSIWRTS)




More information about the fedora-extras-commits mailing list