Re: [REVERT] be6b38bcb175613f239e0b302607db346472c6b6.v2.6.34-rc3-406 oops with 4965AGN wireless

From: Guy, Wey-Yi
Date: Thu Apr 08 2010 - 15:53:40 EST


Hi Jeff,


On Thu, 2010-04-08 at 12:42 -0700, Jeff Chua wrote:
>
> On Fri, Apr 9, 2010 at 4:24 AM, Guy, Wey-Yi <wey-yi.w.guy@xxxxxxxxx>
> wrote:
>
> > Maybe this patch looks better, if sched_rety and sta_id ==
>
> Wey,
>
> I've updated your patch and tested it. Wireless seems ok now.
>
> Please verify it and inform Linus once you sign-off on it.
>
>
> Thanks,
> Jeff
>
> --- a/drivers/net/wireless/iwlwifi/iwl-4965.c.org 2010-04-09 02:11:45.000000000 +0800
> +++ a/drivers/net/wireless/iwlwifi/iwl-4965.c 2010-04-09 03:33:43.000000000 +0800
> @@ -2012,10 +2012,15 @@
>
> if (txq->q.read_ptr != (scd_ssn & 0xff)) {
> index = iwl_queue_dec_wrap(scd_ssn & 0xff, txq->q.n_bd);
> - IWL_DEBUG_TX_REPLY(priv, "Retry scheduler reclaim scd_ssn "
> - "%d index %d\n", scd_ssn , index);
> + IWL_DEBUG_TX_REPLY(priv,
> + "Retry scheduler reclaim scd_ssn "
> + "%d index %d\n", scd_ssn , index);
> freed = iwl_tx_queue_reclaim(priv, txq_id, index);
> - iwl_free_tfds_in_queue(priv, sta_id, tid, freed);
> + if(qc)
> + iwl_free_tfds_in_queue(priv, sta_id, tid,
> + freed);
> + else if (sta_id == IWL_INVALID_STATION)
> + IWL_ERR(priv, "invalid station");
>
do not need to check sta_id == IWL_INVALID_STATION here since already
check before.
could you try my revised version of patch I send after my first attempt.
to make sure it works.

I attach here again in case you did not get it.

Thanks
Wey