[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
- [PATCH RESEND v2 09/16] dma: Let dma_memory_set() take MemTxAttrs argument, (continued)
- [PATCH RESEND v2 09/16] dma: Let dma_memory_set() take MemTxAttrs argument, Philippe Mathieu-Daudé, 2020/10/01
- [PATCH RESEND v2 08/16] dma: Let dma_memory_valid() take MemTxAttrs argument, Philippe Mathieu-Daudé, 2020/10/01
- [PATCH RESEND v2 10/16] dma: Let dma_memory_rw_relaxed() take MemTxAttrs argument, Philippe Mathieu-Daudé, 2020/10/01
- [PATCH RESEND v2 11/16] dma: Let dma_memory_rw() take MemTxAttrs argument, Philippe Mathieu-Daudé, 2020/10/01
- [PATCH RESEND v2 13/16] dma: Let dma_memory_map() take MemTxAttrs argument, Philippe Mathieu-Daudé, 2020/10/01
- [PATCH RESEND v2 12/16] dma: Let dma_memory_read/write() take MemTxAttrs argument, Philippe Mathieu-Daudé, 2020/10/01
- [PATCH RESEND v2 15/16] pci: Let pci_dma_read() propagate MemTxResult, Philippe Mathieu-Daudé, 2020/10/01
- [PATCH RESEND v2 16/16] pci: Let pci_dma_write() propagate MemTxResult, Philippe Mathieu-Daudé, 2020/10/01
- [PATCH RESEND v2 14/16] pci: Let pci_dma_rw() propagate MemTxResult, Philippe Mathieu-Daudé, 2020/10/01
- Re: [PATCH RESEND v2 00/16] hw: Let DMA/PCI API take MemTxAttrs argument and propagate MemTxResult, Philippe Mathieu-Daudé, 2020/10/22
- Re: [PATCH RESEND v2 00/16] hw: Let DMA/PCI API take MemTxAttrs argument and propagate MemTxResult,
Philippe Mathieu-Daudé <=