On Fri, Nov 09, 2007 at 10:10:43AM -0800, Pallipadi, Venkatesh wrote: > > > >-----Original Message----- > >From: Andrew Morton [mailto:akpm@xxxxxxxxxxxxxxxxxxxx] > >Sent: Friday, November 09, 2007 2:03 AM > >To: SANGOI DINO LEONARDO > >Cc: linux-kernel@xxxxxxxxxxxxxxx; Rafael J. Wysocki; Brown, > >Len; Pallipadi, Venkatesh; linux-acpi@xxxxxxxxxxxxxxx > >Subject: Re: 2.6.24-rc1 and 2.6.24.rc2 hangs while running > >udev on my laptop > > > > > >(cc's added) > > > >On Fri, 9 Nov 2007 09:47:02 +0100 SANGOI DINO LEONARDO > ><dino.leonardo.sangoi@xxxxxxxxxx> wrote: > > > >> Hi, > >> > >> My laptop (an HP nx6125) doesn't boot with kernels 2.6.24-rc1 and > >> 2.6.24.rc2. > >> It works fine with 2.6.23 and older. > >> > >> I seen this bug first while running fedora rawhide, so you > >can find hardware > >> > >> info and boot logs at > >https://bugzilla.redhat.com/show_bug.cgi?id=312201. > >> > >> I did a git bisect, and got this: > >> > >> $ git bisect bad > >> 4f86d3a8e297205780cca027e974fd5f81064780 is first bad commit > >> commit 4f86d3a8e297205780cca027e974fd5f81064780 > >> Author: Len Brown <len.brown@xxxxxxxxx> > >> Date: Wed Oct 3 18:58:00 2007 -0400 > >> > >> cpuidle: consolidate 2.6.22 cpuidle branch into one patch > >> [SNIP full commit log] > >> > <snip> > > -------- > >> > >> Config is taken from Fedora kernel. CONFIG_CPU_IDLE is set > >to y (tell me if > >> full config is needed). > >> > >> If I use 'nolapic' parameter, kernel 2.6.24-rc1 boots fine. > >> Setting CONFIG_CPU_IDLE=n also gives me a working kernel. > >> > >> Ask me if more info is needed (please CC me). > >> > >> Thanks, > >> > >> Dino > > Dino, Can you try the patch below over rc2 and see whether it fixes the problem. Looking at the code, it should fix the problem. If it does not, can you send me the output of acpidump from your system. That will help to look further into this. You can get acpidump from latest pmtools package here. www.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/ Thanks, Venki Test patch for the bug report at https://bugzilla.redhat.com/show_bug.cgi?id=312201 Signed-off-by: Venki Pallipadi <venkatesh.pallipadi@xxxxxxxxx> Index: linux-2.6.24-rc/drivers/acpi/processor_idle.c =================================================================== --- linux-2.6.24-rc.orig/drivers/acpi/processor_idle.c +++ linux-2.6.24-rc/drivers/acpi/processor_idle.c @@ -1502,23 +1502,28 @@ static int acpi_idle_enter_bm(struct cpu } else { acpi_idle_update_bm_rld(pr, cx); - spin_lock(&c3_lock); - c3_cpu_count++; - /* Disable bus master arbitration when all CPUs are in C3 */ - if (c3_cpu_count == num_online_cpus()) - acpi_set_register(ACPI_BITREG_ARB_DISABLE, 1); - spin_unlock(&c3_lock); + if (pr->flags.bm_check && pr->flags.bm_control) { + spin_lock(&c3_lock); + c3_cpu_count++; + /* Disable bus master arbitration when all CPUs are in C3 */ + if (c3_cpu_count == num_online_cpus()) + acpi_set_register(ACPI_BITREG_ARB_DISABLE, 1); + spin_unlock(&c3_lock); + } else if (!pr->flags.bm_check) { + ACPI_FLUSH_CPU_CACHE(); + } t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); acpi_idle_do_entry(cx); t2 = inl(acpi_gbl_FADT.xpm_timer_block.address); - spin_lock(&c3_lock); /* Re-enable bus master arbitration */ - if (c3_cpu_count == num_online_cpus()) + if (pr->flags.bm_check && pr->flags.bm_control) { + spin_lock(&c3_lock); acpi_set_register(ACPI_BITREG_ARB_DISABLE, 0); - c3_cpu_count--; - spin_unlock(&c3_lock); + c3_cpu_count--; + spin_unlock(&c3_lock); + } } #if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86_TSC) - 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