diff options
| -rw-r--r-- | arch/ia64/sn/kernel/xpc_main.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/arch/ia64/sn/kernel/xpc_main.c b/arch/ia64/sn/kernel/xpc_main.c index c75f8aeefc2b..9cd460dfe27e 100644 --- a/arch/ia64/sn/kernel/xpc_main.c +++ b/arch/ia64/sn/kernel/xpc_main.c | |||
| @@ -575,18 +575,21 @@ xpc_activate_partition(struct xpc_partition *part) | |||
| 575 | 575 | ||
| 576 | spin_lock_irqsave(&part->act_lock, irq_flags); | 576 | spin_lock_irqsave(&part->act_lock, irq_flags); |
| 577 | 577 | ||
| 578 | pid = kernel_thread(xpc_activating, (void *) ((u64) partid), 0); | ||
| 579 | |||
| 580 | DBUG_ON(part->act_state != XPC_P_INACTIVE); | 578 | DBUG_ON(part->act_state != XPC_P_INACTIVE); |
| 581 | 579 | ||
| 582 | if (pid > 0) { | 580 | part->act_state = XPC_P_ACTIVATION_REQ; |
| 583 | part->act_state = XPC_P_ACTIVATION_REQ; | 581 | XPC_SET_REASON(part, xpcCloneKThread, __LINE__); |
| 584 | XPC_SET_REASON(part, xpcCloneKThread, __LINE__); | ||
| 585 | } else { | ||
| 586 | XPC_SET_REASON(part, xpcCloneKThreadFailed, __LINE__); | ||
| 587 | } | ||
| 588 | 582 | ||
| 589 | spin_unlock_irqrestore(&part->act_lock, irq_flags); | 583 | spin_unlock_irqrestore(&part->act_lock, irq_flags); |
| 584 | |||
| 585 | pid = kernel_thread(xpc_activating, (void *) ((u64) partid), 0); | ||
| 586 | |||
| 587 | if (unlikely(pid <= 0)) { | ||
| 588 | spin_lock_irqsave(&part->act_lock, irq_flags); | ||
| 589 | part->act_state = XPC_P_INACTIVE; | ||
| 590 | XPC_SET_REASON(part, xpcCloneKThreadFailed, __LINE__); | ||
| 591 | spin_unlock_irqrestore(&part->act_lock, irq_flags); | ||
| 592 | } | ||
| 590 | } | 593 | } |
| 591 | 594 | ||
| 592 | 595 | ||
