lkml.org 
[lkml]   [2004]   [Oct]   [9]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    FromMåns Rullgård <>
    SubjectRe: [ANNOUNCE] Linux 2.6 Real Time Kernel
    DateSat, 09 Oct 2004 15:15:13 +0200
    I got this thing to build by adding a few EXPORT_SYMBOL, patch below.
    Now it seems to be running quite well.  I am, however, getting
    occasional "bad: scheduling while atomic!" messages, all alike:
    
    bad: scheduling while atomic!
     [<c02ef301>] schedule+0x4e5/0x4ea
     [<c0114cbe>] try_to_wake_up+0x99/0xa8
     [<c01332e2>] __p_mutex_down+0xfe/0x190
     [<c029e238>] alloc_skb+0x32/0xc3
     [<c01335e0>] kmutex_is_locked+0x1f/0x33
     [<c029fa63>] skb_queue_tail+0x1c/0x45
     [<c02eb43e>] unix_stream_sendmsg+0x22c/0x38c
     [<c029ab03>] sock_sendmsg+0xc9/0xe3
     [<c029f95a>] skb_dequeue+0x4a/0x5b
     [<c02eb9e6>] unix_stream_recvmsg+0x119/0x430
     [<c0137f06>] __alloc_pages+0x1cc/0x33f
     [<c01168ca>] autoremove_wake_function+0x0/0x43
     [<c029af4b>] sock_readv_writev+0x6e/0x97
     [<c029afec>] sock_writev+0x37/0x3e
     [<c029afb5>] sock_writev+0x0/0x3e
     [<c014ebb8>] do_readv_writev+0x1db/0x21f
     [<c01168ca>] autoremove_wake_function+0x0/0x43
     [<c014e5ca>] vfs_read+0xd0/0xf5
     [<c014ec94>] vfs_writev+0x49/0x52
     [<c014ed5a>] sys_writev+0x47/0x76
     [<c0103f09>] sysenter_past_esp+0x52/0x71
    
    USB, sound and wireless are all working nicely.
    
    Now the patch:
    
    --- kernel/kmutex.c~	2004-10-09 12:51:37 +02:00
    +++ kernel/kmutex.c	2004-10-09 13:50:43 +02:00
    @@ -20,6 +20,7 @@
     #include <linux/config.h>
     #include <linux/kmutex.h>
     #include <linux/sched.h>
    +#include <linux/module.h>
     
     # if defined CONFIG_PMUTEX
     #   include <linux/pmutex.h>
    @@ -40,11 +41,14 @@
             return p_mutex_trylock(&(lock->kmtx));
     }
     
    +EXPORT_SYMBOL(kmutex_trylock);
     
     inline int kmutex_is_locked(struct kmutex *lock)
     {
     	return p_mutex_is_locked(&(lock->kmtx));
     }
    +
    +EXPORT_SYMBOL(kmutex_is_locked);
     # endif
     
     
    @@ -60,6 +64,7 @@
     #endif
     } 
     
    +EXPORT_SYMBOL(kmutex_init);
     
     /*
      * print warning is case kmutex_lock is called while preempt count is
    @@ -88,6 +93,8 @@
     #endif
     } 
     
    +EXPORT_SYMBOL(kmutex_lock);
    +
     void kmutex_unlock(struct kmutex *lock) 
     { 
     #if defined CONFIG_KMUTEX_DEBUG
    @@ -102,6 +109,7 @@
     #endif
     }
     
    +EXPORT_SYMBOL(kmutex_unlock);
     
     void kmutex_unlock_wait(struct kmutex * lock)
     { 
    @@ -111,4 +119,4 @@
                     }  
     }
     
    -
    +EXPORT_SYMBOL(kmutex_unlock_wait);
    
    -- 
    Måns Rullgård
    mru@mru.ath.cx
    
    -
    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/
    
    
    \
     
     \ /
      Last update: 2005-03-22 14:06    [from the cache]
    ©2003-2008