[PATCH] Support Function Level Reset (FLR) in the xen-pciback module (v1) and some fixes.

From: Konrad Rzeszutek Wilk
Date: Wed Jan 04 2012 - 19:48:35 EST


The attached patches allow the pciback module to perform a reset whenever
a PCI device is:
- attached to the pciback module, as so:
echo "0000:01.07.0" > /sys/bus/pci/devices/pciback/bind
- detached from the pciback module, as so:
echo "0000:01.07.0" > /sys/bus/pci/devices/pciback/unbind
- and when the guest is done with (internally when the guest is not using
the PCI device anymore).

I ran in one issue which is that I could not do pci_reset_function call when "bind"
or "unbind" were done as the device_lock was held (and pci_reset_function tried to
acquire the mutex). The solution was to introduce a new "pci_reset_function":

[PATCH 1/5] pci: Introduce __pci_reset_function_locked to be used
and then piggyback on that in
[PATCH 2/5] xen/pciback: Support pci_reset_function, aka FLR or D3

Also there are two fixes included in this - one where the PCI_DEV_FLAG_ASSIGNED
was in the wrong location and the "device has been assigned to other domain"
warning that always appeared. More details are in the patches themselves.


drivers/pci/pci.c | 25 ++++++++++++++++++++
drivers/xen/xen-pciback/pci_stub.c | 45 +++++++++++++++++++++++++++++++++--
drivers/xen/xen-pciback/pciback.h | 1 +
drivers/xen/xen-pciback/xenbus.c | 8 +++---
include/linux/pci.h | 1 +
5 files changed, 73 insertions(+), 7 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/