xen/pciback: Document when the 'unbind' and 'bind' functions are called.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Mon, 21 Apr 2014 19:43:08 +0000 (15:43 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 23 May 2014 16:33:50 +0000 (12:33 -0400)
And also mention that you cannot do any pci_reset_function,
pci_reset_slot, or such calls. This is because they take the same
lock as SysFS does - and we would end up with a dead-lock if
we call those functions.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: David Vrabel <david.vrabel@citrix.com>
drivers/xen/xen-pciback/pci_stub.c

index b84426a..1539bec 100644 (file)
@@ -493,6 +493,8 @@ static int pcistub_seize(struct pci_dev *dev)
        return err;
 }
 
+/* Called when 'bind'. This means we must _NOT_ call pci_reset_function or
+ * other functions that take the sysfs lock. */
 static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id)
 {
        int err = 0;
@@ -520,6 +522,8 @@ out:
        return err;
 }
 
+/* Called when 'unbind'. This means we must _NOT_ call pci_reset_function or
+ * other functions that take the sysfs lock. */
 static void pcistub_remove(struct pci_dev *dev)
 {
        struct pcistub_device *psdev, *found_psdev = NULL;