svn commit: r356938 - head/sys/kern

Hans Petter Selasky hselasky at FreeBSD.org
Tue Jan 21 11:43:26 UTC 2020


Author: hselasky
Date: Tue Jan 21 11:43:25 2020
New Revision: 356938
URL: https://svnweb.freebsd.org/changeset/base/356938

Log:
  Make sure the VNET is properly set when calling tcp_drop() from
  the ktls taskqueue callback function.
  
  A valid VNET is needed when updating statistics.
  
  panic()
  tcp_state_change()
  tcp_drop()
  ktls_reset_send_tag()
  taskqueue_run_locked()
  taskqueue_thread_loop()
  
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/kern/uipc_ktls.c

Modified: head/sys/kern/uipc_ktls.c
==============================================================================
--- head/sys/kern/uipc_ktls.c	Tue Jan 21 05:01:11 2020	(r356937)
+++ head/sys/kern/uipc_ktls.c	Tue Jan 21 11:43:25 2020	(r356938)
@@ -1141,7 +1141,9 @@ ktls_reset_send_tag(void *context, int pending)
 			if (!(inp->inp_flags & INP_TIMEWAIT) &&
 			    !(inp->inp_flags & INP_DROPPED)) {
 				tp = intotcpcb(inp);
+				CURVNET_SET(tp->t_vnet);
 				tp = tcp_drop(tp, ECONNABORTED);
+				CURVNET_RESTORE();
 				if (tp != NULL)
 					INP_WUNLOCK(inp);
 				counter_u64_add(ktls_ifnet_reset_dropped, 1);


More information about the svn-src-all mailing list