Thread (8 messages) 8 messages, 5 authors, 2018-01-19

[RFCv2 PATCH 05/36] iommu/process: Bind and unbind process to and from devices

From: Jean-Philippe Brucker <hidden>
Date: 2017-11-29 15:01:04
Also in: linux-acpi, linux-devicetree, linux-iommu, linux-pci

Possibly related (same subject, not in this thread)

On 29/11/17 06:08, Yisheng Xie wrote:

On 2017/10/6 21:31, Jean-Philippe Brucker wrote:
quoted
+int iommu_process_bind_device(struct device *dev, struct task_struct *task,
+			      int *pasid, int flags)
+{
[..]
quoted
+			err = iommu_process_attach_locked(context, dev);
+			if (err)
+				iommu_process_put_locked(process);
one ref for a context is enough right? so also need call iommu_process_put_locked()
if attach ok, or will be leak if user call bind twice for the same device and task.
I wasn't sure, I think I prefer taking one ref for each bind. If user
calls bind twice, it should call unbind twice as well (in case of leak we
free the context on process exit).

Also with this implementation, user can call bind for two devices in the
same domain, which will share the same context structure. So we have to
take as many refs as bind() calls.

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