2.6.29 acpi regression: acpi_ex_extract_from_field -- div by zero

Jiri Slaby
2009-03-15T10:47:13Z

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