the code:
0xc0016d40 <__run_task_queue>:  stwu    r1,-64(r1)
0xc0016d44 <__run_task_queue+4>:        mflr    r0
0xc0016d48 <__run_task_queue+8>:        stmw    r28,48(r1)
0xc0016d4c <__run_task_queue+12>:       stw     r0,68(r1)
0xc0016d50 <__run_task_queue+16>:       mr      r29,r3
0xc0016d54 <__run_task_queue+20>:       addi    r3,r1,24
0xc0016d58 <__run_task_queue+24>:       bl      0xc000492c <__save_flags_ptr>
0xc0016d5c <__run_task_queue+28>:       bl      0xc00049e0 <__cli>
0xc0016d60 <__run_task_queue+32>:       addi    r28,r1,8
0xc0016d64 <__run_task_queue+36>:       lwz     r9,0(r29)
0xc0016d68 <__run_task_queue+40>:       stw     r28,4(r9)
0xc0016d6c <__run_task_queue+44>:       lwz     r11,4(r29)
0xc0016d70 <__run_task_queue+48>:       stw     r9,8(r1)
0xc0016d74 <__run_task_queue+52>:       stw     r11,4(r28)
0xc0016d78 <__run_task_queue+56>:       stw     r28,0(r29)
0xc0016d7c <__run_task_queue+60>:       stw     r28,0(r11)
0xc0016d80 <__run_task_queue+64>:       stw     r29,0(r29)
0xc0016d84 <__run_task_queue+68>:       stw     r29,4(r29)
0xc0016d88 <__run_task_queue+72>:       lwz     r3,24(r1)
0xc0016d8c <__run_task_queue+76>:       bl      0xc000497c <__restore_flags>
0xc0016d90 <__run_task_queue+80>:       lwz     r29,8(r1)
0xc0016d94 <__run_task_queue+84>:       cmpw    r29,r28
---Type <return> to continue, or q <return> to quit---
0xc0016d98 <__run_task_queue+88>:
    beq 0xc0016dd0 <__run_task_queue+144>
0xc0016d9c <__run_task_queue+92>:       li      r31,0
0xc0016da0 <__run_task_queue+96>:       mr      r9,r29
0xc0016da4 <__run_task_queue+100>:      lwz     r0,12(r9)
0xc0016da8 <__run_task_queue+104>:      lwz     r3,16(r9)
0xc0016dac <__run_task_queue+108>:      lwz     r29,0(r29)
0xc0016db0 <__run_task_queue+112>:      eieio
0xc0016db4 <__run_task_queue+116>:      cmpwi   r0,0
0xc0016db8 <__run_task_queue+120>:      stw     r31,8(r9)
0xc0016dbc <__run_task_queue+124>:
    beq 0xc0016dc8 <__run_task_queue+136>
0xc0016dc0 <__run_task_queue+128>:      mtlr    r0
0xc0016dc4 <__run_task_queue+132>:      blrl
0xc0016dc8 <__run_task_queue+136>:      cmpw    r29,r28      <================ HERE! just before the NIP.
0xc0016dcc <__run_task_queue+140>:
    bne 0xc0016da0 <__run_task_queue+96>
0xc0016dd0 <__run_task_queue+144>:      lwz     r0,68(r1)
0xc0016dd4 <__run_task_queue+148>:      mtlr    r0
0xc0016dd8 <__run_task_queue+152>:      lmw     r28,48(r1)
0xc0016ddc <__run_task_queue+156>:      addi    r1,r1,64
0xc0016de0 <__run_task_queue+160>:      blr
 
in c:
void __run_task_queue(task_queue *list)
{   
    struct list_head head, *next;
    unsigned long flags;
    
    spin_lock_irqsave(&tqueue_lock, flags);
    list_add(&head, list);
    list_del_init(list);
    spin_unlock_irqrestore(&tqueue_lock, flags);
 
    next = head.next;
    while (next != &head) {
        void (*f) (void *);
        struct tq_struct *p;
        void *data;
    
        p = list_entry(next, struct tq_struct, list);
        next = next->next;
        f = p->routine;
        data = p->data;
        wmb();
        p->sync = 0;
        if (f)
            f(data);
    }
}
7. running kernel-2.4.17 (monta vista hard hat) on STB04xx chip. 
 
if i'm correct, it's trying access the invalid p->routine? what are the things i can try to debug this problem? 
whenever the oops occurs, NIP is always 0x0000040. i'm really stuck with this, and any help will be GREATLY 
appreciated!
 
thanks in advance!!
 
 
---------------
Q-ha Park (*)
Office: +82-2-2105-9167
Mobile: +82-16-372-0474
---------------
-
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/