+9
−0
+14
−0
+9
−0
Loading
Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more
The memshare driver currently uses CMA memory for its usecases. This is problematic, as CMA memory has a normal cached mapping in the kernel, which allows for speculative access. This makes it possible for a speculative cache-line fill to occur, prior to the memory being unmapped from the stage-2 page tables of Linux, as well as XPU protected. The cache-line can later be evicted, while the memory is still XPU protected. This results in a write to the system cache, which is blocked by the XPU, resulting in an XPU violation. Given the nature of the memshare usecases (i.e. the memory is allocated once, and never given back to Linux), move the memshare driver to using a carveout. Using a carveout makes it so that there are no normal cached mappings in the kernel for the memory, which prevents speculative cache-line fills from occurring. Change-Id: I97e2fe144c8fde364ecd40fdd181a881ca93c4b1