Message ID | 56AF566002000078000CCE71@prv-mh.provo.novell.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 01/02/16 11:58, Jan Beulich wrote: > Commit 599bad38cf added BUS_NOTIFY_REMOVED_DEVICE in order to allow > avoiding removal of IOMMU mappings before the driver actually got > unbound from the device. Naturally we should be using this too. Because otherwise...? What happens if we don't make this change? Removing IOMMU mappings for a device when the driver is still bound to the device looks wrong to me. Surely the device is still active and may still be performing DMA at this point? David > --- 4.5-rc2/drivers/xen/pci.c > +++ 4.5-rc2-xen-PCI-remove-notifier/drivers/xen/pci.c > @@ -185,7 +185,7 @@ static int xen_pci_notifier(struct notif > case BUS_NOTIFY_ADD_DEVICE: > r = xen_add_device(dev); > break; > - case BUS_NOTIFY_DEL_DEVICE: > + case BUS_NOTIFY_REMOVED_DEVICE: > r = xen_remove_device(dev); > break; > default: > > >
>>> On 01.02.16 at 13:01, <david.vrabel@citrix.com> wrote: > On 01/02/16 11:58, Jan Beulich wrote: >> Commit 599bad38cf added BUS_NOTIFY_REMOVED_DEVICE in order to allow >> avoiding removal of IOMMU mappings before the driver actually got >> unbound from the device. Naturally we should be using this too. > > Because otherwise...? What happens if we don't make this change? > > Removing IOMMU mappings for a device when the driver is still bound to > the device looks wrong to me. Surely the device is still active and may > still be performing DMA at this point? Exactly - you answered your own question (as does the commit referred to). Jan
On 01/02/16 12:16, Jan Beulich wrote: >>>> On 01.02.16 at 13:01, <david.vrabel@citrix.com> wrote: >> On 01/02/16 11:58, Jan Beulich wrote: >>> Commit 599bad38cf added BUS_NOTIFY_REMOVED_DEVICE in order to allow >>> avoiding removal of IOMMU mappings before the driver actually got >>> unbound from the device. Naturally we should be using this too. >> >> Because otherwise...? What happens if we don't make this change? >> >> Removing IOMMU mappings for a device when the driver is still bound to >> the device looks wrong to me. Surely the device is still active and may >> still be performing DMA at this point? > > Exactly - you answered your own question (as does the commit > referred to). I misread, sorry. I think I will reword this as: "Commit 599bad38cf added BUS_NOTIFY_REMOVED_DEVICE to defer the removal of IOMMU mappings until the driver has been unbound from the device (i.e., until it is guaranteed that there are no outstanding DMA transactions). Naturally we should be using this too." David
>>> On 01.02.16 at 14:03, <david.vrabel@citrix.com> wrote: > On 01/02/16 12:16, Jan Beulich wrote: >>>>> On 01.02.16 at 13:01, <david.vrabel@citrix.com> wrote: >>> On 01/02/16 11:58, Jan Beulich wrote: >>>> Commit 599bad38cf added BUS_NOTIFY_REMOVED_DEVICE in order to allow >>>> avoiding removal of IOMMU mappings before the driver actually got >>>> unbound from the device. Naturally we should be using this too. >>> >>> Because otherwise...? What happens if we don't make this change? >>> >>> Removing IOMMU mappings for a device when the driver is still bound to >>> the device looks wrong to me. Surely the device is still active and may >>> still be performing DMA at this point? >> >> Exactly - you answered your own question (as does the commit >> referred to). > > I misread, sorry. I think I will reword this as: > > "Commit 599bad38cf added BUS_NOTIFY_REMOVED_DEVICE to defer the removal > of IOMMU mappings until the driver has been unbound from the device > (i.e., until it is guaranteed that there are no outstanding DMA > transactions). If you want this, then I think you should add "... or IRQs". Thanks, Jan
--- 4.5-rc2/drivers/xen/pci.c +++ 4.5-rc2-xen-PCI-remove-notifier/drivers/xen/pci.c @@ -185,7 +185,7 @@ static int xen_pci_notifier(struct notif case BUS_NOTIFY_ADD_DEVICE: r = xen_add_device(dev); break; - case BUS_NOTIFY_DEL_DEVICE: + case BUS_NOTIFY_REMOVED_DEVICE: r = xen_remove_device(dev); break; default:
Commit 599bad38cf added BUS_NOTIFY_REMOVED_DEVICE in order to allow avoiding removal of IOMMU mappings before the driver actually got unbound from the device. Naturally we should be using this too. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- drivers/xen/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)