On Tue, Nov 18, 2008 at 11:43 AM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Tue, 2008-11-18 at 01:47 +0100, Johannes Berg wrote: > >> So I dug deeper into the DMA problems I had with iwlagn and a kind soul >> helped me in that he said something about pci-e alignment and mentioned >> the iwl_rx_allocate function to check for crossing 4KB boundaries. Since >> there's 8KB A-MPDU support, crossing 4k boundaries didn't seem like >> something the device would fail with > > Come to think of it, maybe it does. One common failure case seems to be > "this goes wrong with an 11n AP, but not on a regular one", so one > explanation for that would be that the hardware designers expect the > driver to split up the DMA into multiple DMA descriptors at 4K > boundaries, but iwlagn uses only one and undefined behaviour results. > That's something you'll need to ask the HW designers though or look up > in the datasheet. You are off here. The constrain is just that address will fit in 32 bit register. I don't know why this constrain, but there is always a reason. We've assumed that allocations are on the page or cache boundaries I'm not who already assured me that this is the case. I actually haven't encountered this problem on X86_64 I even have the correct check. What I know there is difference in memory mapping in PPC64 as it has IOMMU. Hope this address the wrong command queue number bug but I'm not sure. There are other places with alignment requirement in the driver we probably need to address as well. Tomas -- 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