diff options
| author | Jason Wessel <[email protected]> | 2008-04-01 21:55:27 +0000 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2008-04-17 18:05:43 +0000 |
| commit | 56fb70932964927597ce30bbd820471633c72adc (patch) | |
| tree | 72654913a07cbc83f174234d4fa0f91b79a2164c /net/unix/sysctl_net_unix.c | |
| parent | kgdb: documentation fixes (diff) | |
| download | kernel-56fb70932964927597ce30bbd820471633c72adc.tar.gz kernel-56fb70932964927597ce30bbd820471633c72adc.zip | |
kgdb: fix SMP NMI kgdb_handle_exception exit race
Fix the problem of protecting the kgdb handle_exception exit
which had an NMI race condition, while trying to restore
normal system operation.
There was a small window after the master processor sets cpu_in_debug
to zero but before it has set kgdb_active to zero where a
non-master processor in an SMP system could receive an NMI and
re-enter the kgdb_wait() loop.
As long as the master processor sets the cpu_in_debug before sending
the cpu roundup the cpu_in_debug variable can also be used to guard
against the race condition.
The kgdb_wait() function no longer needs to check
kgdb_active because it is done in the arch specific code
and handled along with the nmi traps at the low level.
This also allows kgdb_wait() to exit correctly if it was
entered for some unknown reason due to a spurious NMI that
could not be handled by the arch specific code.
Signed-off-by: Jason Wessel <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'net/unix/sysctl_net_unix.c')
0 files changed, 0 insertions, 0 deletions
