[PATCH v5] Fixes to Xen pciback for 3.17.

From: Konrad Rzeszutek Wilk
Date: Mon Jul 14 2014 - 12:20:50 EST

Greg: goto GHK

This is v5 version of patches to fix some issues in Xen PCIback.

One of the issues Xen PCI back has that patch:

is fixing is that a deadlock can happen if the PCI device is
assigned to a guest and we try to 'unbind' it from Xen 'pciback' driver.
The issue is rather simple - the SysFS mechanism for the 'unbind' path
takes a device lock and the code in Xen PCI uses the pci_reset_function
which also takes the same lock. Solution is to use the lock-less version
and mandate that callers of said function in Xen pciback take the lock.
Easy enough.

To guard against this happening in the future we also add an assert in the
form of lockdep assertion. That is OK except that it looks ugly as we take
it straight from the 'struct device' instead of using an appropriate macro.

+ lockdep_assert_held(&dev->dev.mutex);

(in [PATCH v5 2/6] xen/pciback: Don't deadlock when unbinding).

The patch: [PATCH v5 3/6] driver core: Provide an wrapper around the mutex
to do.

introduces a nice wrapper so it is bit cleaner. Greg, if you are OK with
it could you kindly Ack it as I would prefer to put this patchset
via the Xen tree. It would look now as:

- lockdep_assert_held(&dev->dev.mutex);
+ device_lock_assert(&dev->dev);

I can also squash it in "[PATCH v5 2/6] xen/pciback: Don't deadlock when
unbinding." but since that one is going through the stable tree I wasn't
sure whether you (Greg KH) would be OK with that.


Thank you!

Patches are also available on my git tree

git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git devel/pciback-3.17.v5

Documentation/ABI/testing/sysfs-driver-pciback | 25 +++++++++++++++
drivers/xen/xen-pciback/passthrough.c | 14 +++++++--
drivers/xen/xen-pciback/pci_stub.c | 42 ++++++++++++++------------
drivers/xen/xen-pciback/pciback.h | 7 +++--
drivers/xen/xen-pciback/vpci.c | 14 +++++++--
drivers/xen/xen-pciback/xenbus.c | 4 +--
include/linux/device.h | 5 +++
7 files changed, 81 insertions(+), 30 deletions(-)

Konrad Rzeszutek Wilk (6):
xen-pciback: Document the various parameters and attributes in SysFS
xen/pciback: Don't deadlock when unbinding.
driver core: Provide an wrapper around the mutex to do lockdep warnings
xen/pciback: Include the domain id if removing the device whilst still in use
xen/pciback: Print out the domain owning the device.
xen/pciback: Remove tons of dereferences

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/