It seems like this problem is (yet again) caused by lack of cache flushing. The attached patch adds a dma_cache_wback_inv to pci_map_sg in pci.h to the if fork in which sg->address is not set. This fixes my problem. Can someone with commit access please apply this patch? /Brian