diff options
Diffstat (limited to 'drivers/base')
| -rw-r--r-- | drivers/base/component.c | 8 | ||||
| -rw-r--r-- | drivers/base/dma-buf.c | 25 |
2 files changed, 20 insertions, 13 deletions
diff --git a/drivers/base/component.c b/drivers/base/component.c index c53efe6c6d8e..c4778995cd72 100644 --- a/drivers/base/component.c +++ b/drivers/base/component.c | |||
| @@ -133,9 +133,16 @@ static int try_to_bring_up_master(struct master *master, | |||
| 133 | goto out; | 133 | goto out; |
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | if (!devres_open_group(master->dev, NULL, GFP_KERNEL)) { | ||
| 137 | ret = -ENOMEM; | ||
| 138 | goto out; | ||
| 139 | } | ||
| 140 | |||
| 136 | /* Found all components */ | 141 | /* Found all components */ |
| 137 | ret = master->ops->bind(master->dev); | 142 | ret = master->ops->bind(master->dev); |
| 138 | if (ret < 0) { | 143 | if (ret < 0) { |
| 144 | devres_release_group(master->dev, NULL); | ||
| 145 | dev_info(master->dev, "master bind failed: %d\n", ret); | ||
| 139 | master_remove_components(master); | 146 | master_remove_components(master); |
| 140 | goto out; | 147 | goto out; |
| 141 | } | 148 | } |
| @@ -166,6 +173,7 @@ static void take_down_master(struct master *master) | |||
| 166 | { | 173 | { |
| 167 | if (master->bound) { | 174 | if (master->bound) { |
| 168 | master->ops->unbind(master->dev); | 175 | master->ops->unbind(master->dev); |
| 176 | devres_release_group(master->dev, NULL); | ||
| 169 | master->bound = false; | 177 | master->bound = false; |
| 170 | } | 178 | } |
| 171 | 179 | ||
diff --git a/drivers/base/dma-buf.c b/drivers/base/dma-buf.c index 1e16cbd61da2..61d6d62cc0d3 100644 --- a/drivers/base/dma-buf.c +++ b/drivers/base/dma-buf.c | |||
| @@ -616,36 +616,35 @@ static int dma_buf_describe(struct seq_file *s) | |||
| 616 | if (ret) | 616 | if (ret) |
| 617 | return ret; | 617 | return ret; |
| 618 | 618 | ||
| 619 | seq_printf(s, "\nDma-buf Objects:\n"); | 619 | seq_puts(s, "\nDma-buf Objects:\n"); |
| 620 | seq_printf(s, "\texp_name\tsize\tflags\tmode\tcount\n"); | 620 | seq_puts(s, "size\tflags\tmode\tcount\texp_name\n"); |
| 621 | 621 | ||
| 622 | list_for_each_entry(buf_obj, &db_list.head, list_node) { | 622 | list_for_each_entry(buf_obj, &db_list.head, list_node) { |
| 623 | ret = mutex_lock_interruptible(&buf_obj->lock); | 623 | ret = mutex_lock_interruptible(&buf_obj->lock); |
| 624 | 624 | ||
| 625 | if (ret) { | 625 | if (ret) { |
| 626 | seq_printf(s, | 626 | seq_puts(s, |
| 627 | "\tERROR locking buffer object: skipping\n"); | 627 | "\tERROR locking buffer object: skipping\n"); |
| 628 | continue; | 628 | continue; |
| 629 | } | 629 | } |
| 630 | 630 | ||
| 631 | seq_printf(s, "\t"); | 631 | seq_printf(s, "%08zu\t%08x\t%08x\t%08ld\t%s\n", |
| 632 | 632 | buf_obj->size, | |
| 633 | seq_printf(s, "\t%s\t%08zu\t%08x\t%08x\t%08ld\n", | ||
| 634 | buf_obj->exp_name, buf_obj->size, | ||
| 635 | buf_obj->file->f_flags, buf_obj->file->f_mode, | 633 | buf_obj->file->f_flags, buf_obj->file->f_mode, |
| 636 | (long)(buf_obj->file->f_count.counter)); | 634 | (long)(buf_obj->file->f_count.counter), |
| 635 | buf_obj->exp_name); | ||
| 637 | 636 | ||
| 638 | seq_printf(s, "\t\tAttached Devices:\n"); | 637 | seq_puts(s, "\tAttached Devices:\n"); |
| 639 | attach_count = 0; | 638 | attach_count = 0; |
| 640 | 639 | ||
| 641 | list_for_each_entry(attach_obj, &buf_obj->attachments, node) { | 640 | list_for_each_entry(attach_obj, &buf_obj->attachments, node) { |
| 642 | seq_printf(s, "\t\t"); | 641 | seq_puts(s, "\t"); |
| 643 | 642 | ||
| 644 | seq_printf(s, "%s\n", attach_obj->dev->init_name); | 643 | seq_printf(s, "%s\n", dev_name(attach_obj->dev)); |
| 645 | attach_count++; | 644 | attach_count++; |
| 646 | } | 645 | } |
| 647 | 646 | ||
| 648 | seq_printf(s, "\n\t\tTotal %d devices attached\n", | 647 | seq_printf(s, "Total %d devices attached\n\n", |
| 649 | attach_count); | 648 | attach_count); |
| 650 | 649 | ||
| 651 | count++; | 650 | count++; |
