Re: [PATCH 1/4] ACPI: Add acpi_pr_() interfaces

Toshi Kani
2012-07-18T21:46:43Z

On Wed, 2012-07-18 at 14:27 -0700, Joe Perches wrote:
> On Wed, 2012-07-18 at 14:40 -0600, Toshi Kani wrote:
> > This patch introduces acpi_pr_<level>(), where <level> is a message
> > level such as err/warn/info, to support improved logging messages
> > for ACPI, esp. in hotplug operations.
>
> One more note:
>
> > diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> []
> > @@ -454,3 +454,35 @@ acpi_evaluate_hotplug_ost(acpi_handle handle, u32 source_event,
> []
> > +void
> > +acpi_printk(const char *level, acpi_handle handle, const char *fmt, ...)
> []
> > + struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER};
> []
> > + ret = acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
> []
> > + kfree(buffer.pointer);
>
> There's a failure mode here because buffer.pointer
> isn't guaranteed to be initialized or set to NULL.

Hi Joe,

Yes, I thought that check was necessary as well. However, to my
surprise, such check caused the following warning message from
patchcheck.pl. So, I deleted the check...

# check for needless kfree() checks
if ($prevline =~ /\bif\s*\(([^\)]*)\)/) {
my $expr = $1;
if ($line =~ /\bkfree\(\Q$expr\E\);/) {
WARN("NEEDLESS_KFREE",
"kfree(NULL) is safe this check is
probably not required\n" . $hereprev);
}
}

Thanks,
-Toshi