Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[deliverable/linux.git] / drivers / gpio / gpio-mcp23s08.c
index eea5d7e578c994bd28b04271837d06fe3fee3d69..2fc7ff852d1676d728e150d9a27e37e02403f72f 100644 (file)
@@ -949,10 +949,12 @@ static int mcp23s08_probe(struct spi_device *spi)
        if (!chips)
                return -ENODEV;
 
-       data = kzalloc(sizeof(*data) + chips * sizeof(struct mcp23s08),
-                       GFP_KERNEL);
+       data = devm_kzalloc(&spi->dev,
+                           sizeof(*data) + chips * sizeof(struct mcp23s08),
+                           GFP_KERNEL);
        if (!data)
                return -ENOMEM;
+
        spi_set_drvdata(spi, data);
 
        spi->irq = irq_of_parse_and_map(spi->dev.of_node, 0);
@@ -989,7 +991,6 @@ fail:
                        continue;
                gpiochip_remove(&data->mcp[addr]->chip);
        }
-       kfree(data);
        return status;
 }
 
@@ -1007,7 +1008,7 @@ static int mcp23s08_remove(struct spi_device *spi)
                        mcp23s08_irq_teardown(data->mcp[addr]);
                gpiochip_remove(&data->mcp[addr]->chip);
        }
-       kfree(data);
+
        return 0;
 }
 
This page took 0.028259 seconds and 5 git commands to generate.