> > > @@ -401,6 +430,15 @@ static int do_tls_setsockopt_tx(struct sock *sk, char __user *optval, > > > goto out; > > > } > > > > > > + rc = get_tls_offload_dev(sk); > > > + if (rc) { > > > + goto out; > > > + } else { > > > + /* Retain HW unhash for cleanup and move to SW Tx */ > > > + sk->sk_prot[TLS_BASE_TX].unhash = > > > + sk->sk_prot[TLS_FULL_HW].unhash; > > > > Isn't sk->sk_prot a pointer to a global shared struct here still? It looks like this would actually modify the global struct, and not just for this sk. > Yes, its global. It require add on check to modify only when tls_offload dev list has an entry. I will revisit and correct. > > Can you look through other changes please? I looked through 1,2,3,11 (the tls-related ones) and don't have any other code comments. Patch 11 commit message still mentions ULP, could use updating / clarification. Thank you, I will collate and clean for v6.