From: "Jan Beulich" <JBeulich@suse.com>
To: "Govinda Tatti" <Govinda.Tatti@Oracle.COM>, <konrad.wilk@Oracle.COM>
Cc: <xen-devel@lists.xenproject.org>, <boris.ostrovsky@Oracle.COM>,
"Juergen Gross" <jgross@suse.com>, <linux-kernel@vger.kernel.org>
Subject: Re: [Xen-devel] [PATCH] Xen/pciback: Implement PCI slot or bus reset with 'do_flr' SysFS attribute
Date: Tue, 07 Nov 2017 07:40:35 -0700 [thread overview]
Message-ID: <5A01D3F3020000780018CE86@prv-mh.provo.novell.com> (raw)
In-Reply-To: <20171106174842.20276-1-Govinda.Tatti@Oracle.COM>
>>> On 06.11.17 at 18:48, <Govinda.Tatti@Oracle.COM> wrote:
> --- a/Documentation/ABI/testing/sysfs-driver-pciback
> +++ b/Documentation/ABI/testing/sysfs-driver-pciback
> @@ -11,3 +11,15 @@ Description:
> #echo 00:19.0-E0:2:FF > /sys/bus/pci/drivers/pciback/quirks
> will allow the guest to read and write to the configuration
> register 0x0E.
> +
> +What: /sys/bus/pci/drivers/pciback/do_flr
> +Date: Nov 2017
> +KernelVersion: 4.15
> +Contact: xen-devel@lists.xenproject.org
> +Description:
> + An option to perform a slot or bus reset when a PCI device
> + is owned by Xen PCI backend. Writing a string of DDDD:BB:DD.F
> + will cause the pciback driver to perform a slot or bus reset
> + if the device supports it. It also checks to make sure that
> + all of the devices under the bridge are owned by Xen PCI
> + backend.
Why do you name this "do_flr" when you don't even try FLR, but
go to slot or then bus reset right away.
> +static int pcistub_reset_dev(struct pci_dev *dev)
> +{
> + struct xen_pcibk_dev_data *dev_data;
> + bool slot = false, bus = false;
> +
> + 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)) {
> + /* We won't attempt to reset a root bridge. */
> + if (!pci_is_root_bus(dev->bus))
> + bus = true;
> + }
> +
> + if (!bus && !slot)
> + return -EOPNOTSUPP;
> +
> + if (!slot) {
> + struct pcistub_args arg = { .dev = NULL, .dcount = 0 };
Neither of the two initializers is really needed - just {} will do.
> + /*
> + * Make sure all devices on this bus are owned by the
> + * PCI backend so that we can safely reset the whole bus.
> + */
> + pci_walk_bus(dev->bus, pcistub_search_dev, &arg);
> +
> + /* All devices under the bus should be part of pcistub! */
> + if (arg.dev) {
> + dev_err(&dev->dev, "%s device on the bus is not owned by pcistub\n",
> + pci_name(arg.dev));
I think "device" is superfluous here, while "the bus" could do with
replacing by something actually identifying the bus.
> + return -EBUSY;
> + }
> +
> + dev_dbg(&dev->dev, "pcistub owns %d devices on the bus\n",
> + arg.dcount);
Same here for "the bus", provided this log message is useful in the
first place.
> + }
Aren't you missing an "else" here? Aiui in the "slot" case it may
still be multiple devices/functions which are affected.
Jan
next prev parent reply other threads:[~2017-11-07 14:40 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-06 17:48 Govinda Tatti
2017-11-07 11:21 ` [Xen-devel] " Roger Pau Monné
2017-11-08 15:00 ` Govinda Tatti
2017-11-08 15:09 ` Juergen Gross
2017-11-08 15:34 ` Govinda Tatti
2017-11-07 14:40 ` Jan Beulich [this message]
2017-11-08 15:44 ` Govinda Tatti
2017-11-08 17:38 ` Pasi Kärkkäinen
2017-11-08 23:26 ` Govinda Tatti
2017-11-09 8:28 ` Jan Beulich
2017-11-29 15:08 ` Govinda Tatti
2017-11-29 15:35 ` Jan Beulich
2017-11-29 16:29 ` Konrad Rzeszutek Wilk
2017-11-29 16:40 ` Jan Beulich
2017-11-29 19:26 ` Konrad Rzeszutek Wilk
2017-11-29 19:44 ` Govinda Tatti
2017-11-30 8:29 ` Jan Beulich
2017-11-30 13:55 ` Govinda Tatti
2017-11-29 17:25 ` Govinda Tatti
2017-11-29 18:05 ` Pasi Kärkkäinen
2017-11-29 19:51 ` Govinda Tatti
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5A01D3F3020000780018CE86@prv-mh.provo.novell.com \
--to=jbeulich@suse.com \
--cc=Govinda.Tatti@Oracle.COM \
--cc=boris.ostrovsky@Oracle.COM \
--cc=jgross@suse.com \
--cc=konrad.wilk@Oracle.COM \
--cc=linux-kernel@vger.kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®