Applied. thanks, -Len On Wednesday 18 July 2007 01:10, Dmitry Torokhov wrote: > [PATCH] Fix potential oops in dock driver > From: > Dmitry Torokhov <dtor@xxxxxxxxxxxxx> > To: > linux-acpi@xxxxxxxxxxxxxxx > CC: > Kristen Carlson Accardi <kristen.c.accardi@xxxxxxxxx>, Len Brown <len.brown@xxxxxxxxx> > Date: > Today 01:10:24 am > > Spam Status: Spamassassin 0% probability of being spam. > > Full report: > No, score=-2.1 required=5.0 tests=AWL,BAYES_00,FORGED_RCVD_HELO autolearn=ham version=3.1.9 > Possible needed for -stable as well. > > -- > Dmitry > > ACPI: dock - fix an oops when _DCK evaluation fails > > Data returned by acpi_get_name in acpi_buffer is not acpi_object and > therefore should not be cast to it, otherwise we'll get an nice oops > trying to print error message. > > Also print name of the ACPI object corresponding to the docking station > and elevate severity of the message printed when _DCK fails to KERN_ERR. > > Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx> > --- > drivers/acpi/dock.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > Index: linux/drivers/acpi/dock.c > =================================================================== > --- linux.orig/drivers/acpi/dock.c > +++ linux/drivers/acpi/dock.c > @@ -380,12 +380,11 @@ static void handle_dock(struct dock_stat > union acpi_object arg; > struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; > struct acpi_buffer name_buffer = { ACPI_ALLOCATE_BUFFER, NULL }; > - union acpi_object *obj; > > acpi_get_name(ds->handle, ACPI_FULL_PATHNAME, &name_buffer); > - obj = name_buffer.pointer; > > - printk(KERN_INFO PREFIX "%s\n", dock ? "docking" : "undocking"); > + printk(KERN_INFO PREFIX "%s - %s\n", > + (char *)name_buffer.pointer, dock ? "docking" : "undocking"); > > /* _DCK method has one argument */ > arg_list.count = 1; > @@ -394,7 +393,8 @@ static void handle_dock(struct dock_stat > arg.integer.value = dock; > status = acpi_evaluate_object(ds->handle, "_DCK", &arg_list, &buffer); > if (ACPI_FAILURE(status)) > - pr_debug("%s: failed to execute _DCK\n", obj->string.pointer); > + printk(KERN_ERR PREFIX "%s - failed to execute _DCK\n", > + (char *)name_buffer.pointer); > kfree(buffer.pointer); > kfree(name_buffer.pointer); > } > - > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html