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

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

From: Tomasz Nowicki <hidden>
Date: 2017-04-26 11:01:48
Also in: kvm, linux-iommu, linux-pci

On 26.04.2017 12:08, Jean-Philippe Brucker wrote:
On 26/04/17 07:53, Tomasz Nowicki wrote:
quoted
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.
Ah right. Sorry for the noise.

Tomasz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help