From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934037AbZHEJuz (ORCPT ); Wed, 5 Aug 2009 05:50:55 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S933902AbZHEJuz (ORCPT ); Wed, 5 Aug 2009 05:50:55 -0400 Received: from cpsmtpm-eml104.kpnxchange.com ([195.121.3.8]:55180 "EHLO CPSMTPM-EML104.kpnxchange.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933096AbZHEJuy (ORCPT ); Wed, 5 Aug 2009 05:50:54 -0400 From: Frans Pop To: Linux Kernel Mailing List Subject: Re: BUG: spinlock bad magic on CPU#1, swapper/1 Date: Wed, 5 Aug 2009 11:50:52 +0200 User-Agent: KMail/1.9.9 Cc: netdev@vger.kernel.org, Jiri Pirko References: <200908051136.44908.elendil@planet.nl> In-Reply-To: <200908051136.44908.elendil@planet.nl> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200908051150.53301.elendil@planet.nl> X-OriginalArrivalTime: 05 Aug 2009 09:50:54.0017 (UTC) FILETIME=[391EEB10:01CA15B2] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday 05 August 2009, Frans Pop wrote: > Current v2.6.31-rc5-246-g90bc1a6 gives me: > > BUG: spinlock bad magic on CPU#1, swapper/1 > lock: ffff88007e1889c8, .magic: 00000000, .owner: /-1, .owner_cpu: 0 > Pid: 1, comm: swapper Not tainted 2.6.31-rc5 #4 > Call Trace: > [] spin_bug+0xa2/0xaa > [] _raw_spin_lock+0x23/0x135 > [] _spin_lock_bh+0x19/0x1e > [] alloc_netdev_mq+0x127/0x211 > [] ? netdev_init+0x6a/0xac > [] ? loopback_setup+0x0/0x7b > [] loopback_net_init+0x30/0x7a > [] register_pernet_device+0x2b/0x58 > [] net_dev_init+0x13d/0x19b > [] ? net_dev_init+0x0/0x19b > [] do_one_initcall+0x56/0x12b > [] ? register_irq_proc+0xb0/0xcc > [] ? proc_pid_cmdline+0x5a/0xf9 > [] kernel_init+0x14d/0x1a3 > [] child_rip+0xa/0x20 > [] ? kernel_init+0x0/0x1a3 > [] ? child_rip+0x0/0x20 > > Error occurs during early boot (between PCI/ACPI init and PnP init). Reverting the following commit fixes it: commit a6ac65db2329e7685299666f5f7b6093c7b0f3a0 Author: Jiri Pirko Date: Thu Jul 30 01:06:12 2009 +0000 net: restore the original spinlock to protect unicast list There is a path when an assetion in dev_unicast_sync() appears. igmp6_group_added -> dev_mc_add -> __dev_set_rx_mode -> -> vlan_dev_set_rx_mode -> dev_unicast_sync Therefore we cannot protect this list with rtnl. This patch restores the original protecting this list with spinlock. Signed-off-by: Jiri Pirko Tested-by: Meelis Roos Signed-off-by: David S. Miller