Thread (101 messages) 101 messages, 15 authors, 2017-06-23
STALE3262d

[RFC PATCH 29/30] vfio: Add support for Shared Virtual Memory

From: Jean-Philippe Brucker <hidden>
Date: 2017-04-26 10:08:17
Also in: kvm, linux-iommu, linux-pci

On 26/04/17 07:53, Tomasz Nowicki wrote:
quoted
+        mutex_lock(&device->tasks_lock);
+        list_for_each_entry(vfio_task, &device->tasks, list) {
+            if (vfio_task->pasid != svm.pasid)
+                continue;
+
+            ret = iommu_unbind_task(device->dev, svm.pasid, flags);
+            if (ret)
+                dev_warn(device->dev, "failed to unbind PASID %u\n",
+                     vfio_task->pasid);
+
+            list_del(&vfio_task->list);
+            kfree(vfio_task);
Please use list_for_each_entry_safe.
There is:

+            break;

right after kfree, so we'd never follow vfio_task->list.next after freeing
vfio_task. The code searches for the _only_ task matching the PASID,
removes it and leaves the loop.

Thanks,
Jean-Philippe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help