From 77f09e66f613e4801134c64d26a0be593588a42e Mon Sep 17 00:00:00 2001 From: Dimitris Michailidis Date: Tue, 8 Mar 2022 19:40:31 -0800 Subject: [PATCH 1/2] net/tls: Provide {__,}tls_driver_ctx() unconditionally Having the definitions of {__,}tls_driver_ctx() under an #if guard means code referencing them also needs to rely on the preprocessor. The protection doesn't appear needed so make the definitions unconditional. Fixes: db37bc177dae ("net/funeth: add the data path") Reported-by: Randy Dunlap Reported-by: kernel test robot Suggested-by: Jakub Kicinski Signed-off-by: Dimitris Michailidis Signed-off-by: Jakub Kicinski --- include/net/tls.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/net/tls.h b/include/net/tls.h index 526cb2c3b724e..b6968a5b55389 100644 --- a/include/net/tls.h +++ b/include/net/tls.h @@ -626,7 +626,6 @@ tls_offload_ctx_rx(const struct tls_context *tls_ctx) return (struct tls_offload_context_rx *)tls_ctx->priv_ctx_rx; } -#if IS_ENABLED(CONFIG_TLS_DEVICE) static inline void *__tls_driver_ctx(struct tls_context *tls_ctx, enum tls_offload_ctx_dir direction) { @@ -641,7 +640,6 @@ tls_driver_ctx(const struct sock *sk, enum tls_offload_ctx_dir direction) { return __tls_driver_ctx(tls_get_ctx(sk), direction); } -#endif #define RESYNC_REQ BIT(0) #define RESYNC_REQ_ASYNC BIT(1) From b23f9239195a1af116d6b388cd00c9002f80f80f Mon Sep 17 00:00:00 2001 From: Dimitris Michailidis Date: Tue, 8 Mar 2022 19:40:32 -0800 Subject: [PATCH 2/2] net/fungible: fix errors when CONFIG_TLS_DEVICE=n MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Include the TLS headers unconditionally and define driver TLS symbols used in code compiled also when CONFIG_TLS_DEVICE=n to fix the following errors: ../drivers/net/ethernet/fungible/funeth/funeth_tx.c: In function ‘write_pkt_desc’: ../drivers/net/ethernet/fungible/funeth/funeth_tx.c:244:13: error: implicit declaration of function ‘tls_driver_ctx’ [-Werror=implicit-function-declaration] 244 | tls_ctx = tls_driver_ctx(skb->sk, TLS_OFFLOAD_CTX_DIR_TX); | ^~~~~~~~~~~~~~ ../drivers/net/ethernet/fungible/funeth/funeth_tx.c:244:37: error: ‘TLS_OFFLOAD_CTX_DIR_TX’ undeclared (first use in this function) 244 | tls_ctx = tls_driver_ctx(skb->sk, TLS_OFFLOAD_CTX_DIR_TX); | ^~~~~~~~~~~~~~~~~~~~~~ ../drivers/net/ethernet/fungible/funeth/funeth_tx.c:244:37: note: each undeclared identifier is reported only once for each function it appears in ../drivers/net/ethernet/fungible/funeth/funeth_tx.c:245:23: error: dereferencing pointer to incomplete type ‘struct fun_ktls_tx_ctx’ 245 | tls->tlsid = tls_ctx->tlsid; | ^~ ../drivers/net/ethernet/fungible/funeth/funeth_tx.c: In function ‘fun_start_xmit’: ../drivers/net/ethernet/fungible/funeth/funeth_tx.c:310:6: error: implicit declaration of function ‘tls_is_sk_tx_device_offloaded’ [-Werror=implicit-function-declaration] 310 | tls_is_sk_tx_device_offloaded(skb->sk)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../drivers/net/ethernet/fungible/funeth/funeth_tx.c:311:9: error: implicit declaration of function ‘fun_tls_tx’; did you mean ‘fun_xdp_tx’? [-Werror=implicit-function-declaration] 311 | skb = fun_tls_tx(skb, q, &tls_len); | ^~~~~~~~~~ | fun_xdp_tx ../drivers/net/ethernet/fungible/funeth/funeth_tx.c:311:7: warning: assignment to ‘struct sk_buff *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 311 | skb = fun_tls_tx(skb, q, &tls_len); | ^ Fixes: db37bc177dae ("net/funeth: add the data path") Reported-by: Randy Dunlap Reported-by: kernel test robot Signed-off-by: Dimitris Michailidis Signed-off-by: Jakub Kicinski --- drivers/net/ethernet/fungible/funeth/funeth_ktls.h | 7 +++---- drivers/net/ethernet/fungible/funeth/funeth_tx.c | 9 +++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/fungible/funeth/funeth_ktls.h b/drivers/net/ethernet/fungible/funeth/funeth_ktls.h index 1b21cccf12785..9d6f2141a9593 100644 --- a/drivers/net/ethernet/fungible/funeth/funeth_ktls.h +++ b/drivers/net/ethernet/fungible/funeth/funeth_ktls.h @@ -3,17 +3,16 @@ #ifndef _FUN_KTLS_H #define _FUN_KTLS_H -struct net_device; -struct funeth_priv; - -#ifdef CONFIG_TLS_DEVICE #include +struct funeth_priv; + struct fun_ktls_tx_ctx { __be64 tlsid; u32 next_seq; }; +#if IS_ENABLED(CONFIG_TLS_DEVICE) int fun_ktls_init(struct net_device *netdev); void fun_ktls_cleanup(struct funeth_priv *fp); diff --git a/drivers/net/ethernet/fungible/funeth/funeth_tx.c b/drivers/net/ethernet/fungible/funeth/funeth_tx.c index 46684afa97a08..ff6e292372535 100644 --- a/drivers/net/ethernet/fungible/funeth/funeth_tx.c +++ b/drivers/net/ethernet/fungible/funeth/funeth_tx.c @@ -7,6 +7,7 @@ #include #include #include "funeth.h" +#include "funeth_ktls.h" #include "funeth_txrx.h" #include "funeth_trace.h" #include "fun_queue.h" @@ -75,12 +76,10 @@ static __be16 tcp_hdr_doff_flags(const struct tcphdr *th) return *(__be16 *)&tcp_flag_word(th); } -#if IS_ENABLED(CONFIG_TLS_DEVICE) -#include "funeth_ktls.h" - static struct sk_buff *fun_tls_tx(struct sk_buff *skb, struct funeth_txq *q, unsigned int *tls_len) { +#if IS_ENABLED(CONFIG_TLS_DEVICE) const struct fun_ktls_tx_ctx *tls_ctx; u32 datalen, seq; @@ -108,8 +107,10 @@ static struct sk_buff *fun_tls_tx(struct sk_buff *skb, struct funeth_txq *q, FUN_QSTAT_INC(q, tx_tls_drops); return skb; -} +#else + return NULL; #endif +} /* Write as many descriptors as needed for the supplied skb starting at the * current producer location. The caller has made certain enough descriptors