Message ID | 1237174943.4193.37.camel@minggr.sh.intel.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On 16.3.2009 04:42, Lin Ming wrote: >> sometimes, when booting up/resuming from disk, I get an oops[1]. >> >> obj_desc->common_field.access_bit_width is zero, but even after the >> loop. Division before the loop is apparently OK. > > Would please try below debug patch to see which region filed is > accessed? Yes, except the fact, we wouldn't see anything :) -- I'll add inside the if a return statement or something to disallow the oops to flood screen. Also, it doesn't happen regularly. Mostly several first tries after cold start. I hope this is a regression and not a HW problem, but it emerged after switching to 2.6.29-*, I will keep you informed. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 16.3.2009 17:31, Jiri Slaby wrote: > On 16.3.2009 04:42, Lin Ming wrote: >>> sometimes, when booting up/resuming from disk, I get an oops[1]. >>> >>> obj_desc->common_field.access_bit_width is zero, but even after the >>> loop. Division before the loop is apparently OK. >> >> Would please try below debug patch to see which region filed is >> accessed? > > Yes, except the fact, we wouldn't see anything :) -- I'll add inside the > if a return statement or something to disallow the oops to flood screen. > > Also, it doesn't happen regularly. Mostly several first tries after cold > start. I hope this is a regression and not a HW problem, but it emerged > after switching to 2.6.29-*, I will keep you informed. Hmm, I didn't see it with rc8 and this patch applied so far (no 'ACPI Debug' in dmesg). Also I don't see anything changed within drivers/acpi/ et al. between rc7 and rc8. Maybe the timing changed somewhere else... I'm confused, but keep trying. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 18.3.2009 09:08, Jiri Slaby wrote: > On 16.3.2009 17:31, Jiri Slaby wrote: >> On 16.3.2009 04:42, Lin Ming wrote: >>>> sometimes, when booting up/resuming from disk, I get an oops[1]. >>>> >>>> obj_desc->common_field.access_bit_width is zero, but even after the >>>> loop. Division before the loop is apparently OK. >>> >>> Would please try below debug patch to see which region filed is >>> accessed? > > I'm confused, but keep trying. Got it again. obj_desc->common_field.node is martian too (0x4000000), so the added acpi_get_name dies: http://www.fi.muni.cz/~xslaby/sklad/panics/acpi_oops1.png Whole common_field seems to be mangled. Ideas? -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, 2009-03-20 at 00:06 +0800, Jiri Slaby wrote: > On 18.3.2009 09:08, Jiri Slaby wrote: > > On 16.3.2009 17:31, Jiri Slaby wrote: > >> On 16.3.2009 04:42, Lin Ming wrote: > >>>> sometimes, when booting up/resuming from disk, I get an oops[1]. > >>>> > >>>> obj_desc->common_field.access_bit_width is zero, but even after the > >>>> loop. Division before the loop is apparently OK. > >>> > >>> Would please try below debug patch to see which region filed is > >>> accessed? > > > > I'm confused, but keep trying. > > Got it again. obj_desc->common_field.node is martian too (0x4000000), so > the added acpi_get_name dies: > http://www.fi.muni.cz/~xslaby/sklad/panics/acpi_oops1.png > > Whole common_field seems to be mangled. Ideas? Thanks for the info. We are looking at this. Lin Ming -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/acpi/acpica/exfldio.c b/drivers/acpi/acpica/exfldio.c index ef58ac4..10ac0c8 100644 --- a/drivers/acpi/acpica/exfldio.c +++ b/drivers/acpi/acpica/exfldio.c @@ -683,6 +683,7 @@ acpi_ex_extract_from_field(union acpi_operand_object *obj_desc, u32 datum_count; u32 field_datum_count; u32 i; + struct acpi_buffer name_buffer = { ACPI_ALLOCATE_BUFFER, NULL }; ACPI_FUNCTION_TRACE(ex_extract_from_field); @@ -765,6 +766,20 @@ acpi_ex_extract_from_field(union acpi_operand_object *obj_desc, raw_datum >> obj_desc->common_field.start_field_bit_offset; } + if (obj_desc->common_field.bit_length == 0 || + obj_desc->common_field.access_bit_width == 0) { + status = acpi_get_name(obj_desc->common_field.node, + ACPI_FULL_PATHNAME, &name_buffer); + if (ACPI_FAILURE(status)) { + printk(KERN_DEBUG "ACPI Debug: %s\n", + acpi_format_exception(status)); + } else { + printk(KERN_DEBUG "ACPI Debug: field node path: %s\n", + (char *) name_buffer.pointer); + kfree(name_buffer.pointer); + } + } + /* Mask off any extra bits in the last datum */ buffer_tail_bits = obj_desc->common_field.bit_length %