From patchwork Tue Jun 16 14:22:17 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Stezenbach X-Patchwork-Id: 30626 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n5GEkjWP009401 for ; Tue, 16 Jun 2009 14:46:46 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756225AbZFPOql (ORCPT ); Tue, 16 Jun 2009 10:46:41 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755776AbZFPOql (ORCPT ); Tue, 16 Jun 2009 10:46:41 -0400 Received: from bar.sig21.net ([80.81.252.164]:35776 "EHLO bar.sig21.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755470AbZFPOqk (ORCPT ); Tue, 16 Jun 2009 10:46:40 -0400 X-Greylist: delayed 1423 seconds by postgrey-1.27 at vger.kernel.org; Tue, 16 Jun 2009 10:46:40 EDT Received: from p5099b351.dip0.t-ipconnect.de ([80.153.179.81] helo=void.local) by bar.sig21.net with esmtpsa (TLS-1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.63) (envelope-from ) id 1MGZYF-0003WK-P3; Tue, 16 Jun 2009 16:22:16 +0200 Received: from js by void.local with local (Exim 4.69) (envelope-from ) id 1MGZYH-0001Sn-Hh; Tue, 16 Jun 2009 16:22:17 +0200 Date: Tue, 16 Jun 2009 16:22:17 +0200 From: Johannes Stezenbach To: "Rafael J. Wysocki" Cc: Andrew Morton , linux-kernel@vger.kernel.org, Dave Jones , Pavel Machek , ACPI Devel Maling List , Len Brown , Venki Pallipadi , Arjan van de Ven , Thomas Gleixner Subject: Re: 2.6.30: hibernation/swsusp lockup due to acpi-cpufreq Message-ID: <20090616142217.GA5548@sig21.net> References: <20090615232709.GA6059@sig21.net> <200906160216.29537.rjw@sisk.pl> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <200906160216.29537.rjw@sisk.pl> User-Agent: Mutt/1.5.19 (2009-01-05) X-Spam-21-Score: -3.3 (---) X-Spam-21-Report: No, score=-3.3 required=5.0 tests=ALL_TRUSTED=-1.8, AWL=1.076, BAYES_00=-2.599 autolearn=no Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org On Tue, Jun 16, 2009 at 02:16:28AM +0200, Rafael J. Wysocki wrote: > On Tuesday 16 June 2009, Johannes Stezenbach wrote: > > > > on my aging Thinkpad T42p resume from hibernation > > fails in 2.6.30. There is a backtrace on suspend prior > > to writing out the disk image, but I cannot capture > > it due to lack of a serial port on the T42p. On > > resume the machine is dead after reading the image > > from disk. > > > > I've bisected this to: > > > > commit 01599fca6758d2cd133e78f87426fc851c9ea725 > > Author: Andrew Morton > > Date: Mon Apr 13 10:27:49 2009 -0700 > > > > cpufreq: use smp_call_function_[single|many]() in acpi-cpufreq.c > > > > I see in git log that this commit is known broken, but the > > resume on my machine is still broken in 2.6.30. > > > > If I disable CONFIG_X86_ACPI_CPUFREQ suspend/resume works in 2.6.30. > > Thanks a lot for bisecting this! > > Is it the reason for the enabling of interrupts during cpufreq_suspend()? > > /me wonders > > Is there anything we can do to fix this quickly? I think your guess was right. The patch below fixes the problem for me (hang after resume and backtrace on suspend). Johannes ----------------------------- Fix swsusp failure on !SMP Commit 01599fca6758d2cd133e78f87426fc851c9ea725 introduced a regression which caused a backtrace on suspend and a hang on resume on a Thinkpad T42p (Pentium M CPU). Signed-off-by: Johannes Stezenbach --- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- linux-2.6.30/kernel/up.c.orig 2009-06-16 15:56:28.000000000 +0200 +++ linux-2.6.30/kernel/up.c 2009-06-16 15:57:27.000000000 +0200 @@ -10,11 +10,13 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info, int wait) { + unsigned long flags; + WARN_ON(cpu != 0); - local_irq_disable(); + local_irq_save(flags); (func)(info); - local_irq_enable(); + local_irq_restore(flags); return 0; }