Hi, I just happen to be the maintainer "this initrd patch" ;-) I agree with you Thomas. IMHO, this patch is really useful in our "not so perfect" world. Few more comments below:
There are three reasons for the initrd patch (last one also applies for
the compile in functionality):
This is really feature #1, PC manufacturers come to sometimes extremely ugly things when they code their ACPI tables. You can find lots of BIOS containing in their ACPI tables tests like "do this if OS name is 13 letters long, and that if OS name is 11 letters long..." Obviously Linux is most of the time not within those tests!
1)
There might be "BIOS bugs" that will never get fixed:
https://bugzilla.novell.com/show_bug.cgi?id=160671
(Because it's an obvious BIOS bug, "compatibility" fixing it could make
things worse).
2)Agree, although I believe of this as more an excuse than a reason. Linux is still full of bugs, lots of which cannot be fixed by ACPI table swapping anyway...
There might be "ACPICA/kernel bugs" that take a while until they get
fixed:
This happens often. There comes out a new machine, using AML in a
slightly other way, we need to fix it in kernel/ACPICA. Until the patch
appears mainline may take a month or two. Until the distro of your
choice that makes use of the fix comes out might take half a year or
more...
And backporting ACPICA fixes to older kernels is currently not possible
as ACPICA patches appear in a big bunch of some thousand lines patches.
But this hopefully changes soon.
In my mind come:
- alias broken in certain cases
https://bugziall.novell.com/show_bug.cgi?id=113099
- recon amount of elements in packages
https://bugzilla.novell.com/show_bug.cgi?id=189488
- wrong offsets at Field and Operation Region declarations
-> should be compatible for quite a while now
- ...
3)Well, I think even Len agree with this usage :-)
Debugging.
This is why at least compile in or via initrd must be provided in
mainline kernel IMHO. Intel people themselves ask the bug reporter to
override ACPI tables with a patched table to debug the system.
Do you really think ripping out all overriding functionality from the
kernel is a good idea?