diff options
author | Jay Aurabind <mail@aurabindo.in> | 2014-05-21 22:49:54 +0530 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2014-06-03 08:11:11 +0100 |
commit | 7abafa0a66414e385d122bcbc655a1d55ecbaecf (patch) | |
tree | b231eb008da455131e2b85840e1d69a03352e241 /drivers/mfd/abx500-core.c | |
parent | 58a9e5b98360e8dcf9c958c0552fb35279e3933f (diff) | |
download | op-kernel-dev-7abafa0a66414e385d122bcbc655a1d55ecbaecf.zip op-kernel-dev-7abafa0a66414e385d122bcbc655a1d55ecbaecf.tar.gz |
mfd: abx500-core: Fix compiler warning larger stack frame
On systems with CONFIG_FRAME_WARN=1024, compiler warns the allocation of
an object of struct device on stack. Make the allocation dynamically to
fix the warning. Also change the caller's return type to int so as to
account for error handling.
drivers/mfd/abx500-core.c: In function ‘abx500_dump_all_banks’:
drivers/mfd/abx500-core.c:167:1: warning: the frame size of 1032 bytes
is larger than 1024 bytes [-Wframe-larger-than=]
Signed-off-by: Aurabindo J <mail@aurabindo.in>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/abx500-core.c')
-rw-r--r-- | drivers/mfd/abx500-core.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/mfd/abx500-core.c b/drivers/mfd/abx500-core.c index f3a15aa..d6d0ec4 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); |