summaryrefslogtreecommitdiff
path: root/drivers/mfd/abx500-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/abx500-core.c')
-rw-r--r--drivers/mfd/abx500-core.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/mfd/abx500-core.c b/drivers/mfd/abx500-core.c
index f3a15aa54d7b..d6d0ec4d21e4 100644
--- a/drivers/mfd/abx500-core.c
+++ b/drivers/mfd/abx500-core.c
@@ -151,19 +151,23 @@ int abx500_startup_irq_enabled(struct device *dev, unsigned int irq)
}
EXPORT_SYMBOL(abx500_startup_irq_enabled);
-void abx500_dump_all_banks(void)
+int abx500_dump_all_banks(void)
{
struct abx500_ops *ops;
- struct device dummy_child = {NULL};
+ struct device *dummy_child;
struct abx500_device_entry *dev_entry;
+ dummy_child = kzalloc(sizeof(struct device), GFP_KERNEL);
+ if (!dummy_child)
+ return -ENOMEM;
list_for_each_entry(dev_entry, &abx500_list, list) {
- dummy_child.parent = dev_entry->dev;
+ dummy_child->parent = dev_entry->dev;
ops = &dev_entry->ops;
if ((ops != NULL) && (ops->dump_all_banks != NULL))
- ops->dump_all_banks(&dummy_child);
+ ops->dump_all_banks(dummy_child);
}
+ kfree(dummy_child);
}
EXPORT_SYMBOL(abx500_dump_all_banks);