summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergio Paracuellos <sergio.paracuellos@gmail.com>2018-05-20 15:00:24 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-05-25 18:49:32 +0200
commite9301a5a8b6bc5097c76d12c1f07f8a6456bc341 (patch)
treecafca9814dd591220105910626f7556433eca40c
parent10ca84f272319090b41c41370d7d847a319e0e9b (diff)
downloadlinux-e9301a5a8b6bc5097c76d12c1f07f8a6456bc341.tar.bz2
staging: mt7621-gpio: avoid devm_kzalloc() hidden inside declarations and refactor function a bit
Driver probe function includes an allocation using devm_kzalloc which is "hidden" a bit inside the declarations. Extract this to a better place to increase readability. Also because we are allocating zeroed memory 'memset' statement is not needed at all. Condition for checking for a valid gpio id is wrong and it should be greater or equal instead of only greater so update to be the good one. Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com> Reviewed-by: NeilBrown <neil@brown.name> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/mt7621-gpio/gpio-mt7621.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/staging/mt7621-gpio/gpio-mt7621.c b/drivers/staging/mt7621-gpio/gpio-mt7621.c
index 077a7c24df5b..bbe6cce56d90 100644
--- a/drivers/staging/mt7621-gpio/gpio-mt7621.c
+++ b/drivers/staging/mt7621-gpio/gpio-mt7621.c
@@ -156,17 +156,18 @@ mediatek_gpio_bank_probe(struct platform_device *pdev, struct device_node *bank)
{
struct mtk_data *gpio_data = dev_get_drvdata(&pdev->dev);
const __be32 *id = of_get_property(bank, "reg", NULL);
- struct mtk_gc *rg = devm_kzalloc(&pdev->dev,
- sizeof(struct mtk_gc), GFP_KERNEL);
+ struct mtk_gc *rg;
int ret;
- if (!rg || !id || be32_to_cpu(*id) > MTK_MAX_BANK)
+ if (!id || be32_to_cpu(*id) >= MTK_MAX_BANK)
+ return -EINVAL;
+
+ rg = devm_kzalloc(&pdev->dev, sizeof(struct mtk_gc), GFP_KERNEL);
+ if (!rg)
return -ENOMEM;
gpio_data->gc_map[be32_to_cpu(*id)] = rg;
- memset(rg, 0, sizeof(struct mtk_gc));
-
spin_lock_init(&rg->lock);
rg->chip.parent = &pdev->dev;