Re: [PATCH v5] Fixes to Xen pciback for 3.17.
From: Greg KH
Date: Mon Jul 14 2014 - 13:36:18 EST
On Mon, Jul 14, 2014 at 12:18:50PM -0400, Konrad Rzeszutek Wilk wrote:
> 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.
>
> GHK:
> 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.
> See:
>
> + 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.
You have my ack now, and feel free to squash it into patch 2/6 if you
want, I don't mind having that in the stable trees.
thanks,
greg k-h
--
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/