Lines Matching full:part

13  *	This is the part of XPC that detects the presence/absence of
265 static int __xpc_partition_disengaged(struct xpc_partition *part, in __xpc_partition_disengaged() argument
268 short partid = XPC_PARTID(part); in __xpc_partition_disengaged()
272 if (part->disengage_timeout) { in __xpc_partition_disengaged()
274 if (time_is_after_jiffies(part->disengage_timeout)) { in __xpc_partition_disengaged()
290 part->disengage_timeout = 0; in __xpc_partition_disengaged()
294 del_timer_sync(&part->disengage_timer); in __xpc_partition_disengaged()
296 DBUG_ON(part->act_state != XPC_P_AS_DEACTIVATING && in __xpc_partition_disengaged()
297 part->act_state != XPC_P_AS_INACTIVE); in __xpc_partition_disengaged()
298 if (part->act_state != XPC_P_AS_INACTIVE) in __xpc_partition_disengaged()
299 xpc_wakeup_channel_mgr(part); in __xpc_partition_disengaged()
301 xpc_arch_ops.cancel_partition_deactivation_request(part); in __xpc_partition_disengaged()
306 int xpc_partition_disengaged(struct xpc_partition *part) in xpc_partition_disengaged() argument
308 return __xpc_partition_disengaged(part, false); in xpc_partition_disengaged()
311 int xpc_partition_disengaged_from_timer(struct xpc_partition *part) in xpc_partition_disengaged_from_timer() argument
313 return __xpc_partition_disengaged(part, true); in xpc_partition_disengaged_from_timer()
320 xpc_mark_partition_active(struct xpc_partition *part) in xpc_mark_partition_active() argument
325 dev_dbg(xpc_part, "setting partition %d to ACTIVE\n", XPC_PARTID(part)); in xpc_mark_partition_active()
327 spin_lock_irqsave(&part->act_lock, irq_flags); in xpc_mark_partition_active()
328 if (part->act_state == XPC_P_AS_ACTIVATING) { in xpc_mark_partition_active()
329 part->act_state = XPC_P_AS_ACTIVE; in xpc_mark_partition_active()
332 DBUG_ON(part->reason == xpSuccess); in xpc_mark_partition_active()
333 ret = part->reason; in xpc_mark_partition_active()
335 spin_unlock_irqrestore(&part->act_lock, irq_flags); in xpc_mark_partition_active()
344 xpc_deactivate_partition(const int line, struct xpc_partition *part, in xpc_deactivate_partition() argument
349 spin_lock_irqsave(&part->act_lock, irq_flags); in xpc_deactivate_partition()
351 if (part->act_state == XPC_P_AS_INACTIVE) { in xpc_deactivate_partition()
352 XPC_SET_REASON(part, reason, line); in xpc_deactivate_partition()
353 spin_unlock_irqrestore(&part->act_lock, irq_flags); in xpc_deactivate_partition()
356 xpc_arch_ops.request_partition_reactivation(part); in xpc_deactivate_partition()
360 if (part->act_state == XPC_P_AS_DEACTIVATING) { in xpc_deactivate_partition()
361 if ((part->reason == xpUnloading && reason != xpUnloading) || in xpc_deactivate_partition()
363 XPC_SET_REASON(part, reason, line); in xpc_deactivate_partition()
365 spin_unlock_irqrestore(&part->act_lock, irq_flags); in xpc_deactivate_partition()
369 part->act_state = XPC_P_AS_DEACTIVATING; in xpc_deactivate_partition()
370 XPC_SET_REASON(part, reason, line); in xpc_deactivate_partition()
372 spin_unlock_irqrestore(&part->act_lock, irq_flags); in xpc_deactivate_partition()
375 xpc_arch_ops.request_partition_deactivation(part); in xpc_deactivate_partition()
378 part->disengage_timeout = jiffies + (xpc_disengage_timelimit * HZ); in xpc_deactivate_partition()
379 part->disengage_timer.expires = part->disengage_timeout; in xpc_deactivate_partition()
380 add_timer(&part->disengage_timer); in xpc_deactivate_partition()
383 XPC_PARTID(part), reason); in xpc_deactivate_partition()
385 xpc_partition_going_down(part, reason); in xpc_deactivate_partition()
392 xpc_mark_partition_inactive(struct xpc_partition *part) in xpc_mark_partition_inactive() argument
397 XPC_PARTID(part)); in xpc_mark_partition_inactive()
399 spin_lock_irqsave(&part->act_lock, irq_flags); in xpc_mark_partition_inactive()
400 part->act_state = XPC_P_AS_INACTIVE; in xpc_mark_partition_inactive()
401 spin_unlock_irqrestore(&part->act_lock, irq_flags); in xpc_mark_partition_inactive()
402 part->remote_rp_pa = 0; in xpc_mark_partition_inactive()
482 "part of the local partition; skipping " in xpc_discovery()
495 dev_dbg(xpc_part, "Nasid %d is part of a " in xpc_discovery()
532 struct xpc_partition *part; in xpc_initiate_partid_to_nasids() local
535 part = &xpc_partitions[partid]; in xpc_initiate_partid_to_nasids()
536 if (part->remote_rp_pa == 0) in xpc_initiate_partid_to_nasids()
541 part_nasid_pa = (unsigned long)XPC_RP_PART_NASIDS(part->remote_rp_pa); in xpc_initiate_partid_to_nasids()