Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Feb 2018 17:56:47 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r328796 - stable/11/sys/kern
Message-ID:  <201802021756.w12Hul06005538@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802021756.w12Hul06005538>