Loading drivers/dma-buf/dma-buf.c +7 −4 Original line number Diff line number Diff line Loading @@ -92,10 +92,10 @@ static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen) goto out; } spin_unlock(&dentry->d_lock); mutex_lock(&dmabuf->lock); spin_lock(&dmabuf->name_lock); if (dmabuf->name) ret = strlcpy(name, dmabuf->name, DMA_BUF_NAME_LEN); mutex_unlock(&dmabuf->lock); spin_unlock(&dmabuf->name_lock); dmabuf_dent_put(dmabuf); out: return dynamic_dname(dentry, buffer, buflen, "/%s:%s", Loading Loading @@ -401,8 +401,10 @@ static long dma_buf_set_name(struct dma_buf *dmabuf, const char __user *buf) kfree(name); goto out_unlock; } spin_lock(&dmabuf->name_lock); kfree(dmabuf->name); dmabuf->name = name; spin_unlock(&dmabuf->name_lock); out_unlock: mutex_unlock(&dmabuf->lock); Loading Loading @@ -472,10 +474,10 @@ static void dma_buf_show_fdinfo(struct seq_file *m, struct file *file) /* Don't count the temporary reference taken inside procfs seq_show */ seq_printf(m, "count:\t%ld\n", file_count(dmabuf->file) - 1); seq_printf(m, "exp_name:\t%s\n", dmabuf->exp_name); mutex_lock(&dmabuf->lock); spin_lock(&dmabuf->name_lock); if (dmabuf->name) seq_printf(m, "name:\t%s\n", dmabuf->name); mutex_unlock(&dmabuf->lock); spin_unlock(&dmabuf->name_lock); } static const struct file_operations dma_buf_fops = { Loading Loading @@ -619,6 +621,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info) dmabuf->size = exp_info->size; dmabuf->exp_name = exp_info->exp_name; dmabuf->owner = exp_info->owner; spin_lock_init(&dmabuf->name_lock); init_waitqueue_head(&dmabuf->poll); dmabuf->cb_excl.poll = dmabuf->cb_shared.poll = &dmabuf->poll; dmabuf->cb_excl.active = dmabuf->cb_shared.active = 0; Loading include/linux/dma-buf.h +1 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,7 @@ struct dma_buf { char *buf_name; ktime_t ktime; const char *name; spinlock_t name_lock; struct module *owner; struct list_head list_node; void *priv; Loading Loading
drivers/dma-buf/dma-buf.c +7 −4 Original line number Diff line number Diff line Loading @@ -92,10 +92,10 @@ static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen) goto out; } spin_unlock(&dentry->d_lock); mutex_lock(&dmabuf->lock); spin_lock(&dmabuf->name_lock); if (dmabuf->name) ret = strlcpy(name, dmabuf->name, DMA_BUF_NAME_LEN); mutex_unlock(&dmabuf->lock); spin_unlock(&dmabuf->name_lock); dmabuf_dent_put(dmabuf); out: return dynamic_dname(dentry, buffer, buflen, "/%s:%s", Loading Loading @@ -401,8 +401,10 @@ static long dma_buf_set_name(struct dma_buf *dmabuf, const char __user *buf) kfree(name); goto out_unlock; } spin_lock(&dmabuf->name_lock); kfree(dmabuf->name); dmabuf->name = name; spin_unlock(&dmabuf->name_lock); out_unlock: mutex_unlock(&dmabuf->lock); Loading Loading @@ -472,10 +474,10 @@ static void dma_buf_show_fdinfo(struct seq_file *m, struct file *file) /* Don't count the temporary reference taken inside procfs seq_show */ seq_printf(m, "count:\t%ld\n", file_count(dmabuf->file) - 1); seq_printf(m, "exp_name:\t%s\n", dmabuf->exp_name); mutex_lock(&dmabuf->lock); spin_lock(&dmabuf->name_lock); if (dmabuf->name) seq_printf(m, "name:\t%s\n", dmabuf->name); mutex_unlock(&dmabuf->lock); spin_unlock(&dmabuf->name_lock); } static const struct file_operations dma_buf_fops = { Loading Loading @@ -619,6 +621,7 @@ struct dma_buf *dma_buf_export(const struct dma_buf_export_info *exp_info) dmabuf->size = exp_info->size; dmabuf->exp_name = exp_info->exp_name; dmabuf->owner = exp_info->owner; spin_lock_init(&dmabuf->name_lock); init_waitqueue_head(&dmabuf->poll); dmabuf->cb_excl.poll = dmabuf->cb_shared.poll = &dmabuf->poll; dmabuf->cb_excl.active = dmabuf->cb_shared.active = 0; Loading
include/linux/dma-buf.h +1 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,7 @@ struct dma_buf { char *buf_name; ktime_t ktime; const char *name; spinlock_t name_lock; struct module *owner; struct list_head list_node; void *priv; Loading