Showing error 547

User: Jiri Slaby
Error type: Calling function from invalid context
Error type description: Some function is called at inappropriate place like sleep inside critical sections or interrupt handlers
File location: kernel/signal.c
Line in file: 1624
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:02 UTC


Source:

1594
1595        BUG_ON((exit_code & (0x7f | ~0xffff)) != SIGTRAP);
1596
1597        memset(&info, 0, sizeof info);
1598        info.si_signo = SIGTRAP;
1599        info.si_code = exit_code;
1600        info.si_pid = task_pid_vnr(current);
1601        info.si_uid = current->uid;
1602
1603        /* Let the debugger run.  */
1604        spin_lock_irq(&current->sighand->siglock);
1605        ptrace_stop(exit_code, 1, &info);
1606        spin_unlock_irq(&current->sighand->siglock);
1607}
1608
1609static void
1610finish_stop(int stop_count)
1611{
1612        /*
1613         * If there are no other threads in the group, or if there is
1614         * a group stop in progress and we are the last to stop,
1615         * report to the parent.  When ptraced, every thread reports itself.
1616         */
1617        if (tracehook_notify_jctl(stop_count == 0, CLD_STOPPED)) {
1618                read_lock(&tasklist_lock);
1619                do_notify_parent_cldstop(current, CLD_STOPPED);
1620                read_unlock(&tasklist_lock);
1621        }
1622
1623        do {
1624                schedule();
1625        } while (try_to_freeze());
1626        /*
1627         * Now we don't run again until continued.
1628         */
1629        current->exit_code = 0;
1630}
1631
1632/*
1633 * This performs the stopping for SIGSTOP and other stop signals.
1634 * We have to stop all threads in the thread group.
Show full sources