|
@@ -581,12 +581,15 @@ swiotlb_full(struct device *dev, size_t size, int dir, int do_panic)
|
|
|
printk(KERN_ERR "DMA: Out of SW-IOMMU space for %zu bytes at "
|
|
|
"device %s\n", size, dev ? dev_name(dev) : "?");
|
|
|
|
|
|
- if (size > io_tlb_overflow && do_panic) {
|
|
|
- if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL)
|
|
|
- panic("DMA: Memory would be corrupted\n");
|
|
|
- if (dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL)
|
|
|
- panic("DMA: Random memory would be DMAed\n");
|
|
|
- }
|
|
|
+ if (size <= io_tlb_overflow || !do_panic)
|
|
|
+ return;
|
|
|
+
|
|
|
+ if (dir == DMA_BIDIRECTIONAL)
|
|
|
+ panic("DMA: Random memory could be DMA accessed\n");
|
|
|
+ if (dir == DMA_FROM_DEVICE)
|
|
|
+ panic("DMA: Random memory could be DMA written\n");
|
|
|
+ if (dir == DMA_TO_DEVICE)
|
|
|
+ panic("DMA: Random memory could be DMA read\n");
|
|
|
}
|
|
|
|
|
|
/*
|