• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/arch/ia64/sn/kernel/

Lines Matching refs:part

16  *	    partition	This part detects the presence/absence of other
20 * channel This part manages the channels and sends/receives
72 .bus_id = {0}, /* set to "part" at xpc_init() time */
199 struct xpc_partition *part = (struct xpc_partition *) data;
202 DBUG_ON(jiffies < part->disengage_request_timeout);
204 (void) xpc_partition_disengaged(part);
206 DBUG_ON(part->disengage_request_timeout != 0);
207 DBUG_ON(xpc_partition_engaged(1UL << XPC_PARTID(part)) != 0);
345 xpc_make_first_contact(struct xpc_partition *part)
350 while ((ret = xpc_pull_remote_vars_part(part)) != xpcSuccess) {
352 XPC_DEACTIVATE_PARTITION(part, ret);
357 "partition %d\n", XPC_PARTID(part));
362 if (part->act_state == XPC_P_DEACTIVATING) {
363 return part->reason;
367 return xpc_mark_partition_active(part);
384 xpc_channel_mgr(struct xpc_partition *part)
386 while (part->act_state != XPC_P_DEACTIVATING ||
387 atomic_read(&part->nchannels_active) > 0 ||
388 !xpc_partition_disengaged(part)) {
390 xpc_process_channel_activity(part);
406 atomic_dec(&part->channel_mgr_requests);
407 (void) wait_event_interruptible(part->channel_mgr_wq,
408 (atomic_read(&part->channel_mgr_requests) > 0 ||
409 (volatile u64) part->local_IPI_amo != 0 ||
410 ((volatile u8) part->act_state ==
412 atomic_read(&part->nchannels_active) == 0 &&
413 xpc_partition_disengaged(part))));
414 atomic_set(&part->channel_mgr_requests, 1);
438 xpc_partition_up(struct xpc_partition *part)
440 DBUG_ON(part->channels != NULL);
442 dev_dbg(xpc_chan, "activating partition %d\n", XPC_PARTID(part));
444 if (xpc_setup_infrastructure(part) != xpcSuccess) {
455 (void) xpc_part_ref(part); /* this will always succeed */
457 if (xpc_make_first_contact(part) == xpcSuccess) {
458 xpc_channel_mgr(part);
461 xpc_part_deref(part);
463 xpc_teardown_infrastructure(part);
471 struct xpc_partition *part = &xpc_partitions[partid];
479 spin_lock_irqsave(&part->act_lock, irq_flags);
481 if (part->act_state == XPC_P_DEACTIVATING) {
482 part->act_state = XPC_P_INACTIVE;
483 spin_unlock_irqrestore(&part->act_lock, irq_flags);
484 part->remote_rp_pa = 0;
489 DBUG_ON(part->act_state != XPC_P_ACTIVATION_REQ);
490 part->act_state = XPC_P_ACTIVATING;
492 XPC_SET_REASON(part, 0, 0);
493 spin_unlock_irqrestore(&part->act_lock, irq_flags);
522 if (sn_register_xp_addr_region(part->remote_amos_page_pa,
527 spin_lock_irqsave(&part->act_lock, irq_flags);
528 part->act_state = XPC_P_INACTIVE;
529 XPC_SET_REASON(part, xpcPhysAddrRegFailed, __LINE__);
530 spin_unlock_irqrestore(&part->act_lock, irq_flags);
531 part->remote_rp_pa = 0;
536 xpc_IPI_send_activated(part);
543 (void) xpc_partition_up(part);
546 xpc_mark_partition_inactive(part);
548 if (part->reason == xpcReactivating) {
550 xpc_IPI_send_reactivate(part);
558 xpc_activate_partition(struct xpc_partition *part)
560 partid_t partid = XPC_PARTID(part);
565 spin_lock_irqsave(&part->act_lock, irq_flags);
567 DBUG_ON(part->act_state != XPC_P_INACTIVE);
569 part->act_state = XPC_P_ACTIVATION_REQ;
570 XPC_SET_REASON(part, xpcCloneKThread, __LINE__);
572 spin_unlock_irqrestore(&part->act_lock, irq_flags);
577 spin_lock_irqsave(&part->act_lock, irq_flags);
578 part->act_state = XPC_P_INACTIVE;
579 XPC_SET_REASON(part, xpcCloneKThreadFailed, __LINE__);
580 spin_unlock_irqrestore(&part->act_lock, irq_flags);
605 struct xpc_partition *part = &xpc_partitions[partid];
610 if (xpc_part_ref(part)) {
611 xpc_check_for_channel_activity(part);
613 xpc_part_deref(part);
625 xpc_dropped_IPI_check(struct xpc_partition *part)
627 if (xpc_part_ref(part)) {
628 xpc_check_for_channel_activity(part);
630 part->dropped_IPI_timer.expires = jiffies +
632 add_timer(&part->dropped_IPI_timer);
633 xpc_part_deref(part);
682 xpc_kthread_waitmsgs(struct xpc_partition *part, struct xpc_channel *ch)
721 struct xpc_partition *part = &xpc_partitions[partid];
732 ch = &part->channels[ch_number];
765 xpc_kthread_waitmsgs(part, ch);
784 if (atomic_dec_return(&part->nchannels_engaged) == 0) {
785 xpc_mark_partition_disengaged(part);
786 xpc_IPI_send_disengage(part);
795 xpc_part_deref(part);
819 struct xpc_partition *part = &xpc_partitions[ch->partid];
841 if (atomic_inc_return(&part->nchannels_engaged) == 1)
842 xpc_mark_partition_engaged(part);
844 (void) xpc_part_ref(part);
862 atomic_dec_return(&part->nchannels_engaged) == 0) {
863 xpc_mark_partition_disengaged(part);
864 xpc_IPI_send_disengage(part);
867 xpc_part_deref(part);
894 struct xpc_partition *part;
901 part = &xpc_partitions[partid];
903 if (!xpc_part_ref(part)) {
907 ch = &part->channels[ch_number];
910 xpc_part_deref(part);
921 if (part->act_state != XPC_P_DEACTIVATING) {
922 spin_lock(&part->IPI_lock);
923 XPC_SET_IPI_FLAGS(part->local_IPI_amo,
925 spin_unlock(&part->IPI_lock);
935 xpc_wakeup_channel_mgr(part);
938 xpc_part_deref(part);
948 struct xpc_partition *part;
986 part = &xpc_partitions[partid];
988 if (xpc_partition_disengaged(part) &&
989 part->act_state == XPC_P_INACTIVE) {
995 XPC_DEACTIVATE_PARTITION(part, reason);
997 if (part->disengage_request_timeout >
1000 part->disengage_request_timeout;
1103 struct xpc_partition *part;
1115 part = &xpc_partitions[partid];
1117 if (!XPC_SUPPORTS_DISENGAGE_REQUEST(part->
1126 part->act_state != XPC_P_INACTIVE) {
1127 xpc_request_partition_disengage(part);
1128 xpc_mark_partition_disengaged(part);
1129 xpc_IPI_send_disengage(part);
1224 struct xpc_partition *part;
1241 snprintf(xpc_part->bus_id, BUS_ID_SIZE, "part");
1255 part = &xpc_partitions[partid];
1257 DBUG_ON((u64) part != L1_CACHE_ALIGN((u64) part));
1259 part->act_IRQ_rcvd = 0;
1260 spin_lock_init(&part->act_lock);
1261 part->act_state = XPC_P_INACTIVE;
1262 XPC_SET_REASON(part, 0, 0);
1264 init_timer(&part->disengage_request_timer);
1265 part->disengage_request_timer.function =
1267 part->disengage_request_timer.data = (unsigned long) part;
1269 part->setup_state = XPC_P_UNSET;
1270 init_waitqueue_head(&part->teardown_wq);
1271 atomic_set(&part->references, 0);