Jason Wessel
56fb709329
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 <jason.wessel@windriver.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2008-04-17 20:05:43 +02:00
..
2008-02-19 10:43:58 +01:00
2008-03-13 01:59:53 -04:00
2008-04-17 20:05:38 +02:00
2008-02-09 23:27:01 -08:00
2008-03-24 19:22:20 -07:00
2008-02-14 21:13:33 -08:00
2008-03-28 14:45:21 -07:00
2007-10-21 02:37:45 -04:00
2008-02-14 21:13:33 -08:00
2008-03-01 07:16:06 -05:00
2008-01-30 13:33:08 +01:00
2008-02-05 09:44:20 -08:00
2007-10-19 11:53:36 -07:00
2008-04-11 08:06:43 -07:00
2008-02-10 10:48:03 +01:00
2007-05-09 12:30:49 -07:00
2008-02-08 09:22:41 -08:00
2008-03-05 17:53:33 -08:00
2007-10-18 14:37:28 -07:00
2007-10-18 14:37:24 -07:00
2007-10-18 14:37:26 -07:00
2008-04-10 17:28:26 -07:00
2008-01-29 17:13:18 +11:00
2008-03-28 14:45:21 -07:00
2008-03-30 14:18:41 -07:00
2008-03-30 14:18:41 -07:00
2008-02-14 22:08:30 +01:00
2008-02-08 09:22:29 -08:00
2008-02-06 10:41:01 -08:00
2008-01-25 21:08:29 +01:00
2008-03-10 18:01:20 -07:00
2008-02-07 08:42:25 -08:00
2007-07-16 09:05:50 -07:00
2008-04-17 20:05:43 +02:00
2008-02-14 21:13:32 -08:00
2008-03-04 16:35:19 -08:00
2008-01-24 20:40:40 -08:00
2008-01-25 21:08:33 +01:00
2008-01-25 21:08:34 +01:00
2006-12-07 08:39:43 -08:00
2007-10-11 22:11:11 +02:00
2008-02-25 23:03:02 +01:00
2008-04-17 20:05:37 +02:00
2008-04-02 15:28:19 -07:00
2008-03-10 18:01:20 -07:00
2008-02-08 09:22:31 -08:00
2006-07-03 15:27:01 -07:00
2008-02-08 09:22:31 -08:00
2006-07-03 15:27:04 -07:00
2008-02-06 10:41:02 -08:00
2007-10-19 11:53:37 -07:00
2008-02-08 09:22:23 -08:00
2008-02-06 22:07:51 -05:00
2008-02-08 09:22:41 -08:00
2008-02-08 09:22:23 -08:00
2008-02-08 09:22:31 -08:00
2008-02-05 09:44:22 -08:00
2008-02-08 09:22:41 -08:00
2008-02-14 22:08:30 +01:00
2008-04-15 13:09:54 -07:00
2008-02-08 09:22:34 -08:00
2008-02-08 09:22:26 -08:00
2008-01-25 21:08:24 +01:00
2008-02-13 16:21:18 -08:00
2008-01-25 21:08:24 +01:00
2008-02-29 20:21:13 +01:00
2008-01-25 21:08:02 +01:00
2008-03-26 12:04:09 +01:00
2008-03-04 16:35:09 -08:00
2008-02-08 19:52:48 +11:00
2008-02-08 09:22:41 -08:00
2008-02-08 09:22:41 -08:00
2006-07-03 15:27:01 -07:00
2008-01-24 20:40:40 -08:00
2008-02-13 15:45:36 +01:00
2006-07-03 15:27:01 -07:00
2007-12-18 15:21:13 +01:00
2008-03-19 04:27:53 +01:00
2008-04-14 14:26:23 +02:00
2008-01-25 21:08:29 +01:00
2008-03-07 16:43:00 +01:00
2007-11-28 15:52:56 +01:00
2008-03-26 08:28:55 +01:00
2007-07-16 09:05:50 -07:00
2008-03-04 07:59:54 -08:00
2008-02-29 18:46:50 +01:00
2008-02-29 18:46:53 +01:00
2008-01-30 13:31:20 +01:00
2008-02-06 10:41:02 -08:00
2006-07-03 15:27:02 -07:00
2008-02-06 10:41:08 -08:00
2008-02-05 09:44:07 -08:00
2008-02-08 09:22:29 -08:00
2008-02-08 09:22:31 -08:00
2008-03-04 17:54:06 +01:00
2007-11-14 18:45:44 -08:00
2008-02-06 10:41:11 -08:00
2008-02-08 09:22:39 -08:00
2008-02-12 14:29:26 -08:00
2008-03-26 08:28:55 +01:00
2007-10-18 14:37:28 -07:00
2008-04-10 17:28:26 -07:00
2008-02-08 09:22:23 -08:00
2008-02-13 15:45:40 +01:00
2007-11-29 09:24:53 -08:00
2007-09-19 11:24:17 -07:00
2008-02-08 09:22:31 -08:00
2008-02-08 09:22:37 -08:00