Update API.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
.../selftests/bpf/progs/mptcp_bpf_bkup.c | 21 +++++++++++--------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c
index b2724426676e..e5ba97390e17 100644
--- a/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c
+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c
@@ -7,37 +7,40 @@
char _license[] SEC("license") = "GPL";
SEC("struct_ops/mptcp_sched_bkup_init")
-void BPF_PROG(mptcp_sched_bkup_init, const struct mptcp_sock *msk)
+void BPF_PROG(mptcp_sched_bkup_init, struct mptcp_sock *msk)
{
}
SEC("struct_ops/mptcp_sched_bkup_release")
-void BPF_PROG(mptcp_sched_bkup_release, const struct mptcp_sock *msk)
+void BPF_PROG(mptcp_sched_bkup_release, struct mptcp_sock *msk)
{
}
-void BPF_STRUCT_OPS(bpf_bkup_data_init, const struct mptcp_sock *msk,
+void BPF_STRUCT_OPS(bpf_bkup_data_init, struct mptcp_sock *msk,
struct mptcp_sched_data *data)
{
mptcp_sched_data_set_contexts(msk, data);
}
-int BPF_STRUCT_OPS(bpf_bkup_get_subflow, const struct mptcp_sock *msk,
- struct mptcp_sched_data *data)
+int BPF_STRUCT_OPS(bpf_bkup_get_subflow, struct mptcp_sock *msk,
+ const struct mptcp_sched_data *data)
{
int nr = 0;
- for (int i = 0; i < MPTCP_SUBFLOWS_MAX; i++) {
- if (!data->contexts[i])
+ for (int i = 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) {
+ struct mptcp_subflow_context *subflow;
+
+ subflow = mptcp_subflow_ctx_by_pos(data, i);
+ if (!subflow)
break;
- if (!BPF_CORE_READ_BITFIELD_PROBED(data->contexts[i], backup)) {
+ if (!BPF_CORE_READ_BITFIELD_PROBED(subflow, backup)) {
nr = i;
break;
}
}
- mptcp_subflow_set_scheduled(data->contexts[nr], true);
+ mptcp_subflow_set_scheduled(mptcp_subflow_ctx_by_pos(data, nr), true);
return 0;
}
--
2.35.3