Bug 4351
Summary: | acpi_get_firmware_table return an invalid block of memory | ||
---|---|---|---|
Product: | ACPI | Reporter: | aaron (yukun.chen) |
Component: | BIOS | Assignee: | Shaohua (shaohua.li) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | acpi-bugzilla |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.9-5.EL-ia64 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: | debug patch |
Description
aaron
2005-03-16 19:35:31 UTC
Did you give correct flags for acpi_get_firmware_table? The oops address '00000000ff5b0caa' looks like address in 'modprobe ipmi_si kcs_addrs=0xff5b0ca2'. What's the kcs_addrs? The acpi function is called as follows: status = acpi_get_firmware_table("SPMI", intf_num+1, ACPI_LOGICAL_ADDRESSING, (struct acpi_table_header **) &spmi); As for the second question, kcs_addrs is the memory address we will use but mapped by acpi function. If we don't pass the address to ipmi_si driver the driver will find the same address from acpi SPMI table, and the same as 0xff5b0ca2. Thanx. Aaron Created attachment 4736 [details]
debug patch
Hi, it seems the IPMI table is invalid, the returned address's length is 0,
after adding the check (see the driver), my test doesn't show oops again. But
I'm not sure if I found the real cause (maybe ACPI give wrong table, but I
check other fileds, and they are ok). Could you please tell me if the system
works before?
You are right that the register width is 0 but other field seems right.It is a little strange! Zhengyu said that another HP machine ever worked but now it is crashes down for H/W issue. And other 2 HP machine face the same bug now. Thanx. Aaron is this machine in production? is it running the latest BIOS? Does Windows boot on it? Yes, it is in production and you can find it on hp's website. As for the BIOS, not sure it is the latest one and I will check it soon. Finally, we havenot try to install windows on it and don't know whether it can work. Thanx. Aaron Patch is on base kernel. If the bug isn't a BIOS bug (eg, confirmed it works on other previous kernel version or the vendor said it's not), please reopen it. It is actually a bug of IPMI driver. The root cause is the IPMI driver will treat a 0 value of regsize field as an invalid value and will not allocate memory for it. After treate 0 value of regsize as default regsize -- 1 , the problem disappeares. Thanx. Aaron |