qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH RESEND v2 00/16] hw: Let DMA/PCI API take MemTxAttrs argument


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH RESEND v2 00/16] hw: Let DMA/PCI API take MemTxAttrs argument and propagate MemTxResult
Date: Fri, 23 Oct 2020 17:09:52 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1

Hi Paolo,

On 10/22/20 4:44 PM, Philippe Mathieu-Daudé wrote:
ping?

In case the rationale is not clear, the motivation
for this series is to make the API more robust to
enforce correct use by the consumers.

Currently the MemTxResult return value is not
propagated, so lost.

If adding the MemTxAttrs argument could introduce
security issues and you need more time to consider
this change, I can repost only the MemTxResult
propagation patches, and we'll discuss the MemTxAttrs
after the 5.2 release.

Laszlo Ersek pointed me to commit f794aa4a2fd
("target-i386: introduce cpu_get_mem_attrs") to
understand how MemTxAttrs is used by SMM on X86.

From the review comment from Edgar in v1, I understand
there should not be security issues with the current
codebase.
https://www.mail-archive.com/qemu-block@nongnu.org/msg74077.html

Regards,

Phil.


On 10/1/20 7:25 PM, Philippe Mathieu-Daudé wrote:
This is a respin of:

"dma: Let the DMA API take MemTxAttrs argument and propagate MemTxResult"
https://lists.gnu.org/archive/html/qemu-devel/2020-09/msg02048.html

and:
"pci: Let PCI DMA API functions propagate a MemTxResult"
https://lists.gnu.org/archive/html/qemu-devel/2020-09/msg02048.html

(resent using correct git-profile).

The DMA API propagates MemTxResult:
- MEMTX_OK,
- MEMTX_device_ERROR,
- MEMTX_DECODE_ERROR.

Let the PCI DMA API propagate them, as they are
clearer than an undocumented 'int'.

Klaus Jensen (1):
   pci: pass along the return value of dma_memory_rw

Philippe Mathieu-Daudé (15):
   docs/devel/loads-stores: Add regexp for DMA functions
   dma: Document address_space_map/address_space_unmap() prototypes
   dma: Let dma_memory_set() propagate MemTxResult
   dma: Let dma_memory_rw() propagate MemTxResult
   dma: Let dma_memory_read() propagate MemTxResult
   dma: Let dma_memory_write() propagate MemTxResult
   dma: Let dma_memory_valid() take MemTxAttrs argument
   dma: Let dma_memory_set() take MemTxAttrs argument
   dma: Let dma_memory_rw_relaxed() take MemTxAttrs argument
   dma: Let dma_memory_rw() take MemTxAttrs argument
   dma: Let dma_memory_read/write() take MemTxAttrs argument
   dma: Let dma_memory_map() take MemTxAttrs argument
   pci: Let pci_dma_rw() propagate MemTxResult
   pci: Let pci_dma_read() propagate MemTxResult
   pci: Let pci_dma_write() propagate MemTxResult




reply via email to

[Prev in Thread] Current Thread [Next in Thread]