[PATCH v2 08/17] Staging: quickstart: Cleanup quickstart_acpi_config

Szymon Janc szymon at janc.net.pl
Wed Jan 11 22:22:43 UTC 2012


Signed-off-by: Szymon Janc <szymon at janc.net.pl>
---
 drivers/staging/quickstart/quickstart.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
index 97e62e9..b183d21 100644
--- a/drivers/staging/quickstart/quickstart.c
+++ b/drivers/staging/quickstart/quickstart.c
@@ -240,21 +240,24 @@ static int quickstart_acpi_ghid(struct quickstart_acpi *quickstart)
 	return ret;
 }
 
-static int quickstart_acpi_config(struct quickstart_acpi *quickstart, char *bid)
+static int quickstart_acpi_config(struct quickstart_acpi *quickstart)
 {
-	int len = strlen(bid);
+	char *bid = acpi_device_bid(quickstart->device);
+	char *name;
 	int ret;
 
+	name = kmalloc(strlen(bid) + 1, GFP_KERNEL);
+	if (!name)
+		return -ENOMEM;
+
 	/* Add button to list */
 	ret = quickstart_btnlst_add(&quickstart->btn);
-	if (ret)
+	if (ret < 0) {
+		kfree(name);
 		return ret;
-
-	quickstart->btn->name = kzalloc(len + 1, GFP_KERNEL);
-	if (!quickstart->btn->name) {
-		quickstart_btnlst_free();
-		return -ENOMEM;
 	}
+
+	quickstart->btn->name = name;
 	strcpy(quickstart->btn->name, bid);
 
 	return 0;
@@ -280,7 +283,7 @@ static int quickstart_acpi_add(struct acpi_device *device)
 	device->driver_data = quickstart;
 
 	/* Add button to list and initialize some stuff */
-	ret = quickstart_acpi_config(quickstart, acpi_device_bid(device));
+	ret = quickstart_acpi_config(quickstart);
 	if (ret < 0)
 		goto fail_config;
 
-- 
1.7.8.3





More information about the devel mailing list