On Wed, Jul 20, 2011 at 2:09 AM, Huang Ying <ying.huang@xxxxxxxxx> wrote: > EINJ parameter support is only usable for some specific BIOS. > Originally, it is expected to have no harm for BIOS does not support > it. But now, we found it will cause issue (memory overwriting) for > some BIOS. So param support is disabled by default and only enabled > when newly added module parameter named "param_extension" is > explicitly specified. Adding parameters always makes things harder for users. Is there any way this could be done with a whitelist or other automatic mechanism? Per 6e320ec1d98 (which added EINJ parameter support), parameters are an unpublished extension and are not part of the ACPI spec. So if we pick up an MMIO address from a SET_ERROR_TYPE WRITE_REGISTER instruction and blindly fill in a structure (undefined by the spec) presumed to be at that address, it doesn't seem surprising that things will blow up on BIOSes that don't expect that behavior. After all, the spec says to write to a generic address structure (not an einj_parameter structure) when we interpret the WRITE_REGISTER instruction (not at the magic time between SET_ERROR_TYPE and EXECUTE_OPERATION). If EINJ parameter support is ever added to the ACPI spec, I would expect a new EINJ flag bit or similar indication to be added at the same time, so the OS would know when to use it. Can you add a whitelist of BIOSes that do support this extension? Maybe you could define a GUID that future platforms could supply so you wouldn't have to update the whitelist for every new platform that supports it? Bjorn -- 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