Author: mav
Date: Fri Feb  2 17:56:47 2018
New Revision: 328796
URL: https://svnweb.freebsd.org/changeset/base/328796

Log:
  MFC r307041 (by sbruno):
  Fix bug where malloc(.., M_NOWAIT) return value is not checked, Change to
  M_WAITOK and move outside the mutex

Modified:
  stable/11/sys/kern/subr_gtaskqueue.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/subr_gtaskqueue.c
==============================================================================
--- stable/11/sys/kern/subr_gtaskqueue.c        Fri Feb  2 17:52:09 2018        
(r328795)
+++ stable/11/sys/kern/subr_gtaskqueue.c        Fri Feb  2 17:56:47 2018        
(r328796)
@@ -729,7 +729,7 @@ taskqgroup_bind(struct taskqgroup *qgroup)
         * one.
         */
        for (i = 0; i < qgroup->tqg_cnt; i++) {
-               gtask = malloc(sizeof (*gtask), M_DEVBUF, M_NOWAIT);
+               gtask = malloc(sizeof (*gtask), M_DEVBUF, M_WAITOK);
                GTASK_INIT(&gtask->bt_task, 0, 0, taskqgroup_binder, gtask);
                gtask->bt_cpuid = qgroup->tqg_queue[i].tgc_cpu;
                grouptaskqueue_enqueue(qgroup->tqg_queue[i].tgc_taskq,
@@ -828,10 +828,10 @@ _taskqgroup_adjust(struct taskqgroup *qgroup, int cnt,
        for (i = cnt; i < old_cnt; i++)
                taskqgroup_cpu_remove(qgroup, i);
 
+       taskqgroup_bind(qgroup);
+
        mtx_lock(&qgroup->tqg_lock);
        qgroup->tqg_adjusting = 0;
-
-       taskqgroup_bind(qgroup);
 
        return (0);
 }
_______________________________________________
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