greybus: can't use devm anymore, we aren't tieing into the driver model lifecycle :(
authorGreg Kroah-Hartman <greg@kroah.com>
Sun, 31 Aug 2014 00:11:41 +0000 (17:11 -0700)
committerGreg Kroah-Hartman <greg@kroah.com>
Sun, 31 Aug 2014 00:11:41 +0000 (17:11 -0700)
drivers/staging/greybus/gpio-gb.c
drivers/staging/greybus/uart-gb.c

index 7b8b85f..43fd0d3 100644 (file)
@@ -59,7 +59,7 @@ int gb_gpio_probe(struct greybus_device *gdev,
        struct device *dev = &gdev->dev;
        int retval;
 
-       gb_gpio = devm_kzalloc(dev, sizeof(*gb_gpio), GFP_KERNEL);
+       gb_gpio = kzalloc(dev, sizeof(*gb_gpio), GFP_KERNEL);
        if (!gb_gpio)
                return -ENOMEM;
        gb_gpio->gdev = gdev;
@@ -95,6 +95,7 @@ void gb_gpio_disconnect(struct greybus_device *gdev)
        gb_gpio_dev = gdev->gb_gpio_dev;
 
        gpiochip_remove(&gb_gpio_dev->chip);
+       kfree(gb_gpio_dev);
 }
 
 #if 0
index 377ad38..298b9ff 100644 (file)
@@ -390,7 +390,7 @@ int gb_tty_probe(struct greybus_device *gdev,
        int retval;
        int minor;
 
-       gb_tty = devm_kzalloc(&gdev->dev, sizeof(*gb_tty), GFP_KERNEL);
+       gb_tty = kzalloc(&gdev->dev, sizeof(*gb_tty), GFP_KERNEL);
        if (!gb_tty)
                return -ENOMEM;
 
@@ -455,6 +455,8 @@ void gb_tty_disconnect(struct greybus_device *gdev)
        /* FIXME - free transmit / recieve buffers */
 
        tty_port_put(&gb_tty->port);
+
+       kfree(gb_tty);
 }
 
 static struct greybus_driver tty_gb_driver = {