diff options
author | David S. Miller <davem@davemloft.net> | 2008-06-10 05:22:26 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-10 05:22:26 -0400 |
commit | 65b53e4cc90e59936733b3b95b9451d2ca47528d (patch) | |
tree | 29932718192962671c48c3fd1ea017a6112459e8 /drivers/net/wireless/libertas | |
parent | 788c0a53164c05c5ccdb1472474372b72ba74644 (diff) | |
parent | 2e761e0532a784816e7e822dbaaece8c5d4be14d (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/tg3.c
drivers/net/wireless/rt2x00/rt2x00dev.c
net/mac80211/ieee80211_i.h
Diffstat (limited to 'drivers/net/wireless/libertas')
-rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/debugfs.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/main.c | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index cf261d3487fd..75427e61898d 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c | |||
@@ -1858,6 +1858,9 @@ static void lbs_send_confirmsleep(struct lbs_private *priv) | |||
1858 | 1858 | ||
1859 | spin_lock_irqsave(&priv->driver_lock, flags); | 1859 | spin_lock_irqsave(&priv->driver_lock, flags); |
1860 | 1860 | ||
1861 | /* We don't get a response on the sleep-confirmation */ | ||
1862 | priv->dnld_sent = DNLD_RES_RECEIVED; | ||
1863 | |||
1861 | /* If nothing to do, go back to sleep (?) */ | 1864 | /* If nothing to do, go back to sleep (?) */ |
1862 | if (!__kfifo_len(priv->event_fifo) && !priv->resp_len[priv->resp_idx]) | 1865 | if (!__kfifo_len(priv->event_fifo) && !priv->resp_len[priv->resp_idx]) |
1863 | priv->psstate = PS_STATE_SLEEP; | 1866 | priv->psstate = PS_STATE_SLEEP; |
@@ -1920,12 +1923,12 @@ void lbs_ps_confirm_sleep(struct lbs_private *priv) | |||
1920 | 1923 | ||
1921 | lbs_deb_enter(LBS_DEB_HOST); | 1924 | lbs_deb_enter(LBS_DEB_HOST); |
1922 | 1925 | ||
1926 | spin_lock_irqsave(&priv->driver_lock, flags); | ||
1923 | if (priv->dnld_sent) { | 1927 | if (priv->dnld_sent) { |
1924 | allowed = 0; | 1928 | allowed = 0; |
1925 | lbs_deb_host("dnld_sent was set\n"); | 1929 | lbs_deb_host("dnld_sent was set\n"); |
1926 | } | 1930 | } |
1927 | 1931 | ||
1928 | spin_lock_irqsave(&priv->driver_lock, flags); | ||
1929 | /* In-progress command? */ | 1932 | /* In-progress command? */ |
1930 | if (priv->cur_cmd) { | 1933 | if (priv->cur_cmd) { |
1931 | allowed = 0; | 1934 | allowed = 0; |
diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c index ad2fabca9116..0aa0ce3b2c42 100644 --- a/drivers/net/wireless/libertas/debugfs.c +++ b/drivers/net/wireless/libertas/debugfs.c | |||
@@ -312,8 +312,8 @@ static ssize_t lbs_threshold_write(uint16_t tlv_type, uint16_t event_mask, | |||
312 | if (tlv_type != TLV_TYPE_BCNMISS) | 312 | if (tlv_type != TLV_TYPE_BCNMISS) |
313 | tlv->freq = freq; | 313 | tlv->freq = freq; |
314 | 314 | ||
315 | /* The command header, the event mask, and the one TLV */ | 315 | /* The command header, the action, the event mask, and one TLV */ |
316 | events->hdr.size = cpu_to_le16(sizeof(events->hdr) + 2 + sizeof(*tlv)); | 316 | events->hdr.size = cpu_to_le16(sizeof(events->hdr) + 4 + sizeof(*tlv)); |
317 | 317 | ||
318 | ret = lbs_cmd_with_response(priv, CMD_802_11_SUBSCRIBE_EVENT, events); | 318 | ret = lbs_cmd_with_response(priv, CMD_802_11_SUBSCRIBE_EVENT, events); |
319 | 319 | ||
diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c index b7ab3590b586..abd6d9ed8f4b 100644 --- a/drivers/net/wireless/libertas/main.c +++ b/drivers/net/wireless/libertas/main.c | |||
@@ -765,8 +765,8 @@ static int lbs_thread(void *data) | |||
765 | lbs_deb_thread("4: currenttxskb %p, dnld_sent %d\n", | 765 | lbs_deb_thread("4: currenttxskb %p, dnld_sent %d\n", |
766 | priv->currenttxskb, priv->dnld_sent); | 766 | priv->currenttxskb, priv->dnld_sent); |
767 | 767 | ||
768 | spin_lock_irq(&priv->driver_lock); | ||
769 | /* Process any pending command response */ | 768 | /* Process any pending command response */ |
769 | spin_lock_irq(&priv->driver_lock); | ||
770 | resp_idx = priv->resp_idx; | 770 | resp_idx = priv->resp_idx; |
771 | if (priv->resp_len[resp_idx]) { | 771 | if (priv->resp_len[resp_idx]) { |
772 | spin_unlock_irq(&priv->driver_lock); | 772 | spin_unlock_irq(&priv->driver_lock); |