Jason, Can you take a look at the patch and test it? I am not sure how the tip of your git looks like but you can make changes easily by looking at the patch. Thanks, Abhijeet On Tue, 2009-03-10 at 06:10 -0700, Jason Andryuk wrote: > > I am finding it hard to keep track of things as what works and what does > > not work appears to shift. I did install a 64bit system in the hopes of > > reproducing your issue but could not with a basic open connect. How do > > you connect to the AP? Please provide details that you think will enable > > me to reproduce. > > I am trying to connect to an unencrypted 802.11b AP. > > Back in January, after first encountering the BUG, I attempted a git > bisect, but I ran into problems. > > From earlier git bisect attempts, I found commit > "738910c064ff461051cd37e17199f270ff88a9a3 iwl3945: use rx queue > management infrastructure from iwlcore" is the first to trigger the > original BUG_ON. > > "commit cbd8b90ffd8a321ffb2a705733729f0d5ebb20f9 iwl3945: > iwl3945_queue and iwl3945_channel_info replacement" worked > successfully. > > Unfortunately, the conversion of iwl3945 leaves the driver inoperable > at many places between the two commits above, so a bisect fails on > account of other issues. I have been spending time progressing from > cbd8b90f... to 738910c0... and fixing issues as encountered. > Following the commits on this page, > http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=shortlog;h=738910c064ff461051cd37e17199f270ff88a9a3 > , I am trying to get from "cbd8b90ffd8a321ffb2a705733729f0d5ebb20f9 > iwl3945: iwl3945_queue and iwl3945_channel_info replacement" to the > top. > > While doing that, I have to fix errors to get the driver functional. > > Basically, I am doing a manual bisect where I have to fix the errors > at each stage. But it isn't truly a bisect as I am progressing from > cbd8b90f... to 738910c0... > > On Tue, Mar 10, 2009 at 1:04 AM, reinette chatre > <reinette.chatre@xxxxxxxxx> wrote: > > Hi Jason, > > > > On Mon, 2009-03-09 at 18:40 -0700, Jason Andryuk wrote: > >> I thought I had made a big breakthrough when I found the solution to > >> getting > >> "iwlwifi: use iwl_cmd instead of iwl3945_cmd" > >> bb64785ad94d575fe4f5f9e69f4f6c0b24e9905d to work. Then I discovered > >> that casting to iwl3945_tx_cmd was fixed later by "iwl3945: use > >> iwl3945_tx_cmd instead of iwl_tx_cmd" fadd267e... > > > > > > Does this mean if you apply commit fadd267e on top of > > bb64785ad94d575fe4f5f9e69f4f6c0b24e9905d then things work? > > No. My patch, which is basically fadd267e..., completes the > transition of bb64785ad94d575fe4f5f9e69f4f6c0b24e9905d and allows the > driver to work at *that* stage. > bb64785ad94d575fe4f5f9e69f4f6c0b24e9905d and fadd267e should have been > one commit. > > >> > >> However, with this new knowledge, I was able to get farther. > >> > >> Using my iwl3945_tx_cmd conversion patch, > > > > Is this the last patch you emailed? > > I don't have the patch in front of me, but it is basically fadd267e > > >> a patch for allocating rb_stts > > It is basically the reverse of this patch from Sam Ortiz *I think*. > Again, I don't have it in front of me. Commit " > c2a0aa3cb733452e749727680e380dca6cc10a68 iwl3945: use iwl_rb_status" > has a NULL pointer dereference since it doesn't allocate rb_stts. > > --- > drivers/net/wireless/iwlwifi/iwl-rx.c | 8 -------- > 1 file changed, 8 deletions(-) > > Index: wireless-testing/drivers/net/wireless/iwlwifi/iwl-rx.c > =================================================================== > --- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-rx.c > 2009-01-27 17:13:46.000000000 +0100 > +++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-rx.c > 2009-01-27 17:15:46.000000000 +0100 > @@ -346,11 +346,6 @@ int iwl_rx_queue_alloc(struct iwl_priv * > if (!rxq->bd) > goto err_bd; > > - rxq->rb_stts = pci_alloc_consistent(dev, sizeof(struct iwl_rb_status), > - &rxq->rb_stts_dma); > - if (!rxq->rb_stts) > - goto err_rb; > - > /* Fill the rx_used queue with _all_ of the Rx buffers */ > for (i = 0; i < RX_FREE_BUFFERS + RX_QUEUE_SIZE; i++) > list_add_tail(&rxq->pool[i].list, &rxq->rx_used); > @@ -362,9 +357,6 @@ int iwl_rx_queue_alloc(struct iwl_priv * > rxq->need_update = 0; > return 0; > > -err_rb: > - pci_free_consistent(priv->pci_dev, 4 * RX_QUEUE_SIZE, rxq->bd, > - rxq->dma_addr); > err_bd: > return -ENOMEM; > } > > >> and a patch for the BUG_ON -> WARN_ON, > > > > ... and this one > > This is your patch from January 9 > > diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c > b/drivers/net/wireless/iwlwifi/iwl3945-base.c > index a23d51d..09c1c8d 100644 > --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c > +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c > @@ -3118,7 +3118,14 @@ static void iwl3945_tx_cmd_complete(struct > iwl_priv *priv, > int cmd_index; > struct iwl_cmd *cmd; > > - BUG_ON(txq_id != IWL_CMD_QUEUE_NUM); > + if (WARN(txq_id != IWL_CMD_QUEUE_NUM, > + "wrong command queue %d, sequence 0x%X readp=%d writep=%d\n", > + txq_id, sequence, > + priv->txq[IWL_CMD_QUEUE_NUM].q.read_ptr, > + priv->txq[IWL_CMD_QUEUE_NUM].q.write_ptr)) { > + iwl_print_hex_dump(priv, IWL_DL_INFO , rxb, 32); > + return; > + } > > cmd_index = get_cmd_index(&priv->txq[IWL_CMD_QUEUE_NUM].q, index, huge); > cmd = priv->txq[IWL_CMD_QUEUE_NUM].cmd[cmd_index]; > > > >> I was able to narrow down commit > >> "iwl3945: sync tx queue data structure with iwlagn" > >> ff5010c3e12f1d0da27a5f871c2e3d5333dfbe2f as the one that starts > >> introducing Microcode SW errors. > >> > > > > I am not sure how your repository looks at this stage. What is your > > latest wireless-testing commit and what patches do you have on top of > > it? > > The repo looks like this: > git checkout -f ff5010c3e12f1d0da27a5f871c2e3d5333dfbe2f > patch -p1 < ../iwl-tx-cmd-conversion.patch > patch -p1 < ../iwl-rb_stts.patch > patch -p1 < ../iwl-BUG-to-WARN.patch > > The previous commit with the above patches works. > > >> I tried adding in Reinette's iwl3945_hw_txq_free_tfd pci_unmap_single > >> patch from earlier, but it did not fix the problem. > >> > >> Would TX debugging output be more helpful? > > > > You log below has a new error (similar to what you note in your next > > email). "Unsupported interface type 515". This is very strange and > > really looks like some corruption as this value is initialized with a > > macro during probe. Could you enable mac and info debugging also (add > > 0x3 to your current debug flags)? This code has also changed a bit since > > commit bb64785ad94d575fe4f5f9e69f4f6c0b24e9905d. > > > > You can also put a dump_stack() in iwl3945_connection_init_rx_config to > > see where the call comes from and then trace the value of mode to see > > where it is set to 515 ... it is supposed to be 2 > > (NL80211_IFTYPE_STATION). > > It may be a little while before I can get back to this. > > Thanks for looking into it. > > Jason > -- > 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
Attachment:
0001-iwl3945-use-iwl_tx_cmd_complete.patch
Description: application/mbox