From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S267231AbUHDC2R (ORCPT ); Tue, 3 Aug 2004 22:28:17 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S267238AbUHDC11 (ORCPT ); Tue, 3 Aug 2004 22:27:27 -0400 Received: from mail.tpgi.com.au ([203.12.160.103]:63441 "EHLO mail.tpgi.com.au") by vger.kernel.org with ESMTP id S267237AbUHDC1B (ORCPT ); Tue, 3 Aug 2004 22:27:01 -0400 Subject: MTRR driver model support broken on SMP. From: Nigel Cunningham Reply-To: ncunningham@linuxmail.org To: Linux Kernel Mailing List Content-Type: text/plain Message-Id: <1091585241.3303.6.camel@laptop.cunninghams> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6-1mdk Date: Wed, 04 Aug 2004 12:07:21 +1000 Content-Transfer-Encoding: 7bit X-TPG-Antivirus: Passed Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hi all. MTRR driver support is broken on SMP because it calls smp functions with interrupts disabled, but interrupts should be disabled because it is called via device_power_up. Badness in smp_call_function at arch/i386/kernel/smp.c:565 [] dump_stack+0x1e/0x20 [] smp_call_function+0x12b/0x137 [] set_mtrr+0x67/0x121 [] mtrr_restore+0x4f/0x73 [] sysdev_resume+0x6f/0xf0 [] device_power_up+0x8/0xf [] suspend_drivers_resume+0x1a/0x49 [suspend_core] [] do_suspend2_resume_2+0xf6/0x11d [suspend_core] [] do_suspend2_lowlevel+0x716/0x71c [] save_image+0x1b8/0x252 [suspend_core] [] do_activate+0x934/0x973 [suspend_core] [] software_suspend_pending+0x75/0x77 [] proc_software_suspend_pending+0x8/0xd [] proc_file_write+0x3b/0x3d [] vfs_write+0xa2/0x10e [] sys_write+0x3f/0x5d [] sysenter_past_esp+0x52/0x71 Regards, Nigel