From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933557AbdK2PuZ convert rfc822-to-8bit (ORCPT ); Wed, 29 Nov 2017 10:50:25 -0500 Received: from prv-mh.provo.novell.com ([137.65.248.74]:56118 "EHLO prv-mh.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933034AbdK2PuY (ORCPT ); Wed, 29 Nov 2017 10:50:24 -0500 Message-Id: <5A1EE54D020000780019335F@prv-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 14.2.2 Date: Wed, 29 Nov 2017 08:50:21 -0700 From: "Jan Beulich" To: "Govinda Tatti" Cc: , , , , "Juergen Gross" , Subject: Re: [Xen-devel] [PATCH V2] Xen/pciback: Implement PCI slot or bus reset with 'do_flr' SysFS attribute References: <20171108230654.2981-1-Govinda.Tatti@Oracle.COM> <5A0424B7020000780018D6FA@prv-mh.provo.novell.com> In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >>> On 29.11.17 at 16:37, wrote: > On 11/9/2017 2:49 AM, Jan Beulich wrote: >>>>> On 09.11.17 at 00:06, wrote: >>> +static int pcistub_reset_dev(struct pci_dev *dev) >>> +{ >>> + struct xen_pcibk_dev_data *dev_data; >>> + bool slot = false, bus = false; >>> + struct pcistub_args arg = {}; >>> + >>> + if (!dev) >>> + return -EINVAL; >>> + >>> + dev_dbg(&dev->dev, "[%s]\n", __func__); >>> + >>> + if (!pci_probe_reset_slot(dev->slot)) >>> + slot = true; >>> + else if ((!pci_probe_reset_bus(dev->bus)) && >>> + (!pci_is_root_bus(dev->bus))) >>> + bus = true; >>> + >>> + if (!bus && !slot) >>> + return -EOPNOTSUPP; >>> + >>> + /* >>> + * Make sure all devices on this bus are owned by the >>> + * PCI backend so that we can safely reset the whole bus. >>> + */ >> Is that really the case when you mean to do a slot reset? It was for >> a reason that I had asked about a missing "else" in v1 review, >> rather than questioning the conditional around the logic. > > In the case of bus or slot reset, our goal is to reset connected PCIe > fabric/card/endpoint. > The connected card/endpoint can be multi-function device. So, same > walk-through and checking > is needed irrespective of type of reset being used. I don't follow: The scope of other devices/functions possibly affected by a reset depends on the type of reset, doesn't it? Jan