Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireles...
authorDavid S. Miller <davem@davemloft.net>
Tue, 10 Jun 2008 08:54:31 +0000 (01:54 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 10 Jun 2008 08:54:31 +0000 (01:54 -0700)
Conflicts:

drivers/net/ps3_gelic_wireless.c
drivers/net/wireless/libertas/main.c

1  2 
drivers/net/Kconfig
drivers/net/wireless/libertas/main.c
drivers/net/wireless/rtl8187_dev.c
drivers/net/wireless/zd1211rw/zd_mac.c
drivers/net/wireless/zd1211rw/zd_usb.c
include/net/mac80211.h
net/mac80211/mlme.c
net/mac80211/util.c

Simple merge
index 02e4fb639428ed2cd33856d32d5b9088fc2ff3c5,039e09a8b024034186e0bc40be944d4dea6e5668..b7ab3590b5864a53d803a9f914ee2c6a51768dca
@@@ -749,16 -782,20 +782,21 @@@ static int lbs_thread(void *data
                if (priv->cmd_timed_out && priv->cur_cmd) {
                        struct cmd_ctrl_node *cmdnode = priv->cur_cmd;
  
-                       if (++priv->nr_retries > 10) {
-                               lbs_pr_info("Excessive timeouts submitting command %x\n",
-                                           le16_to_cpu(cmdnode->cmdbuf->command));
+                       if (++priv->nr_retries > 3) {
+                               lbs_pr_info("Excessive timeouts submitting "
+                                       "command 0x%04x\n",
+                                       le16_to_cpu(cmdnode->cmdbuf->command));
                                lbs_complete_command(priv, cmdnode, -ETIMEDOUT);
                                priv->nr_retries = 0;
+                               if (priv->reset_card)
+                                       priv->reset_card(priv);
                        } else {
                                priv->cur_cmd = NULL;
-                               lbs_pr_info("requeueing command %x due to timeout (#%d)\n",
-                                           le16_to_cpu(cmdnode->cmdbuf->command), priv->nr_retries);
 +                              priv->dnld_sent = DNLD_RES_RECEIVED;
+                               lbs_pr_info("requeueing command 0x%04x due "
+                                       "to timeout (#%d)\n",
+                                       le16_to_cpu(cmdnode->cmdbuf->command),
+                                       priv->nr_retries);
  
                                /* Stick it back at the _top_ of the pending queue
                                   for immediate resubmission */
@@@ -1555,9 -1601,7 +1602,8 @@@ static int lbs_add_rtap(struct lbs_priv
        rtap_dev->stop = lbs_rtap_stop;
        rtap_dev->get_stats = lbs_rtap_get_stats;
        rtap_dev->hard_start_xmit = lbs_rtap_hard_start_xmit;
-       rtap_dev->set_multicast_list = lbs_set_multicast_list;
        rtap_dev->priv = priv;
 +      SET_NETDEV_DEV(rtap_dev, priv->dev->dev.parent);
  
        ret = register_netdev(rtap_dev);
        if (ret) {
index 23514456d373ed37f324b48466285e1c7e8c95b2,b581ef8a63773191e8480b4e5a81aaa203fff066..0078c7e9918c4cc772bb2ac57ed3207a9b48c7e0
@@@ -206,19 -191,13 +197,17 @@@ static int rtl8187_tx(struct ieee80211_
        hdr->flags = cpu_to_le32(flags);
        hdr->len = 0;
        hdr->rts_duration = rts_dur;
-       hdr->retry = cpu_to_le32(control->retry_limit << 8);
+       hdr->retry = cpu_to_le32(info->control.retry_limit << 8);
  
-       info = (struct rtl8187_tx_info *)skb->cb;
-       info->control = kmemdup(control, sizeof(*control), GFP_ATOMIC);
-       info->urb = urb;
-       info->dev = dev;
+       info->driver_data[0] = dev;
+       info->driver_data[1] = urb;
        usb_fill_bulk_urb(urb, priv->udev, usb_sndbulkpipe(priv->udev, 2),
                          hdr, skb->len, rtl8187_tx_cb, skb);
 -      usb_submit_urb(urb, GFP_ATOMIC);
 +      rc = usb_submit_urb(urb, GFP_ATOMIC);
 +      if (rc < 0) {
 +              usb_free_urb(urb);
 +              kfree_skb(skb);
 +      }
  
        return 0;
  }
Simple merge
Simple merge
Simple merge