Search Linux Wireless

Re: [PATCH] Re: Problem with Kernel Oops in ipw2200

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2008-11-17 at 02:48 -0800, Frank Seidel wrote:
> From: Zhu Yi <yi.zhu@xxxxxxxxx>
> 
> Fixes Oops in ipw2200:ipw_tx_skb when pinging through
> a WPA enterprise connection.
> 
> Signed-off-by: Zhu Yi <yi.zhu@xxxxxxxxx>
> Tested-by: Frank Seidel <fseidel@xxxxxxx>
> Signed-off-by: Ffrank Seidel <fseidel@xxxxxxx>
> 
> ---
>  drivers/net/wireless/ipw2200.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> --- a/drivers/net/wireless/ipw2200.c
> +++ b/drivers/net/wireless/ipw2200.c
> @@ -10190,6 +10190,11 @@ static int ipw_tx_skb(struct ipw_priv *p
>         u16 remaining_bytes;
>         int fc;
> 
> +       if (!(priv->status & STATUS_ASSOCIATED)) {
> +               IPW_DEBUG_TX("Tx attempt while not associated.\n");
> +               goto drop;
> +       }
> +
>         hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl));
>         switch (priv->ieee->iw_mode) {
>         case IW_MODE_ADHOC:
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Frank,

The patch above was not accepted. Would it be possible for you to try
the patch below instead? Thank you very much.

diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c
b/drivers/net/wireless/ipw2x00/ipw2200.c
index c73173a..768bbde 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
@@ -189,6 +189,7 @@ static int ipw_up(struct ipw_priv *);
 static void ipw_bg_up(struct work_struct *work);
 static void ipw_down(struct ipw_priv *);
 static void ipw_bg_down(struct work_struct *work);
+static void ipw_link_down(struct ipw_priv *priv);
 static int ipw_config(struct ipw_priv *);
 static int init_supported_rates(struct ipw_priv *priv,
 				struct ipw_supported_rates *prates);
@@ -3897,6 +3898,7 @@ static int ipw_disassociate(void *data)
 	if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING)))
 		return 0;
 	ipw_send_disassociate(data, 0);
+	ipw_link_down(data);
 	return 1;
 }
 




--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux