From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45647) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YYPRh-0006Lc-V2 for qemu-devel@nongnu.org; Wed, 18 Mar 2015 21:40:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YYPRe-0004zw-OI for qemu-devel@nongnu.org; Wed, 18 Mar 2015 21:40:25 -0400 Received: from [59.151.112.132] (port=39163 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YYPRe-0004wx-D2 for qemu-devel@nongnu.org; Wed, 18 Mar 2015 21:40:22 -0400 Message-ID: <550A2762.8070709@cn.fujitsu.com> Date: Thu, 19 Mar 2015 09:33:22 +0800 From: Chen Fan MIME-Version: 1.0 References: <20150318132958.GA24259@redhat.com> In-Reply-To: <20150318132958.GA24259@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 4/7] pcie_aer: expose pcie_aer_msg() interface List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: izumi.taku@jp.fujitsu.com, alex.williamson@redhat.com, qemu-devel@nongnu.org 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 > 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 >> > . >