svn commit: r328796 - stable/11/sys/kern

Alexander Motin mav at FreeBSD.org
Fri Feb 2 17:56:48 UTC 2018


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);
 }


More information about the svn-src-all mailing list