On Tue, 13 Jun 2023 at 13:50:06 -0700, Jakub Kicinski wrote: > All callers of tls_is_sk_tx_device_offloaded() currently do > an equivalent of: > > if (skb->sk && tls_is_skb_tx_device_offloaded(skb->sk)) > > Have the helper accept skb and do the skb->sk check locally. > Two drivers have local static inlines with similar wrappers > already. > > While at it change the ifdef condition to TLS_DEVICE. > Only TLS_DEVICE selects SOCK_VALIDATE_XMIT, so the two are > equivalent. This makes removing the duplicated IS_ENABLED() > check in funeth more obviously correct. > > Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> Acked-by: Maxim Mikityanskiy <maxtram95@xxxxxxxxx> Nice cleanup, thanks! [...] > diff --git a/include/net/tls.h b/include/net/tls.h > index b7d0f1e3058b..5e71dd3df8ca 100644 > --- a/include/net/tls.h > +++ b/include/net/tls.h > @@ -370,10 +370,12 @@ struct sk_buff * > tls_validate_xmit_skb_sw(struct sock *sk, struct net_device *dev, > struct sk_buff *skb); > > -static inline bool tls_is_sk_tx_device_offloaded(struct sock *sk) > +static inline bool tls_is_skb_tx_device_offloaded(const struct sk_buff *skb) > { > -#ifdef CONFIG_SOCK_VALIDATE_XMIT > - return sk_fullsock(sk) && > +#ifdef CONFIG_TLS_DEVICE > + struct sock *sk = skb->sk; > + > + return sk && sk_fullsock(sk) && > (smp_load_acquire(&sk->sk_validate_xmit_skb) == > &tls_validate_xmit_skb); > #else After this change, the only usage of CONFIG_SOCK_VALIDATE_XMIT remains in sk_validate_xmit_skb, which has #ifdef CONFIG_TLS_DEVICE inside #ifdef CONFIG_SOCK_VALIDATE_XMIT. If feels a little bit weird, given that both defines always have the same value, but maybe it's OK if we consider that more users can start using sk_validate_xmit_skb in the future.