diff options
Diffstat (limited to 'drivers/net/wireless/ipw2x00/ipw2200.c')
-rw-r--r-- | drivers/net/wireless/ipw2x00/ipw2200.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c index 48fa6df3a774..23728eb6110a 100644 --- a/drivers/net/wireless/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/ipw2x00/ipw2200.c | |||
@@ -3895,6 +3895,7 @@ static int ipw_disassociate(void *data) | |||
3895 | if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING))) | 3895 | if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING))) |
3896 | return 0; | 3896 | return 0; |
3897 | ipw_send_disassociate(data, 0); | 3897 | ipw_send_disassociate(data, 0); |
3898 | netif_carrier_off(priv->net_dev); | ||
3898 | return 1; | 3899 | return 1; |
3899 | } | 3900 | } |
3900 | 3901 | ||
@@ -10155,6 +10156,9 @@ static int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb, | |||
10155 | u16 remaining_bytes; | 10156 | u16 remaining_bytes; |
10156 | int fc; | 10157 | int fc; |
10157 | 10158 | ||
10159 | if (!(priv->status & STATUS_ASSOCIATED)) | ||
10160 | goto drop; | ||
10161 | |||
10158 | hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl)); | 10162 | hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl)); |
10159 | switch (priv->ieee->iw_mode) { | 10163 | switch (priv->ieee->iw_mode) { |
10160 | case IW_MODE_ADHOC: | 10164 | case IW_MODE_ADHOC: |