|
@@ -424,22 +424,6 @@ static void *ion_buffer_kmap_get(struct ion_buffer *buffer)
|
|
|
return vaddr;
|
|
|
}
|
|
|
|
|
|
-static void *ion_handle_kmap_get(struct ion_handle *handle)
|
|
|
-{
|
|
|
- struct ion_buffer *buffer = handle->buffer;
|
|
|
- void *vaddr;
|
|
|
-
|
|
|
- if (handle->kmap_cnt) {
|
|
|
- handle->kmap_cnt++;
|
|
|
- return buffer->vaddr;
|
|
|
- }
|
|
|
- vaddr = ion_buffer_kmap_get(buffer);
|
|
|
- if (IS_ERR(vaddr))
|
|
|
- return vaddr;
|
|
|
- handle->kmap_cnt++;
|
|
|
- return vaddr;
|
|
|
-}
|
|
|
-
|
|
|
static void ion_buffer_kmap_put(struct ion_buffer *buffer)
|
|
|
{
|
|
|
buffer->kmap_cnt--;
|
|
@@ -462,49 +446,6 @@ static void ion_handle_kmap_put(struct ion_handle *handle)
|
|
|
ion_buffer_kmap_put(buffer);
|
|
|
}
|
|
|
|
|
|
-void *ion_map_kernel(struct ion_client *client, struct ion_handle *handle)
|
|
|
-{
|
|
|
- struct ion_buffer *buffer;
|
|
|
- void *vaddr;
|
|
|
-
|
|
|
- mutex_lock(&client->lock);
|
|
|
- if (!ion_handle_validate(client, handle)) {
|
|
|
- pr_err("%s: invalid handle passed to map_kernel.\n",
|
|
|
- __func__);
|
|
|
- mutex_unlock(&client->lock);
|
|
|
- return ERR_PTR(-EINVAL);
|
|
|
- }
|
|
|
-
|
|
|
- buffer = handle->buffer;
|
|
|
-
|
|
|
- if (!handle->buffer->heap->ops->map_kernel) {
|
|
|
- pr_err("%s: map_kernel is not implemented by this heap.\n",
|
|
|
- __func__);
|
|
|
- mutex_unlock(&client->lock);
|
|
|
- return ERR_PTR(-ENODEV);
|
|
|
- }
|
|
|
-
|
|
|
- mutex_lock(&buffer->lock);
|
|
|
- vaddr = ion_handle_kmap_get(handle);
|
|
|
- mutex_unlock(&buffer->lock);
|
|
|
- mutex_unlock(&client->lock);
|
|
|
- return vaddr;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(ion_map_kernel);
|
|
|
-
|
|
|
-void ion_unmap_kernel(struct ion_client *client, struct ion_handle *handle)
|
|
|
-{
|
|
|
- struct ion_buffer *buffer;
|
|
|
-
|
|
|
- mutex_lock(&client->lock);
|
|
|
- buffer = handle->buffer;
|
|
|
- mutex_lock(&buffer->lock);
|
|
|
- ion_handle_kmap_put(handle);
|
|
|
- mutex_unlock(&buffer->lock);
|
|
|
- mutex_unlock(&client->lock);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(ion_unmap_kernel);
|
|
|
-
|
|
|
static struct mutex debugfs_mutex;
|
|
|
static struct rb_root *ion_root_client;
|
|
|
static int is_client_alive(struct ion_client *client)
|