Date: Sat, 21 Mar 2015 02:00:40 +0100 From: Mateusz Guzik <mjguzik@gmail.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: freebsd-current@freebsd.org, jenkins-admin@freebsd.org, Mateusz Guzik <mjg@freebsd.org> Subject: [PATCH 3/3] proc: use MTX_NEW flag in proc_init Message-ID: <1426899640-6599-4-git-send-email-mjguzik@gmail.com> In-Reply-To: <1426899640-6599-1-git-send-email-mjguzik@gmail.com> References: <20150320122125.GP2379@kib.kiev.ua> <1426899640-6599-1-git-send-email-mjguzik@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
From: Mateusz Guzik <mjg@freebsd.org> This allows us to get rid of bzero which was added specifically to make mtx_init on p_mtx reliable. This also fixes a potential problem where mtx_init on other mutexes could trip over on unitialized memory and fire an assertion. --- sys/kern/kern_proc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index a607d7b1..f72269d 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -225,12 +225,11 @@ proc_init(void *mem, int size, int flags) p = (struct proc *)mem; SDT_PROBE(proc, kernel, init, entry, p, size, flags, 0, 0); p->p_sched = (struct p_sched *)&p[1]; - bzero(&p->p_mtx, sizeof(struct mtx)); - mtx_init(&p->p_mtx, "process lock", NULL, MTX_DEF | MTX_DUPOK); - mtx_init(&p->p_slock, "process slock", NULL, MTX_SPIN); - mtx_init(&p->p_statmtx, "pstatl", NULL, MTX_SPIN); - mtx_init(&p->p_itimmtx, "pitiml", NULL, MTX_SPIN); - mtx_init(&p->p_profmtx, "pprofl", NULL, MTX_SPIN); + mtx_init(&p->p_mtx, "process lock", NULL, MTX_DEF | MTX_DUPOK | MTX_NEW); + mtx_init(&p->p_slock, "process slock", NULL, MTX_SPIN | MTX_NEW); + mtx_init(&p->p_statmtx, "pstatl", NULL, MTX_SPIN | MTX_NEW); + mtx_init(&p->p_itimmtx, "pitiml", NULL, MTX_SPIN | MTX_NEW); + mtx_init(&p->p_profmtx, "pprofl", NULL, MTX_SPIN | MTX_NEW); cv_init(&p->p_pwait, "ppwait"); cv_init(&p->p_dbgwait, "dbgwait"); TAILQ_INIT(&p->p_threads); /* all threads in proc */ -- 2.3.2
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1426899640-6599-4-git-send-email-mjguzik>