Author: mav
Date: Fri Feb  2 18:10:45 2018
New Revision: 328802
URL: https://svnweb.freebsd.org/changeset/base/328802

Log:
  Partial MFC of r311039 (by sbruno):
  - add INVARIANTS debugging hooks to gtaskqueue enqueue (mmacy)

Modified:
  stable/11/sys/kern/subr_gtaskqueue.c

Modified: stable/11/sys/kern/subr_gtaskqueue.c
==============================================================================
--- stable/11/sys/kern/subr_gtaskqueue.c        Fri Feb  2 18:04:57 2018        
(r328801)
+++ stable/11/sys/kern/subr_gtaskqueue.c        Fri Feb  2 18:10:45 2018        
(r328802)
@@ -101,6 +101,15 @@ struct gtaskqueue {
        } while (0)
 #define        TQ_ASSERT_UNLOCKED(tq)  mtx_assert(&(tq)->tq_mutex, MA_NOTOWNED)
 
+#ifdef INVARIANTS
+static void
+gtask_dump(struct gtask *gtask)
+{
+       printf("gtask: %p ta_flags=%x ta_priority=%d ta_func=%p 
ta_context=%p\n",
+              gtask, gtask->ta_flags, gtask->ta_priority, gtask->ta_func, 
gtask->ta_context);
+}
+#endif
+
 static __inline int
 TQ_SLEEP(struct gtaskqueue *tq, void *p, struct mtx *m, int pri, const char 
*wm,
     int t)
@@ -174,6 +183,12 @@ gtaskqueue_free(struct gtaskqueue *queue)
 int
 grouptaskqueue_enqueue(struct gtaskqueue *queue, struct gtask *gtask)
 {
+#ifdef INVARIANTS
+       if (queue == NULL) {
+               gtask_dump(gtask);
+               panic("queue == NULL");
+       }
+#endif
        TQ_LOCK(queue);
        if (gtask->ta_flags & TASK_ENQUEUED) {
                TQ_UNLOCK(queue);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to