Index: wireless-testing/drivers/net/wireless/b43/main.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/main.c +++ wireless-testing/drivers/net/wireless/b43/main.c @@ -1797,12 +1797,20 @@ static void b43_do_interrupt_thread(stru if (unlikely(merged_dma_reason & (B43_DMAIRQ_FATALMASK | B43_DMAIRQ_NONFATALMASK))) { if (merged_dma_reason & B43_DMAIRQ_FATALMASK) { + u16 command; + struct ssb_bus *bus = dev->dev->bus; + struct pci_dev *pdev = (bus->bustype == + SSB_BUSTYPE_PCI) ? bus->host_pci : NULL; b43err(dev->wl, "Fatal DMA error: " "0x%08X, 0x%08X, 0x%08X, " "0x%08X, 0x%08X, 0x%08X\n", dma_reason[0], dma_reason[1], dma_reason[2], dma_reason[3], dma_reason[4], dma_reason[5]); + if (pdev) { + pci_read_config_word(pdev, 0x04, &command); + b43err(dev->wl, "Contents of PCI command 0x%x\n", command); + } b43err(dev->wl, "This device does not support DMA " "on your system. It will now be switched to PIO.\n"); /* Fall back to PIO transfers if we get fatal DMA errors! */