From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761544AbXFIU6j (ORCPT ); Sat, 9 Jun 2007 16:58:39 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1759938AbXFIU6d (ORCPT ); Sat, 9 Jun 2007 16:58:33 -0400 Received: from ms4-1.1blu.de ([213.83.63.61]:54948 "EHLO ms4-1.1blu.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757631AbXFIU6b (ORCPT ); Sat, 9 Jun 2007 16:58:31 -0400 X-Greylist: delayed 2410 seconds by postgrey-1.27 at vger.kernel.org; Sat, 09 Jun 2007 16:58:30 EDT MIME-Version: 1.0 Date: Sat, 9 Jun 2007 22:18:19 +0200 From: Lukas Razik To: linux-kernel@vger.kernel.org Subject: [PROBLEM] sleeping function called from invalid context at mm/slab.c Message-ID: <346e9b4ab8816bdf04540fe28ed949eb@mb8-2.1blu.de> User-Agent: 1blu Webmail/0.1b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Con-Id: 21979 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hello! I'm new to kernel programming and I try to develop a fake ethernet driver for v2.6.21.3 which I really need based on netdev but I ran into the following issue: If the kernel calls the 'dev->hard_start_xmit' function of my driver then this calls another one which try to create a socket in the following "normal way": struct socket *ssock = NULL; ... sock_create(family, SOCK_STREAM, IPPROTO_TCP, &ssock); But at this point I get an error message from the kernel as appended below. So what have I done wrong? Regards and many thanks for any help! Lukas Jun 9 12:02:29 consystor kernel: BUG: sleeping function called from invalid context at mm/slab.c:3032 Jun 9 12:02:29 consystor kernel: in_atomic():1, irqs_disabled():0 Jun 9 12:02:29 consystor kernel: [] __might_sleep+0xad/0xc0 Jun 9 12:02:29 consystor kernel: [] kmem_cache_alloc+0x6f/0x80 Jun 9 12:02:29 consystor kernel: [] sock_alloc_inode+0x10/0x50 Jun 9 12:02:29 consystor kernel: [] alloc_inode+0x17/0x170 Jun 9 12:02:29 consystor kernel: [] new_inode+0x1c/0x90 Jun 9 12:02:29 consystor kernel: [] sock_alloc+0xf/0x90 Jun 9 12:02:29 consystor kernel: [] __sock_create+0x58/0x2d0 Jun 9 12:02:29 consystor kernel: [] sock_create+0x19/0x30 Jun 9 12:02:29 consystor kernel: [] ethos_socket_tx+0xe4/0x16e [ethos] Jun 9 12:02:29 consystor kernel: [] scheduler_tick+0x66/0x90 Jun 9 12:02:29 consystor kernel: [] profile_pc+0x36/0x60 Jun 9 12:02:29 consystor kernel: [] profile_tick+0x49/0x80 Jun 9 12:02:29 consystor kernel: [] tick_handle_periodic+0x15/0x70 Jun 9 12:02:29 consystor kernel: [] local_apic_timer_interrupt+0x55/0x60 Jun 9 12:02:29 consystor kernel: [] irq_exit+0xb/0x50 Jun 9 12:02:29 consystor kernel: [] smp_apic_timer_interrupt+0x24/0x30 Jun 9 12:02:29 consystor kernel: [] apic_timer_interrupt+0x28/0x30 Jun 9 12:02:29 consystor kernel: [] vprintk+0x1b3/0x2b0 Jun 9 12:02:29 consystor kernel: [] vprintk+0x1bd/0x2b0 Jun 9 12:02:29 consystor kernel: [] vprintk+0x1b3/0x2b0 Jun 9 12:02:29 consystor kernel: [] vprintk+0x1bd/0x2b0 Jun 9 12:02:29 consystor kernel: [] _read_lock+0x1a/0x90 Jun 9 12:02:29 consystor kernel: [] sock_def_write_space+0x1e/0xb0 Jun 9 12:02:29 consystor kernel: [] _read_unlock+0xd/0x30 Jun 9 12:02:29 consystor kernel: [] sock_wfree+0x38/0x40 Jun 9 12:02:29 consystor kernel: [] _spin_unlock+0xd/0x30 Jun 9 12:02:29 consystor kernel: [] ethos_interrupt+0x83/0x93 [ethos] Jun 9 12:02:29 consystor kernel: [] ethos_socket_tx+0x163/0x16e [ethos] Jun 9 12:02:29 consystor kernel: [] local_bh_enable+0x37/0xe0 Jun 9 12:02:29 consystor kernel: [] sock_queue_rcv_skb+0xe5/0x100 Jun 9 12:02:29 consystor kernel: [] do_gettimeofday+0x45/0x140 Jun 9 12:02:29 consystor kernel: [] speedo_start_xmit+0x1c3/0x2c0 Jun 9 12:02:29 consystor kernel: [] dev_hard_start_xmit+0x57/0xe0 Jun 9 12:02:29 consystor kernel: [] _spin_lock+0xd/0x80 Jun 9 12:02:29 consystor kernel: [] __qdisc_run+0x195/0x1c0 Jun 9 12:02:29 consystor kernel: [] local_bh_enable+0x37/0xe0 Jun 9 12:02:29 consystor kernel: [] tcp_ack_saw_tstamp+0x16/0x50 Jun 9 12:02:29 consystor kernel: [] tcp_undo_cwr+0xd4/0x100 Jun 9 12:02:29 consystor kernel: [] tcp_fastretrans_alert+0x16b/0x650 Jun 9 12:02:29 consystor kernel: [] tcp_ack+0x160/0x320 Jun 9 12:02:29 consystor kernel: [] tcp_rcv_established+0x205/0x6a0 Jun 9 12:02:29 consystor kernel: [] __next_cpu+0x12/0x20 Jun 9 12:02:29 consystor kernel: [] find_busiest_group+0x4d1/0x580 Jun 9 12:02:29 consystor kernel: [] tcp_v4_rcv+0x640/0x820 Jun 9 12:02:29 consystor kernel: [] load_balance+0x74/0x290 Jun 9 12:02:29 consystor kernel: [] __next_cpu+0x12/0x20 Jun 9 12:02:29 consystor kernel: [] ethos_tx+0xba/0xd3 [ethos] Jun 9 12:02:29 consystor kernel: [] __net_timestamp+0x10/0x30 Jun 9 12:02:29 consystor kernel: [] dev_queue_xmit_nit+0xe5/0x130 Jun 9 12:02:30 consystor kernel: [] dev_hard_start_xmit+0x57/0xe0 Jun 9 12:02:30 consystor kernel: [] __qdisc_run+0x8a/0x1c0 Jun 9 12:02:30 consystor kernel: [] dev_queue_xmit+0x25e/0x2d0 Jun 9 12:02:30 consystor kernel: [] neigh_connected_output+0x81/0xb0 Jun 9 12:02:30 consystor kernel: [] ip_output+0x1b2/0x2a0 Jun 9 12:02:30 consystor kernel: [] schedule+0x3dc/0x750 Jun 9 12:02:30 consystor kernel: [] journal_put_journal_head+0x65/0x120 Jun 9 12:02:30 consystor kernel: [] ip_push_pending_frames+0x40e/0x4a0 Jun 9 12:02:30 consystor kernel: [] raw_sendmsg+0x347/0x470 Jun 9 12:02:30 consystor kernel: [] _spin_lock+0xd/0x80 Jun 9 12:02:30 consystor kernel: [] inet_sendmsg+0x47/0x60 Jun 9 12:02:30 consystor kernel: [] sock_sendmsg+0xe1/0xf0 Jun 9 12:02:30 consystor kernel: [] sock_recvmsg+0xfc/0x100 Jun 9 12:02:30 consystor kernel: [] autoremove_wake_function+0x0/0x50 Jun 9 12:02:30 consystor kernel: [] autoremove_wake_function+0x0/0x50 Jun 9 12:02:30 consystor kernel: [] n_tty_receive_buf+0x20e/0xaf0 Jun 9 12:02:30 consystor kernel: [] copy_from_user+0x3c/0x70 Jun 9 12:02:30 consystor kernel: [] copy_from_user+0x3c/0x70 Jun 9 12:02:30 consystor kernel: [] sys_sendmsg+0x155/0x1b0 Jun 9 12:02:30 consystor kernel: [] buffered_rmqueue+0xf9/0x1a0 Jun 9 12:02:30 consystor kernel: [] filemap_nopage+0x203/0x420 Jun 9 12:02:30 consystor kernel: [] do_no_page+0x18c/0x2f0 Jun 9 12:02:30 consystor kernel: [] __handle_mm_fault+0x15a/0x2a0 Jun 9 12:02:30 consystor kernel: [] sys_socketcall+0x259/0x280 Jun 9 12:02:30 consystor kernel: [] sys_gettimeofday+0x2c/0x70 Jun 9 12:02:30 consystor kernel: [] syscall_call+0x7/0xb Jun 9 12:02:30 consystor kernel: =======================