From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754014AbdCWCLf (ORCPT ); Wed, 22 Mar 2017 22:11:35 -0400 Received: from cn.fujitsu.com ([59.151.112.132]:32641 "EHLO heian.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751333AbdCWCL1 (ORCPT ); Wed, 22 Mar 2017 22:11:27 -0400 X-IronPort-AV: E=Sophos;i="5.22,518,1449504000"; d="scan'208";a="16887044" Subject: Re: [PATCH v5] vfio error recovery: kernel support To: "Michael S. Tsirkin" References: <1490178863-14806-1-git-send-email-caoj.fnst@cn.fujitsu.com> <20170322143058-mutt-send-email-mst@kernel.org> CC: , , , , From: Cao jin Message-ID: <58D330D7.3090908@cn.fujitsu.com> Date: Thu, 23 Mar 2017 10:20:07 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <20170322143058-mutt-send-email-mst@kernel.org> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.167.226.69] X-yoursite-MailScanner-ID: 6C81A47C4E9B.A816B X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: caoj.fnst@cn.fujitsu.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/22/2017 09:10 PM, Michael S. Tsirkin wrote: > Minor comments on commit log below. > > On Wed, Mar 22, 2017 at 06:34:23PM +0800, Cao jin wrote: >> From: "Michael S. Tsirkin" >> > >> Signed-off-by: Michael S. Tsirkin >> Signed-off-by: Cao jin >> --- >> >> v5 changelog: >> 1. Add another new eventfd passive_reset_trigger & the boilerplate code, >> used in slot_reset. Add comment for slot_reset(). >> 2. Rewrite the commit log. >> >> drivers/vfio/pci/vfio_pci.c | 49 +++++++++++++++++++++++++++++++++++-- >> drivers/vfio/pci/vfio_pci_intrs.c | 38 ++++++++++++++++++++++++++++ >> drivers/vfio/pci/vfio_pci_private.h | 2 ++ >> include/uapi/linux/vfio.h | 2 ++ >> 4 files changed, 89 insertions(+), 2 deletions(-) >> > > >> +static pci_ers_result_t vfio_pci_aer_slot_reset(struct pci_dev *pdev) >> +{ >> + struct vfio_pci_device *vdev; >> + struct vfio_device *device; >> + static pci_ers_result_t err = PCI_ERS_RESULT_NONE; >> + >> + device = vfio_device_get_from_dev(&pdev->dev); >> + if (!device) >> + goto err_dev; >> + >> + vdev = vfio_device_data(device); >> + if (!vdev) >> + goto err_data; >> + >> + mutex_lock(&vdev->igate); >> + >> + if (vdev->passive_reset_trigger) >> + eventfd_signal(vdev->passive_reset_trigger, 1); >> + else if (vdev->err_trigger) >> + eventfd_signal(vdev->err_trigger, 1); > > why is this chunk here? why not just do > > if (vdev->passive_reset_trigger) > eventfd_signal(vdev->passive_reset_trigger, 1); > > without a fallback? > > I thought it is one way of "passing maximum info to userspace and let it decide." -- Sincerely, Cao jin