Re: [PATCH 12/15] Construct status message w/ kasprintf and emit it with dev_info

dann frazier
2010-07-28T18:38:47Z

On Tue, Jul 27, 2010 at 05:51:00PM -0600, dann frazier wrote:
> Constructing the string dynamically w/ kasprintf will make it easier to
> ifdef-out parts of it. Also, this is for a device, so let's use
> dev_info.

A coworker caught a silly mistake in this one - I missed
freeing the buf allocated by kasprintf.

Here's a fixed patch.

Construct status message w/ kasprintf and emit it with dev_info

Constructing the string dynamically w/ kasprintf will make it easier to
ifdef-out parts of it. Also, this is for a device, so let's use dev_info.

Signed-off-by: dann frazier <dannf@hp.com>

diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
index f46e4f2..f03078d 100644
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -658,6 +658,7 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev,
const struct pci_device_id *ent)
{
int retval;
+ char *buf;

/*
* Check if we can do NMI sourcing or not
@@ -741,14 +742,17 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev,
goto error_misc_register;
}

- printk(KERN_INFO
- "hp Watchdog Timer Driver: %s"
- ", timer margin: %d seconds (nowayout=%d)"
- ", allow kernel dump: %s (default = 0/OFF)"
- ", priority: %s (default = 0/LAST).\n",
- HPWDT_VERSION, soft_margin, nowayout,
- (allow_kdump == 0) ? "OFF" : "ON",
- (priority == 0) ? "LAST" : "FIRST");
+ buf = kasprintf(GFP_KERNEL, "hp Watchdog Timer Driver: %s"
+ ", timer margin: %d seconds (nowayout=%d)"
+ ", allow kernel dump: %s (default = 0/OFF)"
+ ", priority: %s (default = 0/LAST)",
+ HPWDT_VERSION, soft_margin, nowayout,
+ (allow_kdump == 0) ? "OFF" : "ON",
+ (priority == 0) ? "LAST" : "FIRST");
+ if (!buf)
+ goto error_nomem;
+ dev_info(&dev->dev, "%s.\n", buf);
+ kfree(buf);

return 0;

@@ -761,6 +765,7 @@ error_get_cru:
pci_iounmap(dev, pci_mem_addr);
error_pci_iomap:
pci_disable_device(dev);
+error_nomem:
return retval;
}