Revert "swiotlb: fix info leak with DMA_FROM_DEVICE"
This reverts commit d4d975e792
.
Upstream had a follow-up fix, revert, and a semi-reverted-revert.
Instead of going through this chain which is more painful to backport,
I'm just going to revert this original commit and pick the final one.
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
fe5ac3da50
commit
e2cfa7b093
@@ -130,11 +130,3 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
|
|||||||
subsystem that the buffer is fully accessible at the elevated privilege
|
subsystem that the buffer is fully accessible at the elevated privilege
|
||||||
level (and ideally inaccessible or at least read-only at the
|
level (and ideally inaccessible or at least read-only at the
|
||||||
lesser-privileged levels).
|
lesser-privileged levels).
|
||||||
|
|
||||||
DMA_ATTR_OVERWRITE
|
|
||||||
------------------
|
|
||||||
|
|
||||||
This is a hint to the DMA-mapping subsystem that the device is expected to
|
|
||||||
overwrite the entire mapped size, thus the caller does not require any of the
|
|
||||||
previous buffer contents to be preserved. This allows bounce-buffering
|
|
||||||
implementations to optimise DMA_FROM_DEVICE transfers.
|
|
||||||
|
@@ -61,14 +61,6 @@
|
|||||||
*/
|
*/
|
||||||
#define DMA_ATTR_PRIVILEGED (1UL << 9)
|
#define DMA_ATTR_PRIVILEGED (1UL << 9)
|
||||||
|
|
||||||
/*
|
|
||||||
* This is a hint to the DMA-mapping subsystem that the device is expected
|
|
||||||
* to overwrite the entire mapped size, thus the caller does not require any
|
|
||||||
* of the previous buffer contents to be preserved. This allows
|
|
||||||
* bounce-buffering implementations to optimise DMA_FROM_DEVICE transfers.
|
|
||||||
*/
|
|
||||||
#define DMA_ATTR_OVERWRITE (1UL << 10)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A dma_addr_t can hold any valid DMA or bus address for the platform. It can
|
* A dma_addr_t can hold any valid DMA or bus address for the platform. It can
|
||||||
* be given to a device to use as a DMA source or target. It is specific to a
|
* be given to a device to use as a DMA source or target. It is specific to a
|
||||||
|
@@ -598,8 +598,7 @@ phys_addr_t swiotlb_tbl_map_single(struct device *dev, phys_addr_t orig_addr,
|
|||||||
|
|
||||||
tlb_addr = slot_addr(io_tlb_start, index) + offset;
|
tlb_addr = slot_addr(io_tlb_start, index) + offset;
|
||||||
if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) &&
|
if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) &&
|
||||||
(!(attrs & DMA_ATTR_OVERWRITE) || dir == DMA_TO_DEVICE ||
|
(dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL))
|
||||||
dir == DMA_BIDIRECTIONAL))
|
|
||||||
swiotlb_bounce(orig_addr, tlb_addr, mapping_size, DMA_TO_DEVICE);
|
swiotlb_bounce(orig_addr, tlb_addr, mapping_size, DMA_TO_DEVICE);
|
||||||
return tlb_addr;
|
return tlb_addr;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user