lkml.org 
[lkml]   [2012]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH] Support Function Level Reset (FLR) in the xen-pciback module (v1) and some fixes.
Date
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(-)


\
 
 \ /
  Last update: 2012-01-05 01:51    [W:0.087 / U:0.144 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site