From: konrad@kernel.org
To: xen-devel@lists.xenproject.org, david.vrabel@citrix.com,
boris.ostrovsky@oracle.com, linux-kernel@vger.kernel.org
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: [PATCH v3 3/7] xen/pciback: Move the FLR code to a function.
Date: Tue, 8 Jul 2014 14:58:25 -0400 [thread overview]
Message-ID: <1404845909-13563-4-git-send-email-konrad@kernel.org> (raw)
In-Reply-To: <1404845909-13563-1-git-send-email-konrad@kernel.org>
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Moving the bulk of the code its own function to aid
in making the 'xen/pciback: implement PCI reset slot
or bus with 'do_flr' SysFS attribute' easier.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
drivers/xen/xen-pciback/pci_stub.c | 42 ++++++++++++++++++++++-------------
1 files changed, 26 insertions(+), 16 deletions(-)
diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index b1fb099..03badac 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -242,6 +242,31 @@ struct pci_dev *pcistub_get_pci_dev(struct xen_pcibk_device *pdev,
return found_dev;
}
+static void pcistub_reset_pci_dev(struct pci_dev *dev)
+{
+ /* This is OK - we are running from workqueue context
+ * and want to inhibit the user from fiddling with 'reset'
+ */
+
+ dev_dbg(&dev->dev, "resetting (FLR, D3, etc) the device\n");
+ /* We might be holding the PCI lock (see comment at the top of the
+ * function) - as such try lock and if we can't then don't worry -
+ * as either:
+ * - we are 'unbind' in which case 'pcistub_device_release' gets
+ * called which does the locked version of this.
+ * - the toolstack has the smarts to do it and has done the
+ * reset on SysFS before assigning this device to another guest.
+ */
+ pci_try_reset_function(dev);
+ pci_restore_state(dev);
+
+ /* This disables the device. */
+ xen_pcibk_reset_device(dev);
+
+ /* And cleanup up our emulated fields. */
+ xen_pcibk_config_reset_dev(dev);
+}
+
/*
* Called when:
* - XenBus state has been reconfigure (pci unplug). See xen_pcibk_remove_device
@@ -276,23 +301,8 @@ void pcistub_put_pci_dev(struct pci_dev *dev)
/* Cleanup our device
* (so it's ready for the next domain)
*/
+ pcistub_reset_pci_dev(dev);
- /* We might be holding the PCI lock (see comment at the top of the
- * function) - as such try lock and if we can't then don't worry -
- * as either:
- * - we are 'unbind' in which case 'pcistub_device_release' gets
- * called which does the locked version of this.
- * - the toolstack has the smarts to do it and has done the
- * reset on SysFS before assigning this device to another guest.
- */
- pci_try_reset_function(dev);
- pci_restore_state(dev);
-
- /* This disables the device. */
- xen_pcibk_reset_device(dev);
-
- /* And cleanup up our emulated fields. */
- xen_pcibk_config_reset_dev(dev);
xen_pcibk_config_free_dyn_fields(dev);
xen_unregister_device_domain_owner(dev);
--
1.7.7.6
WARNING: multiple messages have this Message-ID (diff)
From: konrad@kernel.org
To: xen-devel@lists.xenproject.org, david.vrabel@citrix.com,
boris.ostrovsky@oracle.com, linux-kernel@vger.kernel.org
Subject: [PATCH v3 3/7] xen/pciback: Move the FLR code to a function.
Date: Tue, 8 Jul 2014 14:58:25 -0400 [thread overview]
Message-ID: <1404845909-13563-4-git-send-email-konrad@kernel.org> (raw)
In-Reply-To: <1404845909-13563-1-git-send-email-konrad@kernel.org>
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Moving the bulk of the code its own function to aid
in making the 'xen/pciback: implement PCI reset slot
or bus with 'do_flr' SysFS attribute' easier.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
drivers/xen/xen-pciback/pci_stub.c | 42 ++++++++++++++++++++++-------------
1 files changed, 26 insertions(+), 16 deletions(-)
diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index b1fb099..03badac 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -242,6 +242,31 @@ struct pci_dev *pcistub_get_pci_dev(struct xen_pcibk_device *pdev,
return found_dev;
}
+static void pcistub_reset_pci_dev(struct pci_dev *dev)
+{
+ /* This is OK - we are running from workqueue context
+ * and want to inhibit the user from fiddling with 'reset'
+ */
+
+ dev_dbg(&dev->dev, "resetting (FLR, D3, etc) the device\n");
+ /* We might be holding the PCI lock (see comment at the top of the
+ * function) - as such try lock and if we can't then don't worry -
+ * as either:
+ * - we are 'unbind' in which case 'pcistub_device_release' gets
+ * called which does the locked version of this.
+ * - the toolstack has the smarts to do it and has done the
+ * reset on SysFS before assigning this device to another guest.
+ */
+ pci_try_reset_function(dev);
+ pci_restore_state(dev);
+
+ /* This disables the device. */
+ xen_pcibk_reset_device(dev);
+
+ /* And cleanup up our emulated fields. */
+ xen_pcibk_config_reset_dev(dev);
+}
+
/*
* Called when:
* - XenBus state has been reconfigure (pci unplug). See xen_pcibk_remove_device
@@ -276,23 +301,8 @@ void pcistub_put_pci_dev(struct pci_dev *dev)
/* Cleanup our device
* (so it's ready for the next domain)
*/
+ pcistub_reset_pci_dev(dev);
- /* We might be holding the PCI lock (see comment at the top of the
- * function) - as such try lock and if we can't then don't worry -
- * as either:
- * - we are 'unbind' in which case 'pcistub_device_release' gets
- * called which does the locked version of this.
- * - the toolstack has the smarts to do it and has done the
- * reset on SysFS before assigning this device to another guest.
- */
- pci_try_reset_function(dev);
- pci_restore_state(dev);
-
- /* This disables the device. */
- xen_pcibk_reset_device(dev);
-
- /* And cleanup up our emulated fields. */
- xen_pcibk_config_reset_dev(dev);
xen_pcibk_config_free_dyn_fields(dev);
xen_unregister_device_domain_owner(dev);
--
1.7.7.6
next prev parent reply other threads:[~2014-07-08 17:58 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-08 18:58 [PATCH] Xen PCIbackend support for slot and bus reset (v3) konrad
2014-07-08 18:58 ` [PATCH v3 1/7] xen-pciback: Document the various parameters and attributes in SysFS konrad
2014-07-08 18:58 ` konrad
2014-07-08 18:18 ` [Xen-devel] " Andrew Cooper
2014-07-08 18:18 ` Andrew Cooper
2014-07-09 12:17 ` David Vrabel
2014-07-09 12:17 ` [Xen-devel] " David Vrabel
2014-07-09 13:59 ` Konrad Rzeszutek Wilk
2014-07-09 14:05 ` Andrew Cooper
2014-07-09 14:05 ` [Xen-devel] " Andrew Cooper
2014-07-09 14:13 ` Konrad Rzeszutek Wilk
2014-07-09 14:22 ` Andrew Cooper
2014-07-09 14:25 ` Konrad Rzeszutek Wilk
2014-07-09 14:25 ` [Xen-devel] " Konrad Rzeszutek Wilk
2014-07-09 14:45 ` David Vrabel
2014-07-09 14:45 ` [Xen-devel] " David Vrabel
2014-07-09 14:47 ` Konrad Rzeszutek Wilk
2014-07-09 14:57 ` David Vrabel
2014-07-09 14:57 ` [Xen-devel] " David Vrabel
2014-07-09 15:11 ` Konrad Rzeszutek Wilk
2014-07-09 15:11 ` Konrad Rzeszutek Wilk
2014-07-09 14:47 ` Konrad Rzeszutek Wilk
2014-07-09 14:22 ` Andrew Cooper
2014-07-09 14:13 ` Konrad Rzeszutek Wilk
2014-07-09 13:59 ` Konrad Rzeszutek Wilk
2014-07-08 18:58 ` [PATCH v3 2/7] xen/pciback: Don't deadlock when unbinding konrad
2014-07-09 12:21 ` David Vrabel
2014-07-09 12:21 ` David Vrabel
2014-07-09 14:01 ` Konrad Rzeszutek Wilk
2014-07-09 14:01 ` Konrad Rzeszutek Wilk
2014-07-08 18:58 ` konrad
2014-07-08 18:58 ` konrad [this message]
2014-07-08 18:58 ` [PATCH v3 3/7] xen/pciback: Move the FLR code to a function konrad
2014-07-08 18:58 ` [PATCH v3 4/7] xen/pciback: Implement PCI reset slot or bus with 'do_flr' SysFS attribute konrad
2014-07-08 18:58 ` konrad
2014-07-08 18:02 ` David Vrabel
2014-07-08 18:02 ` David Vrabel
2014-07-08 18:46 ` Konrad Rzeszutek Wilk
2014-07-08 18:46 ` Konrad Rzeszutek Wilk
2014-07-08 19:28 ` Konrad Rzeszutek Wilk
2014-07-08 19:28 ` Konrad Rzeszutek Wilk
2014-07-09 12:32 ` David Vrabel
2014-07-09 12:32 ` David Vrabel
2014-07-09 14:11 ` David Vrabel
2014-07-09 14:11 ` [Xen-devel] " David Vrabel
2014-07-09 14:12 ` Konrad Rzeszutek Wilk
2014-07-09 14:12 ` Konrad Rzeszutek Wilk
2014-07-09 14:26 ` David Vrabel
2014-07-09 14:26 ` David Vrabel
2014-07-09 15:07 ` Konrad Rzeszutek Wilk
2014-07-09 15:07 ` Konrad Rzeszutek Wilk
2014-07-08 18:17 ` Andrew Cooper
2014-07-08 18:17 ` [Xen-devel] " Andrew Cooper
2014-07-08 18:58 ` [PATCH v3 5/7] xen/pciback: Include the domain id if removing the device whilst still in use konrad
2014-07-09 12:34 ` David Vrabel
2014-07-09 12:34 ` David Vrabel
2014-07-08 18:58 ` konrad
2014-07-08 18:58 ` [PATCH v3 6/7] xen/pciback: Print out the domain owning the device konrad
2014-07-09 13:04 ` David Vrabel
2014-07-09 13:04 ` David Vrabel
2014-07-08 18:58 ` konrad
2014-07-08 18:58 ` [PATCH v3 7/7] xen/pciback: Remove tons of dereferences konrad
2014-07-08 18:58 ` konrad
2014-07-08 19:15 ` [PATCH] Xen PCIbackend support for slot and bus reset (v3) Sander Eikelenboom
2014-07-08 19:15 ` [Xen-devel] " Sander Eikelenboom
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=1404845909-13563-4-git-send-email-konrad@kernel.org \
--to=konrad@kernel.org \
--cc=boris.ostrovsky@oracle.com \
--cc=david.vrabel@citrix.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.