On Mon, 11 Jul 2022, Jiri Olsa wrote:
The btf_sock_ids array needs struct mptcp_sock BTF ID for
the bpf_skc_to_mptcp_sock helper.
When CONFIG_MPTCP is disabled, the 'struct mptcp_sock' is not
defined and resolve_btfids will complain with:
BTFIDS vmlinux
WARN: resolve_btfids: unresolved symbol mptcp_sock
Adding empty difinition for struct mptcp_sock when CONFIG_MPTCP
is disabled.
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
---
include/net/mptcp.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/net/mptcp.h b/include/net/mptcp.h
index ac9cf7271d46..25741a52c666 100644
--- a/include/net/mptcp.h
+++ b/include/net/mptcp.h
@@ -59,6 +59,10 @@ struct mptcp_addr_info {
};
};
+#if !IS_ENABLED(CONFIG_MPTCP)
+struct mptcp_sock { };
+#endif
The only use of struct mptcp_sock I see with !CONFIG_MPTCP is from this
stub at the end of mptcp.h:
static inline struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) { return NULL; }
It's normally defined in net/mptcp/protocol.h for the MPTCP subsystem
code.
The conditional could be added on the line before the stub to make it
clear that the empty struct is associated with that inline stub.
+
struct mptcp_out_options {
#if IS_ENABLED(CONFIG_MPTCP)
u16 suboptions;
--
2.35.3
--
Mat Martineau
Intel