[Karmic] SRU: Fix boot hang on Acer TravelMate 2440
Andy Whitcroft
apw at canonical.com
Wed Dec 16 09:16:12 UTC 2009
On Mon, Dec 14, 2009 at 07:16:33PM +0100, Stefan Bader wrote:
> SRU Justification:
>
> Impact: Upstream changes between Jaunty and Karmic disabled the ARB_DISABLE
> call as it is a NOP on recent platforms. However the test for CPU model
> and version missed some systems which then hang on boot.
>
> Fix: The following patch has been tested and was submitted upstream,
> but has not been picked up, yet (but IMO is just a matter of time).
> As it is a regression agains Jaunty and the impact is a non-working
> system, I think this should be taken ahead of stable. It should be
> safe as well as it just reduces the number of systems which get handled
> the new way.
>
> Testcase: Boot of affected systems hangs without patch.
>
>
>
> To: lenb at kernel.org
> Cc: linux-acpi at vger.kernel.org, Zhao Yakui <yakui.zhao at intel.com>,
> stable at kernel.org
> Subject: [Resend PATCH] acpi: Use the ARB_DISABLE for the CPU which model id is less than 0x0f.
> Date: Fri, 11 Dec 2009 15:17:20 +0800
> From: Zhao Yakui <yakui.zhao at intel.com>
>
> OriginalSource: linux-acpi mailing list
> BugLink: http://bugs.launchpad.net/bugs/481765
>
> ARB_DISABLE is a NOP on all of the recent Intel platforms. For such platforms,
> reduce contention on c3_lock by skipping the fake ARB_DISABLE.
>
> The cpu model id on one laptop is 14. If we disable ARB_DISABLE on this box,
> the box can't be booted correctly. But if we still enable ARB_DISABLE on this
> box, the box can be booted correctly.
>
> So we still use the ARB_DISABLE for the cpu which mode id is less than 0x0f.
>
> http://bugzilla.kernel.org/show_bug.cgi?id=14700
>
> Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
> Acked-by: Pallipadi, Venkatesh <venkatesh.pallipadi at intel.com>
> cc: stable at kernel.org
> Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
> ---
> arch/x86/kernel/acpi/cstate.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c
> index 59cdfa4..2e837f5 100644
> --- a/arch/x86/kernel/acpi/cstate.c
> +++ b/arch/x86/kernel/acpi/cstate.c
> @@ -48,7 +48,7 @@ void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flags,
> * P4, Core and beyond CPUs
> */
> if (c->x86_vendor == X86_VENDOR_INTEL &&
> - (c->x86 > 0xf || (c->x86 == 6 && c->x86_model >= 14)))
> + (c->x86 > 0xf || (c->x86 == 6 && c->x86_model >= 0x0f)))
> flags->bm_control = 0;
> }
> EXPORT_SYMBOL(acpi_processor_power_init_bm_check);
> --
> 1.5.4.5
I remember testing this one with the affected user. Also looks good.
Acked-by: Andy Whitcroft <apw at canonical.com>
-apw
More information about the kernel-team
mailing list