Lines Matching full:put
1179 /* allocate all the required GET/PUT values */ in xpc_setup_ch_structures_sn2()
1185 dev_err(xpc_chan, "can't get memory for local get/put " in xpc_setup_ch_structures_sn2()
1194 dev_err(xpc_chan, "can't get memory for remote get/put " in xpc_setup_ch_structures_sn2()
1679 ch_sn2->local_GP->put = 0; in xpc_teardown_msg_structures_sn2()
1681 ch_sn2->remote_GP.put = 0; in xpc_teardown_msg_structures_sn2()
1683 ch_sn2->w_local_GP.put = 0; in xpc_teardown_msg_structures_sn2()
1685 ch_sn2->w_remote_GP.put = 0; in xpc_teardown_msg_structures_sn2()
1705 xpc_notify_senders_sn2(struct xpc_channel *ch, enum xp_retval reason, s64 put) in xpc_notify_senders_sn2() argument
1711 while (++get < put && atomic_read(&ch->n_to_notify) > 0) { in xpc_notify_senders_sn2()
1749 xpc_notify_senders_sn2(ch, ch->reason, ch->sn.sn2.w_local_GP.put); in xpc_notify_senders_of_disconnect_sn2()
1780 s64 put, remote_nentries = ch->remote_nentries; in xpc_clear_remote_msgqueue_flags_sn2() local
1783 if (ch_sn2->remote_GP.put < remote_nentries) in xpc_clear_remote_msgqueue_flags_sn2()
1786 put = max(ch_sn2->w_remote_GP.put, remote_nentries); in xpc_clear_remote_msgqueue_flags_sn2()
1789 (put % remote_nentries) * in xpc_clear_remote_msgqueue_flags_sn2()
1793 DBUG_ON(msg->number != put - remote_nentries); in xpc_clear_remote_msgqueue_flags_sn2()
1795 } while (++put < ch_sn2->remote_GP.put); in xpc_clear_remote_msgqueue_flags_sn2()
1801 return ch->sn.sn2.w_remote_GP.put - ch->sn.sn2.w_local_GP.get; in xpc_n_of_deliverable_payloads_sn2()
1818 ch_sn2->w_remote_GP.put == ch_sn2->remote_GP.put) { in xpc_process_msg_chctl_flags_sn2()
1875 * PUT value will have changed since we last looked at it.) in xpc_process_msg_chctl_flags_sn2()
1878 if (ch_sn2->w_remote_GP.put != ch_sn2->remote_GP.put) { in xpc_process_msg_chctl_flags_sn2()
1886 ch_sn2->w_remote_GP.put = ch_sn2->remote_GP.put; in xpc_process_msg_chctl_flags_sn2()
1888 dev_dbg(xpc_chan, "w_remote_GP.put changed to %lld, partid=%d, " in xpc_process_msg_chctl_flags_sn2()
1889 "channel=%d\n", ch_sn2->w_remote_GP.put, ch->partid, in xpc_process_msg_chctl_flags_sn2()
1929 DBUG_ON(ch_sn2->next_msg_to_pull >= ch_sn2->w_remote_GP.put); in xpc_pull_remote_msg_sn2()
1930 nmsgs = ch_sn2->w_remote_GP.put - ch_sn2->next_msg_to_pull; in xpc_pull_remote_msg_sn2()
1984 smp_rmb(); /* guarantee that .get loads before .put */ in xpc_get_deliverable_payload_sn2()
1985 if (get == ch_sn2->w_remote_GP.put) in xpc_get_deliverable_payload_sn2()
2023 * the local message queue's Put value and then send a chctl msgrequest to the
2031 s64 put = initial_put + 1; in xpc_send_msgs_sn2() local
2037 if (put == ch_sn2->w_local_GP.put) in xpc_send_msgs_sn2()
2041 local_msgqueue + (put % in xpc_send_msgs_sn2()
2048 put++; in xpc_send_msgs_sn2()
2051 if (put == initial_put) { in xpc_send_msgs_sn2()
2056 if (cmpxchg_rel(&ch_sn2->local_GP->put, initial_put, put) != in xpc_send_msgs_sn2()
2059 DBUG_ON(ch_sn2->local_GP->put < initial_put); in xpc_send_msgs_sn2()
2063 /* we just set the new value of local_GP->put */ in xpc_send_msgs_sn2()
2065 dev_dbg(xpc_chan, "local_GP->put changed to %lld, partid=%d, " in xpc_send_msgs_sn2()
2066 "channel=%d\n", put, ch->partid, ch->number); in xpc_send_msgs_sn2()
2072 * local_GP->put is not XPC_M_SN2_READY or that local_GP->put in xpc_send_msgs_sn2()
2073 * equals w_local_GP.put, so we'll go have a look. in xpc_send_msgs_sn2()
2075 initial_put = put; in xpc_send_msgs_sn2()
2093 s64 put; in xpc_allocate_msg_sn2() local
2104 put = ch_sn2->w_local_GP.put; in xpc_allocate_msg_sn2()
2105 smp_rmb(); /* guarantee that .put loads before .get */ in xpc_allocate_msg_sn2()
2106 if (put - ch_sn2->w_remote_GP.get < ch->local_nentries) { in xpc_allocate_msg_sn2()
2110 * to increment w_local_GP.put as long as someone else in xpc_allocate_msg_sn2()
2114 if (cmpxchg(&ch_sn2->w_local_GP.put, put, put + 1) == in xpc_allocate_msg_sn2()
2115 put) { in xpc_allocate_msg_sn2()
2116 /* we got the entry referenced by put */ in xpc_allocate_msg_sn2()
2144 (put % ch->local_nentries) * in xpc_allocate_msg_sn2()
2148 msg->number = put; in xpc_allocate_msg_sn2()
2150 dev_dbg(xpc_chan, "w_local_GP.put changed to %lld; msg=0x%p, " in xpc_allocate_msg_sn2()
2151 "msg_number=%lld, partid=%d, channel=%d\n", put + 1, in xpc_allocate_msg_sn2()
2160 * local message queue's Put value and sends a chctl msgrequest to the
2173 s64 put; in xpc_send_payload_sn2() local
2236 * load of local_GP->put. in xpc_send_payload_sn2()
2242 put = ch_sn2->local_GP->put; in xpc_send_payload_sn2()
2243 if (put == msg_number) in xpc_send_payload_sn2()
2244 xpc_send_msgs_sn2(ch, put); in xpc_send_payload_sn2()