Lines Matching refs:vma_priv

53 static void privcmd_buf_vmapriv_free(struct privcmd_buf_vma_private *vma_priv)  in privcmd_buf_vmapriv_free()  argument
57 list_del(&vma_priv->list); in privcmd_buf_vmapriv_free()
59 for (i = 0; i < vma_priv->n_pages; i++) in privcmd_buf_vmapriv_free()
60 __free_page(vma_priv->pages[i]); in privcmd_buf_vmapriv_free()
62 kfree(vma_priv); in privcmd_buf_vmapriv_free()
68 struct privcmd_buf_vma_private *vma_priv; in privcmd_buf_release() local
73 vma_priv = list_first_entry(&file_priv->list, in privcmd_buf_release()
76 privcmd_buf_vmapriv_free(vma_priv); in privcmd_buf_release()
88 struct privcmd_buf_vma_private *vma_priv = vma->vm_private_data; in privcmd_buf_vma_open() local
90 if (!vma_priv) in privcmd_buf_vma_open()
93 mutex_lock(&vma_priv->file_priv->lock); in privcmd_buf_vma_open()
94 vma_priv->users++; in privcmd_buf_vma_open()
95 mutex_unlock(&vma_priv->file_priv->lock); in privcmd_buf_vma_open()
100 struct privcmd_buf_vma_private *vma_priv = vma->vm_private_data; in privcmd_buf_vma_close() local
103 if (!vma_priv) in privcmd_buf_vma_close()
106 file_priv = vma_priv->file_priv; in privcmd_buf_vma_close()
110 vma_priv->users--; in privcmd_buf_vma_close()
111 if (!vma_priv->users) in privcmd_buf_vma_close()
112 privcmd_buf_vmapriv_free(vma_priv); in privcmd_buf_vma_close()
135 struct privcmd_buf_vma_private *vma_priv; in privcmd_buf_mmap() local
143 vma_priv = kzalloc(struct_size(vma_priv, pages, count), GFP_KERNEL); in privcmd_buf_mmap()
144 if (!vma_priv) in privcmd_buf_mmap()
148 vma_priv->pages[i] = alloc_page(GFP_KERNEL | __GFP_ZERO); in privcmd_buf_mmap()
149 if (!vma_priv->pages[i]) in privcmd_buf_mmap()
151 vma_priv->n_pages++; in privcmd_buf_mmap()
156 vma_priv->file_priv = file_priv; in privcmd_buf_mmap()
157 vma_priv->users = 1; in privcmd_buf_mmap()
161 vma->vm_private_data = vma_priv; in privcmd_buf_mmap()
163 list_add(&vma_priv->list, &file_priv->list); in privcmd_buf_mmap()
165 if (vma_priv->n_pages != count) in privcmd_buf_mmap()
168 ret = vm_map_pages_zero(vma, vma_priv->pages, in privcmd_buf_mmap()
169 vma_priv->n_pages); in privcmd_buf_mmap()
172 privcmd_buf_vmapriv_free(vma_priv); in privcmd_buf_mmap()