From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755974AbYHZIZU (ORCPT ); Tue, 26 Aug 2008 04:25:20 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752567AbYHZIZF (ORCPT ); Tue, 26 Aug 2008 04:25:05 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:38276 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753356AbYHZIZE (ORCPT ); Tue, 26 Aug 2008 04:25:04 -0400 Date: Tue, 26 Aug 2008 01:24:58 -0700 From: Andrew Morton To: "Dmitry Adamushko" Cc: "Ryan Hope" , LKML , "Vegard Nossum" Subject: Re: [-mmotm] BUG: scheduling while atomic: swapper Message-Id: <20080826012458.abe3bbba.akpm@linux-foundation.org> In-Reply-To: References: <48f7fe350808251909g26207e7agdda6408c0b46a1ed@mail.gmail.com> X-Mailer: Sylpheed 2.4.8 (GTK+ 2.12.5; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 26 Aug 2008 10:11:24 +0200 "Dmitry Adamushko" wrote: > 2008/8/26 Ryan Hope : > > BUG: scheduling while atomic: swapper/1/0x00000002 > > Modules linked in: > > Pid: 1, comm: swapper Tainted: G W 2.6.27-rc4-zenmmotm1 #4 > > [] schedule+0x287/0x6d0 > > [] vsnprintf+0x3a6/0x6c0 > > [] schedule_timeout+0x7d/0xb0 > > [] __wake_up+0x38/0x50 > > [] wait_for_common+0x8a/0x130 > > [] default_wake_function+0x0/0x10 > > [] call_usermodehelper_exec+0xc3/0xf0 > > [] kobject_uevent_env+0x37e/0x3a0 > > [] device_add+0x551/0x630 > > [] device_create_vargs+0xb3/0xd0 > > [] microcode_intel_module_init+0x0/0x39 > > It doesn't look like Linus's tree... there is no > microcode_intel_module_init() in .27+. So what is it? mmotm is linux-next plus -mm stuff > Anyway, your trace might be explained by a bug that has been already > fixed in Ingo's -tip. > > Here is the commit: > http://git.kernel.org/?p=linux/kernel/git/x86/linux-2.6-tip.git;a=commit;h=8343ef2437c599d30568e6b5a257a40bf2f4902b Yes, an unbalanced get_cpu() would explain it. However that patch is already in current -mm. Ryan, can you please check to see if it's in the version you tested? The "fixed" version looks like this: static int __init microcode_intel_module_init(void) { struct cpuinfo_x86 *c = &cpu_data(get_cpu()); if (c->x86_vendor == X86_VENDOR_INTEL) return microcode_init(µcode_intel_ops, THIS_MODULE); else return -ENODEV; }