Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dma-direct: don't over-decrypt memory
commit 4a37f3d upstream. The original x86 sev_alloc() only called set_memory_decrypted() on memory returned by alloc_pages_node(), so the page order calculation fell out of that logic. However, the common dma-direct code has several potential allocators, not all of which are guaranteed to round up the underlying allocation to a power-of-two size, so carrying over that calculation for the encryption/decryption size was a mistake. Fix it by rounding to a *number* of pages, rather than an order. Until recently there was an even worse interaction with DMA_DIRECT_REMAP where we could have ended up decrypting part of the next adjacent vmalloc area, only averted by no architecture actually supporting both configs at once. Don't ask how I found that one out... Fixes: c10f07a ("dma/direct: Handle force decryption for DMA coherent buffers in common code") Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: David Rientjes <rientjes@google.com> [ backport the functional change without all the prior refactoring ] Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- linux-5.10.124-mpi
- linux-5.10.125-mpi
- linux-5.10.126-mpi
- linux-5.10.127-mpi
- linux-5.10.128-mpi
- linux-5.10.129-mpi
- linux-5.10.130-mpi
- linux-5.10.131-mpi
- linux-5.10.132-mpi
- linux-5.10.133-mpi
- linux-5.10.134-mpi
- linux-5.10.135-mpi
- linux-5.10.136-mpi
- linux-5.10.137-mpi
- linux-5.10.138-mpi
- linux-5.10.139-mpi
- linux-5.10.140-mpi
- linux-5.10.141-mpi
- linux-5.10.142-mpi
- linux-5.10.143-mpi
- linux-5.10.144-mpi
- linux-5.10.145-mpi
- linux-5.10.146-mpi
- linux-5.10.147-mpi
- linux-5.10.148-mpi
- linux-5.10.149-mpi
- linux-5.10.150-mpi
- linux-5.10.151-mpi
- linux-5.10.152-mpi
- linux-5.10.153-mpi
- linux-5.10.154-mpi
- linux-5.10.155-mpi
- linux-5.10.156-mpi
- linux-5.10.157-mpi
- linux-5.10.158-mpi
- linux-5.10.159-mpi
- linux-5.10.160-mpi
- linux-5.10.161-mpi
- linux-5.10.162-mpi
- linux-5.10.163-mpi
- linux-5.10.164-mpi
- linux-5.10.165-mpi
- linux-5.10.166-mpi
- linux-5.10.167-mpi
- linux-5.10.168-mpi
- linux-5.10.169-mpi
- linux-5.10.170-mpi
- linux-5.10.171-mpi
- linux-5.10.172-mpi
- linux-5.10.173-mpi
- linux-5.10.174-mpi
- linux-5.10.175-mpi
- linux-5.10.176-mpi
- linux-5.10.177-mpi
- linux-5.10.178-mpi
- linux-5.10.179-mpi
- linux-5.10.180-mpi
- linux-5.10.181-mpi
- linux-5.10.182-mpi
- linux-5.10.183-mpi
- linux-5.10.184-mpi
- linux-5.10.185-mpi
- linux-5.10.186-mpi
- linux-5.10.187-mpi
- linux-5.10.188-mpi
- linux-5.10.189-mpi
- linux-5.10.190-mpi
- linux-5.10.191-mpi
- linux-5.10.192-mpi
- linux-5.10.193-mpi
- linux-5.10.194-mpi
- linux-5.10.195-mpi
- linux-5.10.196-mpi
- linux-5.10.197-mpi
- linux-5.10.198-mpi
- linux-5.10.199-mpi
- linux-5.10.200-mpi
- linux-5.10.201-mpi
- linux-5.10.202-mpi
- linux-5.10.203-mpi
- linux-5.10.204-mpi
- linux-5.10.205-mpi
- linux-5.10.206-mpi
- linux-5.10.207-mpi
- linux-5.10.208-mpi
- linux-5.10.209-mpi
- linux-5.10.210-mpi
- linux-5.10.211-mpi
- linux-5.10.212-mpi
- linux-5.10.213-mpi
- linux-5.10.214-mpi
- linux-5.10.215-mpi
- linux-5.10.216-mpi
- linux-5.10.217-mpi
- linux-5.10.218-mpi
- linux-5.10.219-mpi
- linux-5.10.220-mpi
- linux-5.10.221-mpi
- linux-5.10.222-mpi
- linux-5.10.223-mpi
- linux-5.10.224-mpi
- linux-5.10.225-mpi
- linux-5.10.226-mpi
- linux-5.10.227-mpi
- linux-5.10.228-mpi
- linux-5.10.229-mpi
- linux-5.10.230-mpi
- linux-5.10.231-mpi
- linux-5.10.232-mpi
- linux-5.10.233-mpi
- linux-5.10.234-mpi
- linux-5.10.235-mpi
- linux-5.10.236-mpi
- linux-5.10.237-mpi
- linux-5.10.238-mpi
- linux-5.10.239-mpi