|
@@ -3897,6 +3897,7 @@ static int ipw_disassociate(void *data)
|
|
if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING)))
|
|
if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING)))
|
|
return 0;
|
|
return 0;
|
|
ipw_send_disassociate(data, 0);
|
|
ipw_send_disassociate(data, 0);
|
|
|
|
+ netif_carrier_off(priv->net_dev);
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -10190,6 +10191,9 @@ static int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb,
|
|
u16 remaining_bytes;
|
|
u16 remaining_bytes;
|
|
int fc;
|
|
int fc;
|
|
|
|
|
|
|
|
+ if (!(priv->status & STATUS_ASSOCIATED))
|
|
|
|
+ goto drop;
|
|
|
|
+
|
|
hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl));
|
|
hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl));
|
|
switch (priv->ieee->iw_mode) {
|
|
switch (priv->ieee->iw_mode) {
|
|
case IW_MODE_ADHOC:
|
|
case IW_MODE_ADHOC:
|