Author: glebius
Date: Mon Oct 21 23:12:14 2019
New Revision: 353876
URL: https://svnweb.freebsd.org/changeset/base/353876

Log:
  Assert that any epoch tracker belongs to the thread stack.
  
  Reviewed by:  kib

Modified:
  head/sys/kern/subr_epoch.c

Modified: head/sys/kern/subr_epoch.c
==============================================================================
--- head/sys/kern/subr_epoch.c  Mon Oct 21 21:21:34 2019        (r353875)
+++ head/sys/kern/subr_epoch.c  Mon Oct 21 23:12:14 2019        (r353876)
@@ -366,9 +366,13 @@ _epoch_enter_preempt(epoch_t epoch, epoch_tracker_t et
        struct thread *td;
 
        MPASS(cold || epoch != NULL);
-       INIT_CHECK(epoch);
        MPASS(epoch->e_flags & EPOCH_PREEMPT);
        td = curthread;
+       MPASS((vm_offset_t)et >= td->td_kstack &&
+           (vm_offset_t)et + sizeof(struct epoch_tracker) <
+           td->td_kstack + td->td_kstack_pages * PAGE_SIZE);
+
+       INIT_CHECK(epoch);
 #ifdef EPOCH_TRACE
        epoch_trace_enter(td, epoch, et, file, line);
 #endif
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to