Skip to contentSkip to conversation

drivers/acpi: use kasprintf

PATCH Applied [email protected] 2 participants 2 messages Apr 27, 2010 – May 1, 2010 ACPI

lore
Share & tools
lore
#0 lore raw

PATCH 2/4 drivers/acpi: use kasprintf

From: Julia Lawall <[email protected]>

kasprintf combines kmalloc and sprintf, and takes care of the size calculation itself.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression a,flag;
expression list args;
statement S;
@@

a =
- \(kmalloc\|kzalloc\)(...,flag)
+ kasprintf(flag,args)
<... when != a
if (a == NULL || ...) S
...>
- sprintf(a,args);
// </smpl>

[[email protected]: don't change handling of `count']
Cc Len Brown <[email protected]>

---

 drivers/acpi/video.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/acpi/video.c renamed from drivers/acpi/video.c~drivers-acpi-use-kasprintf +4 -4
diff -puN drivers/acpi/video.c~drivers-acpi-use-kasprintf drivers/acpi/video.c
@@ -1003,11 +1003,11 @@ static void acpi_video_device_find_cap(s
 		result = acpi_video_init_brightness(device);
 		if (result)
 			return;
-		name = kzalloc(MAX_NAME_LEN, GFP_KERNEL);
+		name = kasprintf(GFP_KERNEL, "acpi_video%d", count);
 		if (!name)
 			return;
+		count++;
 
-		sprintf(name, "acpi_video%d", count++);
 		memset(&props, 0, sizeof(struct backlight_properties));
 		props.max_brightness = device->brightness->count - 3;
 		device->backlight = backlight_device_register(name, NULL, device,
@@ -1063,10 +1063,10 @@ static void acpi_video_device_find_cap(s
 		if (device->cap._DCS && device->cap._DSS) {
 			static int count;
 			char *name;
-			name = kzalloc(MAX_NAME_LEN, GFP_KERNEL);
+			name = kasprintf(GFP_KERNEL, "acpi_video%d", count);
 			if (!name)
 				return;
-			sprintf(name, "acpi_video%d", count++);
+			count++;
 			device->output_dev = video_output_register(name,
 					NULL, device, &acpi_output_properties);
 			kfree(name);

_

reviewer Applied
#1 lore raw

applied to misc-2.6.35 branch

thanks,
Len Brown, Intel Open Source Technology Center