2.6.29 acpi regression: acpi_ex_extract_from_field -- div by zero

From: Jiri Slaby
Date: Sun Mar 15 2009 - 06:47:23 EST


Hi,

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.

This is the case:
/* Mask off any extra bits in the last datum */

buffer_tail_bits = obj_desc->common_field.bit_length %
obj_desc->common_field.access_bit_width;

.L39:
xorl %edx, %edx #
movzbl 37(%rbx), %esi # <variable>.common_field.access_bit_width, <variable>.common_field.access_bit_width
movl 24(%rbx), %eax # <variable>.common_field.bit_length, <variable>.common_field.bit_length
--------------- here:
divl %esi # <variable>.common_field.access_bit_width
movl %edx, %ecx #, tmp121
testl %edx, %edx # tmp121
je .L41 #,

[1] http://www.fi.muni.cz/~xslaby/sklad/panics/acpi_oops.png
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/