On 30/07/2020 09:41, Stefano Garzarella wrote:
On Thu, Jul 30, 2020 at 12:17:32AM +0200, Emanuele Giuseppe Esposito wrote:
pci_dma_rw currently always returns 0, regardless
of the result of dma_memory_rw. Adjusted to return
the correct value.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuse...@gmail.com>
---
  include/hw/pci/pci.h | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index c1bf7d5356..41c4ab5932 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -787,8 +787,7 @@ static inline AddressSpace *pci_get_address_space(PCIDevice 
*dev)
  static inline int pci_dma_rw(PCIDevice *dev, dma_addr_t addr,
                               void *buf, dma_addr_t len, DMADirection dir)
  {
-    dma_memory_rw(pci_get_address_space(dev), addr, buf, len, dir);
-    return 0;
+    return dma_memory_rw(pci_get_address_space(dev), addr, buf, len, dir);
  }

I think it's a left over from when we used "void cpu_physical_memory_rw()".

I agree that it is better to return the dma_memory_rw() return value, but
at first look, no one seems to check the return value of pci_dma_rw(),
pci_dma_read(), andpci_dma_write().

Should we make them void?

I noticed that nobody checks the return of those functions, but I think checking for possible error is always useful. I am using the edu device and clearly doing something wrong since with this fix I discovered that the pci_dma_read call returns nonzero.

Keeping the function as it is or void would make it harder to spot such errors in future.

Thank you,
Emanuele



Anyway, for this patch:

Reviewed-by: Stefano Garzarella <sgarz...@redhat.com>

Thanks,
Stefano


Reply via email to