Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753138AbYLFRBl (ORCPT ); Sat, 6 Dec 2008 12:01:41 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751693AbYLFRBc (ORCPT ); Sat, 6 Dec 2008 12:01:32 -0500 Received: from mail.vyatta.com ([76.74.103.46]:52628 "EHLO mail.vyatta.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751042AbYLFRB2 (ORCPT ); Sat, 6 Dec 2008 12:01:28 -0500 X-Spam-Flag: NO X-Spam-Score: -0.939 Date: Sat, 6 Dec 2008 09:01:27 -0800 (PST) From: Stephen Hemminger To: Mariusz Kozlowski Cc: kernel-testers@vger.kernel.org, linux-next@vger.kernel.org, LKML , Stephen Rothwell , "David S. Miller" Message-ID: <2681028.65321228582887579.JavaMail.root@tahiti.vyatta.com> In-Reply-To: <200812061455.37331.m.kozlowski@tuxland.pl> Subject: Re: linux-next: Tree for December 4 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [96.225.207.155] X-Mailer: Zimbra 5.0.8_GA_2463.RHEL4 (ZimbraWebClient - FF3.0 (Linux)/5.0.8_GA_2463.RHEL4) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 50946 Lines: 911 Which ethernet device driver? ----- Original Message ----- From: "Mariusz Kozlowski" To: "Stephen Rothwell" , "Stephen Hemminger" , "David S. Miller" Cc: kernel-testers@vger.kernel.org, linux-next@vger.kernel.org, "LKML" Sent: Saturday, December 6, 2008 5:55:37 AM GMT -08:00 US/Canada Pacific Subject: Re: linux-next: Tree for December 4 Hi, > I didn't run linux-next for some time. Today I gave it a shot and > a few interesting things poped out: > > Linux agpgart interface v0.103 > Serial: 8250/16550 driver4 ports, IRQ sharing enabled > serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A > serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A > ============================================================================= > BUG kmalloc-4096: Invalid object pointer 0xffff88007fb20010 > ----------------------------------------------------------------------------- I'm told the serial one is already fixed. > I also noticed my network wasn't reachable. That's probably not related to the kernel > but to check if my link is ok I run mii-tool and the result is NULL pointer dereference: > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000138 > IP: [] dev_ifsioc+0x1f/0x320 > PGD 736e3067 PUD 736ca067 PMD 0 > Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC > last sysfs file: /sys/devices/pci0000:00/0000:00:1e.0/0000:05:01.0/resource > CPU 1 > Modules linked in: nfsd lockd sunrpc exportfs snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss usbhid gspca_zc3xx gspca_main compat_ioctl32 videodev v4l1_compat snd_mixer_oss usb_storage libusual ehci_hcd uhci_hcd usbcore parport_pc snd_hda_codec_realtek thermal parport snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_timer i2c_i801 snd soundcore snd_page_alloc sr_mod pcspkr sg i2c_core intel_agp processor rtc button cdrom > Pid: 4768, comm: mii-tool Not tainted 2.6.28-rc7-next-20081204 #1 > RIP: 0010:[] [] dev_ifsioc+0x1f/0x320 > RSP: 0018:ffff88006e623da8 EFLAGS: 00010246 > RAX: 0000000000000000 RBX: 0000000000008947 RCX: 00000000019369c2 > RDX: 0000000000000610 RSI: ffff88006e623e0c RDI: 00000000ffffffff > RBP: ffff88006e623e08 R08: 00000000019369c2 R09: 0000000000000001 > R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000 > R13: 0000000000000000 R14: ffffffff80d7da40 R15: 00007fff55e4ee88 > FS: 00007f944de2f6f0(0000) GS:ffff88007f8047d0(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b > CR2: 0000000000000138 CR3: 000000006e4d9000 CR4: 00000000000006e0 > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 > Process mii-tool (pid: 4768, threadinfo ffff88006e622000, task ffff88006e45ba80) > Stack: > 0000000000008947 ffff88006e623e08 0000000000603400 ffffffff8042c4c7 > ffffe2000003f428 0000000000603400 0000000001213025 ffffffff8028e3fd > ffff88007d4f5500 00007f944db51330 ffff880076fbb180 0000000000000096 > Call Trace: > [] ? dev_ioctl+0x2c7/0x590 > [] ? __do_fault+0x1dd/0x4a0 > [] ? sock_ioctl+0x72/0x250 > [] ? vfs_ioctl+0x2f/0xa0 > [] ? do_vfs_ioctl+0x7d/0x4c0 > [] ? lockdep_sys_exit_thunk+0x35/0x67 > [] ? sys_ioctl+0x49/0x80 > [] ? system_call_fastpath+0x16/0x1b > Code: f8 bd f1 ff e9 52 fe ff ff 0f 1f 00 48 83 ec 18 48 89 1c 24 89 d3 48 89 6c 24 08 4c 89 64 24 10 48 89 f5 e8 f4 d4 ff ff 49 89 c4 <48> 8b 88 38 01 00 00 8d 83 ec 76 ff ff 83 f8 5d 77 0f 89 c0 ff > RIP [] dev_ifsioc+0x1f/0x320 > RSP > CR2: 0000000000000138 > ---[ end trace 787e122ecd30f760 ]--- And this got bisected to: commit d314774cf2cd5dfeb39a00d37deee65d4c627927 Author: Stephen Hemminger Date: Wed Nov 19 21:32:24 2008 -0800 netdev: network device operations infrastructure This patch changes the network device internal API to move adminstrative operations out of the network device structure and into a separate structure. This patch involves some hackery to maintain compatablity between the new and old model, so all 300+ drivers don't have to be changed at once. For drivers that aren't converted yet, the netdevice_ops virt function list still resides in the net_device structure. For old protocols, the new net_device_ops are copied out to the old net_device pointers. After the transistion is completed the nag message can be changed to an WARN_ON, and the compatiablity code can be made configurable. Some function pointers aren't moved: * destructor can't be in net_device_ops because it may need to be referenced after the module is unloaded. * neighbor setup is manipulated in a couple of places that need special consideration * hard_start_xmit is in the fast path for transmit. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller (gdb) l *dev_ifsioc+0x1f 0xffffffff8042309f is in dev_ifsioc (/home/mako/linux/lkt/sources/linux-next/net/core/dev.c:3553). 3548 * Perform the SIOCxIFxxx calls, inside rtnl_lock() 3549 */ 3550 static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd) 3551 { 3552 int err; 3553 struct net_device *dev = __dev_get_by_name(net, ifr->ifr_name); 3554 3555 if (!dev) 3556 return -ENODEV; 3557 > > > Full dmesg and .config is attached. > > Mariusz > > > Right before this there was also a rather long lockdep info triggered by starting skype: > > ====================================================== > [ INFO: soft-safe -> soft-unsafe lock order detected ] > 2.6.28-rc7-next-20081204 #1 > ------------------------------------------------------ > skype/4695 [HC0[0]:SC0[1]:HE1:SE0] is trying to acquire: > (&fbc->lock){--..}, at: [] __percpu_counter_add+0x5e/0xd0 > > and this task is already holding: > (slock-AF_INET){-+..}, at: [] tcp_close+0x166/0x4a0 > which would create a new lock dependency: > (slock-AF_INET){-+..} -> (&fbc->lock){--..} > > but this new dependency connects a soft-irq-safe lock: > (slock-AF_INET){-+..} > ... which became soft-irq-safe at: > [] 0xffffffffffffffff > > to a soft-irq-unsafe lock: > (&fbc->lock){--..} > ... which became soft-irq-unsafe at: > ... [] __lock_acquire+0x82d/0xa50 > [] lock_acquire+0x53/0x70 > [] __percpu_counter_add+0x5e/0xd0 > [] _spin_lock+0x33/0x40 > [] __percpu_counter_add+0x5e/0xd0 > [] kmem_cache_alloc+0xd1/0xe0 > [] __percpu_counter_add+0x5e/0xd0 > [] get_empty_filp+0x68/0x140 > [] path_lookup_open+0x3b/0xd0 > [] open_exec+0x24/0xd0 > [] vfs_read+0x12a/0x160 > [] kernel_read+0x38/0x50 > [] load_elf_binary+0x18b9/0x1d20 > [] generic_file_aio_read+0x4ff/0x5e0 > [] validate_chain+0x460/0x1200 > [] validate_chain+0x460/0x1200 > [] __lock_acquire+0x447/0xa50 > [] load_elf_binary+0x0/0x1e70 > [] load_elf_binary+0x0/0x1d20 > [] search_binary_handler+0xd0/0x2e0 > [] load_script+0x270/0x280 > [] load_elf_binary+0x0/0x1d20 > [] load_script+0x0/0x280 > [] search_binary_handler+0xd0/0x2e0 > [] do_execve+0x22e/0x290 > [] sys_execve+0x49/0x80 > [] stub_execve+0x6a/0xc0 > [] 0xffffffffffffffff > > other info that might help us debug this: > > 1 lock held by skype/4695: > #0: (slock-AF_INET){-+..}, at: [] tcp_close+0x166/0x4a0 > > the soft-irq-safe lock's dependencies: > -> (slock-AF_INET){-+..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] lock_sock_nested+0x1e/0x110 > [] _spin_lock_bh+0x38/0x50 > [] lock_sock_nested+0x1e/0x110 > [] lock_sock_nested+0x1e/0x110 > [] validate_chain+0x460/0x1200 > [] validate_chain+0x460/0x1200 > [] udp_destroy_sock+0xb/0x20 > [] sk_common_release+0x18/0x80 > [] inet_release+0x3e/0x70 > [] sock_release+0x19/0xb0 > [] sock_close+0x12/0x40 > [] __fput+0xbb/0x200 > [] filp_close+0x54/0x90 > [] sys_close+0x9f/0x110 > [] system_call_fastpath+0x16/0x1b > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > hardirq-on-W at: > [] __lock_acquire+0x805/0xa50 > [] lock_acquire+0x53/0x70 > [] lock_sock_nested+0x1e/0x110 > [] _spin_lock_bh+0x38/0x50 > [] lock_sock_nested+0x1e/0x110 > [] lock_sock_nested+0x1e/0x110 > [] validate_chain+0x460/0x1200 > [] validate_chain+0x460/0x1200 > [] udp_destroy_sock+0xb/0x20 > [] sk_common_release+0x18/0x80 > [] inet_release+0x3e/0x70 > [] sock_release+0x19/0xb0 > [] sock_close+0x12/0x40 > [] __fput+0xbb/0x200 > [] filp_close+0x54/0x90 > [] sys_close+0x9f/0x110 > [] system_call_fastpath+0x16/0x1b > [] 0xffffffffffffffff > } > ... key at: [] af_family_slock_keys+0x10/0x120 > -> (&rt_hash_locks[i]){-+..} ops: 0 { > initial-use at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > hardirq-on-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.40927+0x0/0x8 > -> (&zone->lock){.+..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] free_pages_bulk+0x36/0x300 > [] _spin_lock+0x33/0x40 > [] free_pages_bulk+0x36/0x300 > [] free_pages_bulk+0x36/0x300 > [] free_hot_cold_page+0x262/0x2f0 > [] free_all_bootmem_core+0xd8/0x240 > [] _etext+0x0/0x3 > [] mem_init+0x3c/0x190 > [] start_kernel+0x28f/0x440 > [] x86_64_start_kernel+0xca/0xe0 > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.29131+0x0/0x8 > ... acquired at: > [] get_page_from_freelist+0x525/0x5b0 > [] validate_chain+0xc05/0x1200 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] get_page_from_freelist+0x525/0x5b0 > [] _spin_lock_irqsave+0x3e/0x60 > [] get_page_from_freelist+0x525/0x5b0 > [] get_page_from_freelist+0x525/0x5b0 > [] __alloc_pages_internal+0xaa/0x450 > [] __slab_alloc+0x17a/0x670 > [] neigh_create+0x74/0x5b0 > [] neigh_create+0x74/0x5b0 > [] kmem_cache_alloc+0xbf/0xe0 > [] neigh_create+0x74/0x5b0 > [] trace_hardirqs_on_caller+0x71/0x180 > [] local_bh_enable_ip+0x81/0xf0 > [] neigh_lookup+0x10a/0x140 > [] arp_bind_neighbour+0xa1/0xb0 > [] rt_intern_hash+0x208/0x4f0 > [] __rcu_read_unlock+0xcd/0xe0 > [] __ip_route_output_key+0x413/0xa60 > [] ip4_datagram_connect+0x177/0x2a0 > [] local_bh_enable_ip+0x81/0xf0 > [] sys_connect+0x86/0xe0 > [] retint_swapgs+0xe/0x13 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] trace_hardirqs_on_thunk+0x3a/0x3f > [] system_call_fastpath+0x16/0x1b > [] 0xffffffffffffffff > > ... acquired at: > [] 0xffffffffffffffff > > -> (rt_peer_lock){-+..} ops: 0 { > initial-use at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > hardirq-on-W at: > [] 0xffffffffffffffff > } > ... key at: [] rt_peer_lock.41771+0x18/0x40 > ... acquired at: > [] 0xffffffffffffffff > > -> (inet_peer_idlock){-+..} ops: 0 { > initial-use at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > hardirq-on-W at: > [] 0xffffffffffffffff > } > ... key at: [] inet_peer_idlock+0x18/0x40 > ... acquired at: > [] 0xffffffffffffffff > > -> (&n->lock){-+-+} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] __neigh_event_send+0x2a/0x200 > [] _write_lock_bh+0x38/0x50 > [] __neigh_event_send+0x2a/0x200 > [] __neigh_event_send+0x2a/0x200 > [] neigh_resolve_output+0x147/0x2d0 > [] ip_generic_getfrag+0x4d/0x90 > [] ip_push_pending_frames+0x27c/0x400 > [] udp_push_pending_frames+0x233/0x3c0 > [] udp_sendmsg+0x361/0x730 > [] local_bh_enable_ip+0x81/0xf0 > [] local_bh_enable_ip+0x81/0xf0 > [] neigh_lookup+0x10a/0x140 > [] sock_sendmsg+0xcb/0x100 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] __lock_acquire+0x447/0xa50 > [] autoremove_wake_function+0x0/0x30 > [] __do_fault+0x1dd/0x4a0 > [] validate_chain+0x460/0x1200 > [] sockfd_lookup_light+0x41/0x80 > [] sys_sendto+0x119/0x180 > [] __lock_acquire+0x447/0xa50 > [] udp_poll+0x0/0x120 > [] system_call_fastpath+0x16/0x1b > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > hardirq-on-W at: > [] __lock_acquire+0x805/0xa50 > [] lock_acquire+0x53/0x70 > [] __neigh_event_send+0x2a/0x200 > [] _write_lock_bh+0x38/0x50 > [] __neigh_event_send+0x2a/0x200 > [] __neigh_event_send+0x2a/0x200 > [] neigh_resolve_output+0x147/0x2d0 > [] ip_generic_getfrag+0x4d/0x90 > [] ip_push_pending_frames+0x27c/0x400 > [] udp_push_pending_frames+0x233/0x3c0 > [] udp_sendmsg+0x361/0x730 > [] local_bh_enable_ip+0x81/0xf0 > [] local_bh_enable_ip+0x81/0xf0 > [] neigh_lookup+0x10a/0x140 > [] sock_sendmsg+0xcb/0x100 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] __lock_acquire+0x447/0xa50 > [] autoremove_wake_function+0x0/0x30 > [] __do_fault+0x1dd/0x4a0 > [] validate_chain+0x460/0x1200 > [] sockfd_lookup_light+0x41/0x80 > [] sys_sendto+0x119/0x180 > [] __lock_acquire+0x447/0xa50 > [] udp_poll+0x0/0x120 > [] system_call_fastpath+0x16/0x1b > [] 0xffffffffffffffff > in-softirq-R at: > [] 0xffffffffffffffff > hardirq-on-R at: > [] 0xffffffffffffffff > } > ... key at: [] __key.31965+0x0/0xc > -> (&base->lock){++..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] lock_timer_base+0x34/0x70 > [] _spin_lock_irqsave+0x3e/0x60 > [] lock_timer_base+0x34/0x70 > [] lock_timer_base+0x34/0x70 > [] _spin_unlock_irqrestore+0x65/0x80 > [] __mod_timer+0x2a/0xe0 > [] _spin_unlock_irqrestore+0x40/0x80 > [] con_init+0x274/0x2a0 > [] console_init+0x1a/0x30 > [] start_kernel+0x265/0x440 > [] x86_64_start_kernel+0xca/0xe0 > [] 0xffffffffffffffff > in-hardirq-W at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.21559+0x0/0x8 > ... acquired at: > [] lock_timer_base+0x34/0x70 > [] validate_chain+0xc05/0x1200 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] lock_timer_base+0x34/0x70 > [] _spin_lock_irqsave+0x3e/0x60 > [] lock_timer_base+0x34/0x70 > [] lock_timer_base+0x34/0x70 > [] __mod_timer+0x2a/0xe0 > [] neigh_add_timer+0x17/0x40 > [] __neigh_event_send+0xd3/0x200 > [] neigh_resolve_output+0x147/0x2d0 > [] ip_generic_getfrag+0x4d/0x90 > [] ip_push_pending_frames+0x27c/0x400 > [] udp_push_pending_frames+0x233/0x3c0 > [] udp_sendmsg+0x361/0x730 > [] local_bh_enable_ip+0x81/0xf0 > [] local_bh_enable_ip+0x81/0xf0 > [] neigh_lookup+0x10a/0x140 > [] sock_sendmsg+0xcb/0x100 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] __lock_acquire+0x447/0xa50 > [] autoremove_wake_function+0x0/0x30 > [] __do_fault+0x1dd/0x4a0 > [] validate_chain+0x460/0x1200 > [] sockfd_lookup_light+0x41/0x80 > [] sys_sendto+0x119/0x180 > [] __lock_acquire+0x447/0xa50 > [] udp_poll+0x0/0x120 > [] system_call_fastpath+0x16/0x1b > [] 0xffffffffffffffff > > -> (&list->lock#3){.+..} ops: 0 { > initial-use at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.17594+0x0/0x8 > ... acquired at: > [] 0xffffffffffffffff > > ... acquired at: > [] 0xffffffffffffffff > > -> (&list->lock){-+..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] skb_queue_tail+0x24/0x60 > [] _spin_lock_irqsave+0x3e/0x60 > [] skb_queue_tail+0x24/0x60 > [] skb_queue_tail+0x24/0x60 > [] netlink_broadcast+0x2cd/0x3c0 > [] kobject_uevent_env+0x336/0x3f0 > [] kobject_action_type+0x5f/0xb0 > [] bus_uevent_store+0x39/0x50 > [] sysfs_write_file+0xcc/0x150 > [] vfs_write+0xc8/0x170 > [] sys_write+0x53/0x90 > [] system_call_fastpath+0x16/0x1b > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > hardirq-on-W at: > [] __lock_acquire+0x805/0xa50 > [] lock_acquire+0x53/0x70 > [] udp_poll+0x54/0x120 > [] _spin_lock_bh+0x38/0x50 > [] udp_poll+0x54/0x120 > [] udp_poll+0x54/0x120 > [] do_sys_poll+0x1e2/0x3d0 > [] __pollwait+0x0/0x130 > [] default_wake_function+0x0/0x10 > [] default_wake_function+0x0/0x10 > [] __lock_acquire+0x447/0xa50 > [] mark_held_locks+0x42/0x90 > [] validate_chain+0x460/0x1200 > [] __rcu_read_unlock+0xcd/0xe0 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] __lock_acquire+0x447/0xa50 > [] __do_fault+0x1dd/0x4a0 > [] __lock_acquire+0x447/0xa50 > [] retint_swapgs+0xe/0x13 > [] sys_poll+0x73/0xf0 > [] system_call_fastpath+0x16/0x1b > [] 0xffffffffffffffff > } > ... key at: [] __key.24456+0x0/0x8 > ... acquired at: > [] 0xffffffffffffffff > > -> (&q->lock){++..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] wait_for_common+0x37/0x190 > [] _spin_lock_irq+0x39/0x50 > [] wait_for_common+0x37/0x190 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] wait_for_common+0x37/0x190 > [] _spin_unlock_irqrestore+0x40/0x80 > [] try_to_wake_up+0x107/0x1f0 > [] kthread_create+0x9a/0x110 > [] migration_thread+0x0/0x290 > [] validate_chain+0x460/0x1200 > [] __lock_acquire+0x447/0xa50 > [] init_pit_timer+0x1f/0xc0 > [] mark_held_locks+0x42/0x90 > [] _spin_unlock_irqrestore+0x65/0x80 > [] migration_init+0x0/0x60 > [] migration_call+0x244/0x580 > [] _spin_unlock_irqrestore+0x40/0x80 > [] migration_init+0x0/0x60 > [] migration_init+0x21/0x60 > [] migration_init+0x0/0x60 > [] _stext+0x3b/0x170 > [] _spin_unlock+0x29/0x50 > [] get_apic_id+0x0/0x10 > [] native_smp_prepare_cpus+0x1ab/0x460 > [] kernel_init+0x70/0x1f0 > [] child_rip+0xa/0x20 > [] restore_args+0x0/0x30 > [] kernel_init+0x0/0x1f0 > [] child_rip+0x0/0x20 > [] 0xffffffffffffffff > in-hardirq-W at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.16756+0x0/0x8 > -> (&rq->lock){++..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] rq_attach_root+0x23/0xe0 > [] _spin_lock_irqsave+0x3e/0x60 > [] rq_attach_root+0x23/0xe0 > [] rq_attach_root+0x23/0xe0 > [] sched_init+0x375/0x510 > [] start_kernel+0x194/0x440 > [] x86_64_start_kernel+0xca/0xe0 > [] 0xffffffffffffffff > in-hardirq-W at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.42751+0x0/0x8 > -> (&vec->lock){.+..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] cpupri_set+0x8c/0xe0 > [] _spin_lock_irqsave+0x3e/0x60 > [] cpupri_set+0x8c/0xe0 > [] cpupri_set+0x8c/0xe0 > [] set_rq_online+0x51/0x70 > [] rq_attach_root+0x23/0xe0 > [] rq_attach_root+0x8d/0xe0 > [] sched_init+0x375/0x510 > [] start_kernel+0x194/0x440 > [] x86_64_start_kernel+0xca/0xe0 > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.13804+0x0/0x8 > ... acquired at: > [] cpupri_set+0x8c/0xe0 > [] validate_chain+0xc05/0x1200 > [] save_trace+0x37/0xa0 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] cpupri_set+0x8c/0xe0 > [] _spin_lock_irqsave+0x3e/0x60 > [] cpupri_set+0x8c/0xe0 > [] cpupri_set+0x8c/0xe0 > [] set_rq_online+0x51/0x70 > [] rq_attach_root+0x23/0xe0 > [] rq_attach_root+0x8d/0xe0 > [] sched_init+0x375/0x510 > [] start_kernel+0x194/0x440 > [] x86_64_start_kernel+0xca/0xe0 > [] 0xffffffffffffffff > > -> (&rt_b->rt_runtime_lock){.+..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] __enqueue_rt_entity+0xdc/0x180 > [] _spin_lock+0x33/0x40 > [] __enqueue_rt_entity+0xdc/0x180 > [] __enqueue_rt_entity+0xdc/0x180 > [] enqueue_task_rt+0x3b/0x80 > [] enqueue_task+0xb/0x20 > [] activate_task+0x1a/0x30 > [] try_to_wake_up+0x1dd/0x1f0 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] migration_call+0x64/0x580 > [] migration_init+0x3e/0x60 > [] migration_init+0x0/0x60 > [] _stext+0x3b/0x170 > [] _spin_unlock+0x29/0x50 > [] get_apic_id+0x0/0x10 > [] native_smp_prepare_cpus+0x1ab/0x460 > [] kernel_init+0x70/0x1f0 > [] child_rip+0xa/0x20 > [] restore_args+0x0/0x30 > [] kernel_init+0x0/0x1f0 > [] child_rip+0x0/0x20 > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.34599+0x0/0x8 > -> (&cpu_base->lock){++..} ops: 0 { > initial-use at: > [] 0xffffffffffffffff > in-hardirq-W at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.18863+0x0/0x8 > ... acquired at: > [] lock_hrtimer_base+0x29/0x60 > [] validate_chain+0xc05/0x1200 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] lock_hrtimer_base+0x29/0x60 > [] _spin_lock_irqsave+0x3e/0x60 > [] lock_hrtimer_base+0x29/0x60 > [] lock_hrtimer_base+0x29/0x60 > [] hrtimer_start_range_ns+0x42/0x200 > [] ktime_get_ts+0x25/0x60 > [] __enqueue_rt_entity+0x125/0x180 > [] enqueue_task_rt+0x3b/0x80 > [] enqueue_task+0xb/0x20 > [] activate_task+0x1a/0x30 > [] try_to_wake_up+0x1dd/0x1f0 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] migration_call+0x64/0x580 > [] migration_init+0x3e/0x60 > [] migration_init+0x0/0x60 > [] _stext+0x3b/0x170 > [] _spin_unlock+0x29/0x50 > [] get_apic_id+0x0/0x10 > [] native_smp_prepare_cpus+0x1ab/0x460 > [] kernel_init+0x70/0x1f0 > [] child_rip+0xa/0x20 > [] restore_args+0x0/0x30 > [] kernel_init+0x0/0x1f0 > [] child_rip+0x0/0x20 > [] 0xffffffffffffffff > > -> (&rt_rq->rt_runtime_lock){+...} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] update_curr_rt+0x110/0x190 > [] _spin_lock+0x33/0x40 > [] update_curr_rt+0x110/0x190 > [] update_curr_rt+0x110/0x190 > [] dequeue_task_rt+0x19/0x50 > [] dequeue_task+0x4f/0x60 > [] deactivate_task+0x1a/0x20 > [] thread_return+0xe3/0x59c > [] migration_thread+0x0/0x290 > [] _spin_unlock_irq+0x24/0x50 > [] migration_thread+0x0/0x290 > [] migration_thread+0x0/0x290 > [] migration_thread+0x17f/0x290 > [] migration_thread+0x0/0x290 > [] kthread+0x4b/0x80 > [] child_rip+0xa/0x20 > [] restore_args+0x0/0x30 > [] kthread+0x0/0x80 > [] child_rip+0x0/0x20 > [] 0xffffffffffffffff > in-hardirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.42703+0x0/0x8 > ... acquired at: > [] __enable_runtime+0x42/0xa0 > [] validate_chain+0xc05/0x1200 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] __enable_runtime+0x42/0xa0 > [] _spin_lock+0x33/0x40 > [] __enable_runtime+0x42/0xa0 > [] __enable_runtime+0x42/0xa0 > [] rq_online_rt+0x24/0x70 > [] set_rq_online+0x51/0x70 > [] migration_call+0x7d/0x580 > [] migration_call+0xa5/0x580 > [] notifier_call_chain+0x51/0x70 > [] _cpu_up+0xe6/0x140 > [] cpu_up+0x59/0x80 > [] kernel_init+0xf4/0x1f0 > [] child_rip+0xa/0x20 > [] restore_args+0x0/0x30 > [] kernel_init+0x0/0x1f0 > [] child_rip+0x0/0x20 > [] 0xffffffffffffffff > > ... acquired at: > [] __enqueue_rt_entity+0xdc/0x180 > [] validate_chain+0xc05/0x1200 > [] save_trace+0x37/0xa0 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] __enqueue_rt_entity+0xdc/0x180 > [] _spin_lock+0x33/0x40 > [] __enqueue_rt_entity+0xdc/0x180 > [] __enqueue_rt_entity+0xdc/0x180 > [] enqueue_task_rt+0x3b/0x80 > [] enqueue_task+0xb/0x20 > [] activate_task+0x1a/0x30 > [] try_to_wake_up+0x1dd/0x1f0 > [] trace_hardirqs_on_caller+0x11e/0x180 > [] migration_call+0x64/0x580 > [] migration_init+0x3e/0x60 > [] migration_init+0x0/0x60 > [] _stext+0x3b/0x170 > [] _spin_unlock+0x29/0x50 > [] get_apic_id+0x0/0x10 > [] native_smp_prepare_cpus+0x1ab/0x460 > [] kernel_init+0x70/0x1f0 > [] child_rip+0xa/0x20 > [] restore_args+0x0/0x30 > [] kernel_init+0x0/0x1f0 > [] child_rip+0x0/0x20 > [] 0xffffffffffffffff > > ... acquired at: > [] update_curr_rt+0x110/0x190 > [] validate_chain+0xc05/0x1200 > [] save_trace+0x37/0xa0 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] update_curr_rt+0x110/0x190 > [] _spin_lock+0x33/0x40 > [] update_curr_rt+0x110/0x190 > [] update_curr_rt+0x110/0x190 > [] dequeue_task_rt+0x19/0x50 > [] dequeue_task+0x4f/0x60 > [] deactivate_task+0x1a/0x20 > [] thread_return+0xe3/0x59c > [] migration_thread+0x0/0x290 > [] _spin_unlock_irq+0x24/0x50 > [] migration_thread+0x0/0x290 > [] migration_thread+0x0/0x290 > [] migration_thread+0x17f/0x290 > [] migration_thread+0x0/0x290 > [] kthread+0x4b/0x80 > [] child_rip+0xa/0x20 > [] restore_args+0x0/0x30 > [] kthread+0x0/0x80 > [] child_rip+0x0/0x20 > [] 0xffffffffffffffff > > -> (&rq->lock/1){.+..} ops: 0 { > initial-use at: > [] 0xffffffffffffffff > in-softirq-W at: > [] 0xffffffffffffffff > } > ... key at: [] __key.42751+0x1/0x8 > ... acquired at: > [] 0xffffffffffffffff > > ... acquired at: > [] task_rq_lock+0x53/0xa0 > [] validate_chain+0xc05/0x1200 > [] validate_chain+0x460/0x1200 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] task_rq_lock+0x53/0xa0 > [] _spin_lock+0x33/0x40 > [] task_rq_lock+0x53/0xa0 > [] task_rq_lock+0x53/0xa0 > [] try_to_wake_up+0x93/0x1f0 > [] __wake_up_common+0x5b/0x90 > [] complete+0x3d/0x60 > [] kthreadd+0x119/0x1b0 > [] restore_args+0x0/0x30 > [] child_rip+0xa/0x20 > [] restore_args+0x0/0x30 > [] kthreadd+0x0/0x1b0 > [] child_rip+0x0/0x20 > [] 0xffffffffffffffff > > ... acquired at: > [] 0xffffffffffffffff > > > the soft-irq-unsafe lock's dependencies: > -> (&fbc->lock){--..} ops: 0 { > initial-use at: > [] __lock_acquire+0x1bd/0xa50 > [] lock_acquire+0x53/0x70 > [] __percpu_counter_add+0x5e/0xd0 > [] _spin_lock+0x33/0x40 > [] __percpu_counter_add+0x5e/0xd0 > [] kmem_cache_alloc+0xd1/0xe0 > [] __percpu_counter_add+0x5e/0xd0 > [] get_empty_filp+0x68/0x140 > [] path_lookup_open+0x3b/0xd0 > [] open_exec+0x24/0xd0 > [] vfs_read+0x12a/0x160 > [] kernel_read+0x38/0x50 > [] load_elf_binary+0x18b9/0x1d20 > [] generic_file_aio_read+0x4ff/0x5e0 > [] validate_chain+0x460/0x1200 > [] validate_chain+0x460/0x1200 > [] __lock_acquire+0x447/0xa50 > [] load_elf_binary+0x0/0x1e70 > [] load_elf_binary+0x0/0x1d20 > [] search_binary_handler+0xd0/0x2e0 > [] load_script+0x270/0x280 > [] load_elf_binary+0x0/0x1d20 > [] load_script+0x0/0x280 > [] search_binary_handler+0xd0/0x2e0 > [] do_execve+0x22e/0x290 > [] sys_execve+0x49/0x80 > [] stub_execve+0x6a/0xc0 > [] 0xffffffffffffffff > softirq-on-W at: > [] __lock_acquire+0x82d/0xa50 > [] lock_acquire+0x53/0x70 > [] __percpu_counter_add+0x5e/0xd0 > [] _spin_lock+0x33/0x40 > [] __percpu_counter_add+0x5e/0xd0 > [] kmem_cache_alloc+0xd1/0xe0 > [] __percpu_counter_add+0x5e/0xd0 > [] get_empty_filp+0x68/0x140 > [] path_lookup_open+0x3b/0xd0 > [] open_exec+0x24/0xd0 > [] vfs_read+0x12a/0x160 > [] kernel_read+0x38/0x50 > [] load_elf_binary+0x18b9/0x1d20 > [] generic_file_aio_read+0x4ff/0x5e0 > [] validate_chain+0x460/0x1200 > [] validate_chain+0x460/0x1200 > [] __lock_acquire+0x447/0xa50 > [] load_elf_binary+0x0/0x1e70 > [] load_elf_binary+0x0/0x1d20 > [] search_binary_handler+0xd0/0x2e0 > [] load_script+0x270/0x280 > [] load_elf_binary+0x0/0x1d20 > [] load_script+0x0/0x280 > [] search_binary_handler+0xd0/0x2e0 > [] do_execve+0x22e/0x290 > [] sys_execve+0x49/0x80 > [] stub_execve+0x6a/0xc0 > [] 0xffffffffffffffff > hardirq-on-W at: > [] __lock_acquire+0x805/0xa50 > [] lock_acquire+0x53/0x70 > [] __percpu_counter_add+0x5e/0xd0 > [] _spin_lock+0x33/0x40 > [] __percpu_counter_add+0x5e/0xd0 > [] kmem_cache_alloc+0xd1/0xe0 > [] __percpu_counter_add+0x5e/0xd0 > [] get_empty_filp+0x68/0x140 > [] path_lookup_open+0x3b/0xd0 > [] open_exec+0x24/0xd0 > [] vfs_read+0x12a/0x160 > [] kernel_read+0x38/0x50 > [] load_elf_binary+0x18b9/0x1d20 > [] generic_file_aio_read+0x4ff/0x5e0 > [] validate_chain+0x460/0x1200 > [] validate_chain+0x460/0x1200 > [] __lock_acquire+0x447/0xa50 > [] load_elf_binary+0x0/0x1e70 > [] load_elf_binary+0x0/0x1d20 > [] search_binary_handler+0xd0/0x2e0 > [] load_script+0x270/0x280 > [] load_elf_binary+0x0/0x1d20 > [] load_script+0x0/0x280 > [] search_binary_handler+0xd0/0x2e0 > [] do_execve+0x22e/0x290 > [] sys_execve+0x49/0x80 > [] stub_execve+0x6a/0xc0 > [] 0xffffffffffffffff > } > ... key at: [] __key.10917+0x0/0x8 > > stack backtrace: > Pid: 4695, comm: skype Not tainted 2.6.28-rc7-next-20081204 #1 > Call Trace: > [] check_usage+0x362/0x480 > [] validate_chain+0x8d0/0x1200 > [] __lock_acquire+0x447/0xa50 > [] lock_acquire+0x53/0x70 > [] __percpu_counter_add+0x5e/0xd0 > [] _spin_lock+0x33/0x40 > [] __percpu_counter_add+0x5e/0xd0 > [] __percpu_counter_add+0x5e/0xd0 > [] inet_csk_destroy_sock+0x46/0xf0 > [] tcp_close+0x320/0x4a0 > [] inet_release+0x3e/0x70 > [] sock_release+0x19/0xb0 > [] sock_close+0x12/0x40 > [] __fput+0xbb/0x200 > [] filp_close+0x54/0x90 > [] sys_close+0x9f/0x110 > [] sysenter_dispatch+0x7/0x30 > [] trace_hardirqs_on_thunk+0x3a/0x3f > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/