* Alan Stern (stern@xxxxxxxxxxxxxxxxxxx) wrote: > Since using mem=4096M or GFP_DMA stopped the symptoms, it seems very > likely that a buffer is getting allocated above the 4 GB line and not > bounced or IOMMU-mapped correctly. > > David, do you have anything to suggest? Any ways to check for IOMMU or > related errors? Well if the IOMMU is enabled, dmesg will show you if you're getting DMA faults due to IOMMU. Doesn't sound like that's the case. > The problem, in short, is that USB audio doesn't work properly when > Pedro boots a 64-bit kernel on his 4-GB machine. With a 32-bit kernel > it works okay, and it also works if we use dma_alloc_coherent(). The > host controller is limited to 32-bit DMA, and the DMA addresses > generated by dma_map_single() appear to be normal. So dma_map_single is the case that's failing, but you think the mask is correct? What about the direction? > At the moment we don't even know if this is caused by a bug in the > kernel or a bug in Pedro's hardware. But he has observed the same > problem on two different machines, both using the ICH9 chipset. Is the IOMMU enabled? $ dmesg | grep -e DMAR -e IOMMU If it's on, you can boot w/out (intel_iommu=off) or in passthrough mode (intel_iommu=on iommu=pt) and see if that makes a difference. If it's not on (but there) you can enable it (intel_iommu=on) and look for DMA faults (pointing to driver bug). thanks, -chris -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html