Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
virtio: force vring descriptors to be allocated from lowmem
Virtio devices may attempt to add descriptors to a virtqueue from atomic context using GFP_ATOMIC allocation. This is problematic because such allocations can fall outside of the lowmem mapping, causing virt_to_phys to report bogus physical addresses which are subsequently passed to userspace via the buffers for the virtual device. This patch masks out __GFP_HIGH and __GFP_HIGHMEM from the requested flags when allocating descriptors for a virtqueue. If an atomic allocation is requested and later fails, we will return -ENOSPC which will be handled by the driver. Cc: [email protected] Cc: Sasha Levin <[email protected]> Signed-off-by: Will Deacon <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
- Loading branch information