Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 331131 - ACPI table overridden after boot
Summary: ACPI table overridden after boot
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: High major
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL: https://bugzilla.kernel.org/show_bug....
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-03 22:38 UTC by Ricardo I. Vieitez
Modified: 2010-08-12 22:37 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Fix (copydsdt.patch,6.09 KB, patch)
2010-08-03 22:44 UTC, Ricardo I. Vieitez
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ricardo I. Vieitez 2010-08-03 22:38:58 UTC
Some Toshiba laptops (and potentially others too) overwrite DSDT tables after boot, which is known to cause ACPI-related issues.

Reproducible: Always

Steps to Reproduce:
1. Get an affected laptop (e.g., Toshiba Satellite A505-S6005)
2. Build a kernel with ACPI support
3. Boot with ACPI turned on.

Actual Results:  
ACPI DSDT tabbles are overriden and the machine fails to boot or boots but ACPI functionality doesn't work.

Expected Results:  
The machine should function normally.
Comment 1 Ricardo I. Vieitez 2010-08-03 22:44:16 UTC
Created attachment 241349 [details, diff]
Fix

This patch adds an ACPI option (copy_dsdt) to copy the DSDT tables to a safe place in an early boot step, so that the system doesn't crash.

Additionally, as compared with proposed bug at https://bugzilla.kernel.org/attachment.cgi?id=25669, it manages a blacklist with known affected computers so that the issue is addressed transparently.

Enabling the option (i.e., booting with acpi=copy_dsdt) doesn't harm working computers, but uses approximately 64KiB of memory.
Comment 2 Mike Pagano gentoo-dev 2010-08-04 12:43:12 UTC
2.6.34, right?
Comment 4 Ricardo I. Vieitez 2010-08-04 14:03:36 UTC
Yes, the patch I submitted is for 2.6.34, although it probably works for 2.6.33 and 2.6.32.

The patch I sent does work. The one you are referring to doesn't, because it doesn't implement the copy_dsdt routines.

The one in the kernel bugzilla, on the other hand, does work, but the blacklist isn't implemented.

My patch is based upon both, and has been tested on my machine successfully.
Comment 5 Mike Pagano gentoo-dev 2010-08-05 13:13:22 UTC
Has your patch made it too mainline, yet? We only accept patches that are queued in upstream trees.
Comment 6 Ricardo I. Vieitez 2010-08-05 14:11:55 UTC
AFAIK, 2.6.35 incorporates the patch (1), and that other part (the blacklist) is in the patch you posted.

Mine mixes the two versions, which makes me think that they reasonably supported in upstream.

On the other hand, gentoo-sources and hardened-sources incorporate patches by the Gentoo team, isn't it?


(1) https://bugzilla.kernel.org/attachment.cgi?id=25669, http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.35, commit 04afb40593f9a3007e5ea817d009529ef10fb685
Comment 7 Mike Pagano gentoo-dev 2010-08-05 14:26:05 UTC
Hardened team is different than gentoo-sources team.

Q. Will you apply [some kernel patch]? 
If it's a serious and non-intrusive bugfix that has been accepted into the upstream development kernel, then usually yes (please open a bug). Otherwise, generally the answer is no - instead of getting new features added to our kernel, we'd prefer you to contact the authors of that code and get them to finish off their work and submit it to the mainline kernel so that everyone can benefit.


Does 2.6.35 work for you?
Comment 8 Ricardo I. Vieitez 2010-08-05 14:33:30 UTC
I haven't tried 2.6.35, because I use the hardened profile and there's no ebuild yet for =hardened-sources-2.6.35.

However, it should work. As I previously said, the patch I submitted was made up from two patches made by the kernel developers, both of them sent to Linus to be included in 2.6.35. I know 2.6.35 incorporates the acpi=copy_dsdt boot option, but I'm not sure about the blacklist to automatically apply it on affected computers. I should check that.
Comment 9 Ricardo I. Vieitez 2010-08-05 16:57:21 UTC
From what I see in current 2.6.35 vanilla branch, it seems as though this patch had been applied, including the blacklist.

Therefore, this patch should be considered safe to be added to gentoo-sources.

References:

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=commitdiff;h=69ec87efa815d69140423014bb5f91e034faac22
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=commitdiff;h=aa2110cb1a7510f9b834adfb39b05d4843a35d35
Comment 10 Mike Pagano gentoo-dev 2010-08-06 18:04:58 UTC
we're going to need more than these two. I see missing functions that the patches apply changes too.

Such as:  acpi_tb_check_dsdt_header in tbutils.c
Comment 11 Ricardo I. Vieitez 2010-08-12 17:34:30 UTC
My idea wasn't exactly to apply the whole set of patches for the 2.6.35 branch into the 2.6.34 (which is why we do have 2.6.34 AND 2.6.35, isn't it?), but to fix an specific issue which owes to a buggy BIOS on some machines.

This is because it would save lots of time for people with this hardware, especially because 2.6.34 is still the "stable" version of the kernel.

Certainly, I'd rather build a set of patches with every kernel bugfix in existence so that users of older versions of the kernel don't have a need to upgrade unless they need some new feature, but I don't have time nor resources to do so. I contributed with this patch because it affected me and took me some time to figure out what was going on, find the patches, test them, etc.

Having that said, I think the question here is: do we want users of the stable branch to have (some of) the latest bugfixes so that their systems work without difficulties, or do we want to push those users to not-so-stable versions to get the upstream fixes?
Comment 12 Mike Pagano gentoo-dev 2010-08-12 22:37:30 UTC
We dont apply user's patches, thanks.

Identify patches from Linus tree that CLEANLY apply to older kernels and I will apply them