- if (new_pset == PROCESSOR_SET_NULL) {
- processor->state = PROCESSOR_SHUTDOWN;
- old_next_pset = PROCESSOR_SET_NULL;
- } else {
- processor->state = PROCESSOR_ASSIGN;
- old_next_pset = processor->processor_set_next;
- processor->processor_set_next = new_pset;
- }
- break;
-
- default:
- printf("state: %d\n", processor->state);
- panic("processor_request_action: bad state");
+ /*
+ * And ask the action_thread to do the work.
+ */
+ if (new_pset != PROCESSOR_SET_NULL) {
+ processor->state = PROCESSOR_ASSIGN;
+ old_pset = processor->processor_set_next;
+ processor->processor_set_next = new_pset;
+ }
+ else {
+ processor->state = PROCESSOR_SHUTDOWN;
+ old_pset = PROCESSOR_SET_NULL;