diff mbox

Xen/PCI: correct notifier used for device removal

Message ID 56AF566002000078000CCE71@prv-mh.provo.novell.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jan Beulich Feb. 1, 2016, 11:58 a.m. UTC
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(-)

Comments

David Vrabel Feb. 1, 2016, 12:01 p.m. UTC | #1
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:
> 
> 
>
Jan Beulich Feb. 1, 2016, 12:16 p.m. UTC | #2
>>> 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
David Vrabel Feb. 1, 2016, 1:03 p.m. UTC | #3
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
Jan Beulich Feb. 1, 2016, 1:08 p.m. UTC | #4
>>> 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
diff mbox

Patch

--- 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: