qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 4/7] pcie_aer: expose pcie_aer_msg() interfac


From: Chen Fan
Subject: Re: [Qemu-devel] [PATCH v5 4/7] pcie_aer: expose pcie_aer_msg() interface
Date: Thu, 19 Mar 2015 09:33:22 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0


On 03/18/2015 09:29 PM, Michael S. Tsirkin wrote:
On Thu, Mar 12, 2015 at 06:23:56PM +0800, Chen Fan wrote:
For vfio device, we need to propagate the aer error to
Guest OS. we use the pcie_aer_msg() to send aer error
to guest.

Signed-off-by: Chen Fan <address@hidden>
Interesting.
pcie_aer_inject_error was intended as an interface to
send errors to guest.
For example, pcie_aer_msg does not handle the log at all.
Why do you use the lower-level pcie_aer_msg?
because if the AER error comes from physical device,
the error information is located in physical device space,
so we only need to notify guest the error occurs, then
guest should collect the error from the real device.

but pcie_aer_inject_error is to inject the error to device
virtual space(dev->config). we seem don't need to do that
for physical aer error occur.

Thanks,
Chen


---
  hw/pci/pcie_aer.c         | 2 +-
  include/hw/pci/pcie_aer.h | 1 +
  2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/hw/pci/pcie_aer.c b/hw/pci/pcie_aer.c
index 71045eb..f2d5d13 100644
--- a/hw/pci/pcie_aer.c
+++ b/hw/pci/pcie_aer.c
@@ -370,7 +370,7 @@ static void pcie_aer_msg_root_port(PCIDevice *dev, const 
PCIEAERMsg *msg)
   *
   * Walk up the bus tree from the device, propagate the error message.
   */
-static void pcie_aer_msg(PCIDevice *dev, const PCIEAERMsg *msg)
+void pcie_aer_msg(PCIDevice *dev, const PCIEAERMsg *msg)
  {
      uint8_t type;
diff --git a/include/hw/pci/pcie_aer.h b/include/hw/pci/pcie_aer.h
index a4cc6f3..80cba7b 100644
--- a/include/hw/pci/pcie_aer.h
+++ b/include/hw/pci/pcie_aer.h
@@ -102,5 +102,6 @@ void pcie_aer_root_write_config(PCIDevice *dev,
/* error injection */
  int pcie_aer_inject_error(PCIDevice *dev, const PCIEAERErr *err);
+void pcie_aer_msg(PCIDevice *dev, const PCIEAERMsg *msg);
#endif /* QEMU_PCIE_AER_H */
--
1.9.3

.





reply via email to

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