Lines Matching full:pm

21 	msk->pm.local = *addr;  in mptcp_pm_announce_addr()
22 WRITE_ONCE(msk->pm.add_addr_echo, echo); in mptcp_pm_announce_addr()
23 WRITE_ONCE(msk->pm.add_addr_signal, true); in mptcp_pm_announce_addr()
31 msk->pm.rm_id = local_id; in mptcp_pm_remove_addr()
32 WRITE_ONCE(msk->pm.rm_addr_signal, true); in mptcp_pm_remove_addr()
40 spin_lock_bh(&msk->pm.lock); in mptcp_pm_remove_subflow()
42 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_remove_subflow()
50 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_new_connection() local
54 WRITE_ONCE(pm->server_side, server_side); in mptcp_pm_new_connection()
59 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_allow_new_subflow() local
62 pr_debug("msk=%p subflows=%d max=%d allow=%d", msk, pm->subflows, in mptcp_pm_allow_new_subflow()
63 pm->subflows_max, READ_ONCE(pm->accept_subflow)); in mptcp_pm_allow_new_subflow()
66 if (!READ_ONCE(pm->accept_subflow)) in mptcp_pm_allow_new_subflow()
69 spin_lock_bh(&pm->lock); in mptcp_pm_allow_new_subflow()
70 if (READ_ONCE(pm->accept_subflow)) { in mptcp_pm_allow_new_subflow()
71 ret = pm->subflows < pm->subflows_max; in mptcp_pm_allow_new_subflow()
72 if (ret && ++pm->subflows == pm->subflows_max) in mptcp_pm_allow_new_subflow()
73 WRITE_ONCE(pm->accept_subflow, false); in mptcp_pm_allow_new_subflow()
75 spin_unlock_bh(&pm->lock); in mptcp_pm_allow_new_subflow()
86 pr_debug("msk=%p status=%x new=%lx", msk, msk->pm.status, in mptcp_pm_schedule_work()
88 if (msk->pm.status & BIT(new_status)) in mptcp_pm_schedule_work()
91 msk->pm.status |= BIT(new_status); in mptcp_pm_schedule_work()
99 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_fully_established() local
104 if (!READ_ONCE(pm->work_pending)) in mptcp_pm_fully_established()
107 spin_lock_bh(&pm->lock); in mptcp_pm_fully_established()
109 if (READ_ONCE(pm->work_pending)) in mptcp_pm_fully_established()
112 spin_unlock_bh(&pm->lock); in mptcp_pm_fully_established()
123 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_subflow_established() local
127 if (!READ_ONCE(pm->work_pending)) in mptcp_pm_subflow_established()
130 spin_lock_bh(&pm->lock); in mptcp_pm_subflow_established()
132 if (READ_ONCE(pm->work_pending)) in mptcp_pm_subflow_established()
135 spin_unlock_bh(&pm->lock); in mptcp_pm_subflow_established()
146 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_add_addr_received() local
149 READ_ONCE(pm->accept_addr)); in mptcp_pm_add_addr_received()
151 spin_lock_bh(&pm->lock); in mptcp_pm_add_addr_received()
153 if (!READ_ONCE(pm->accept_addr)) in mptcp_pm_add_addr_received()
156 pm->remote = *addr; in mptcp_pm_add_addr_received()
158 spin_unlock_bh(&pm->lock); in mptcp_pm_add_addr_received()
163 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_rm_addr_received() local
167 spin_lock_bh(&pm->lock); in mptcp_pm_rm_addr_received()
169 pm->rm_id = rm_id; in mptcp_pm_rm_addr_received()
170 spin_unlock_bh(&pm->lock); in mptcp_pm_rm_addr_received()
180 spin_lock_bh(&msk->pm.lock); in mptcp_pm_add_addr_signal()
186 *echo = READ_ONCE(msk->pm.add_addr_echo); in mptcp_pm_add_addr_signal()
188 if (remaining < mptcp_add_addr_len(msk->pm.local.family, *echo)) in mptcp_pm_add_addr_signal()
191 *saddr = msk->pm.local; in mptcp_pm_add_addr_signal()
192 WRITE_ONCE(msk->pm.add_addr_signal, false); in mptcp_pm_add_addr_signal()
196 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_add_addr_signal()
205 spin_lock_bh(&msk->pm.lock); in mptcp_pm_rm_addr_signal()
214 *rm_id = msk->pm.rm_id; in mptcp_pm_rm_addr_signal()
215 WRITE_ONCE(msk->pm.rm_addr_signal, false); in mptcp_pm_rm_addr_signal()
219 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_rm_addr_signal()
230 msk->pm.add_addr_signaled = 0; in mptcp_pm_data_init()
231 msk->pm.add_addr_accepted = 0; in mptcp_pm_data_init()
232 msk->pm.local_addr_used = 0; in mptcp_pm_data_init()
233 msk->pm.subflows = 0; in mptcp_pm_data_init()
234 msk->pm.rm_id = 0; in mptcp_pm_data_init()
235 WRITE_ONCE(msk->pm.work_pending, false); in mptcp_pm_data_init()
236 WRITE_ONCE(msk->pm.add_addr_signal, false); in mptcp_pm_data_init()
237 WRITE_ONCE(msk->pm.rm_addr_signal, false); in mptcp_pm_data_init()
238 WRITE_ONCE(msk->pm.accept_addr, false); in mptcp_pm_data_init()
239 WRITE_ONCE(msk->pm.accept_subflow, false); in mptcp_pm_data_init()
240 WRITE_ONCE(msk->pm.add_addr_echo, false); in mptcp_pm_data_init()
241 msk->pm.status = 0; in mptcp_pm_data_init()
243 spin_lock_init(&msk->pm.lock); in mptcp_pm_data_init()
244 INIT_LIST_HEAD(&msk->pm.anno_list); in mptcp_pm_data_init()