After commit 9d2e5e9eeb59 ("cxgb4/ch_ktls: decrypted bit is not enough") building the kernel with CHELSIO_T4=y and CHELSIO_TLS_DEVICE=n results in the following error:
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o: in function `cxgb_select_queue': cxgb4_main.c:(.text+0x2dac): undefined reference to `tls_validate_xmit_skb' This is caused by cxgb_select_queue() calling cxgb4_is_ktls_skb() without checking if CHELSIO_TLS_DEVICE=y. Fix this by calling cxgb4_is_ktls_skb() only when this config option is enabled. Fixes: 9d2e5e9eeb59 ("cxgb4/ch_ktls: decrypted bit is not enough") Signed-off-by: Tom Seewald <tseew...@gmail.com> --- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index 7fd264a6d085..8e8783afd6df 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c @@ -1176,7 +1176,9 @@ static u16 cxgb_select_queue(struct net_device *dev, struct sk_buff *skb, txq = netdev_pick_tx(dev, skb, sb_dev); if (xfrm_offload(skb) || is_ptp_enabled(skb, dev) || skb->encapsulation || - cxgb4_is_ktls_skb(skb) || +#if IS_ENABLED(CONFIG_CHELSIO_TLS_DEVICE) + cxgb4_is_ktls_skb(skb) || +#endif /* CHELSIO_TLS_DEVICE */ (proto != IPPROTO_TCP && proto != IPPROTO_UDP)) txq = txq % pi->nqsets; -- 2.20.1