From 4869ce0a43a77bfcaa38947bf4fb06d7dffd9f71 Mon Sep 17 00:00:00 2001 From: pgoyette Date: Tue, 10 Jan 2017 22:08:14 +0000 Subject: [PATCH] Use membar_{producer,consumer}() to ensure proper access to the "ready" flag. --- sys/kern/kern_history.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_history.c b/sys/kern/kern_history.c index 25d37eea37bb..fd96aae1ac61 100644 --- a/sys/kern/kern_history.c +++ b/sys/kern/kern_history.c @@ -1,4 +1,4 @@ -/* $NetBSD: kern_history.c,v 1.13 2017/01/10 00:50:57 pgoyette Exp $ */ +/* $NetBSD: kern_history.c,v 1.14 2017/01/10 22:08:14 pgoyette Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -33,7 +33,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kern_history.c,v 1.13 2017/01/10 00:50:57 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_history.c,v 1.14 2017/01/10 22:08:14 pgoyette Exp $"); #include "opt_ddb.h" #include "opt_kernhist.h" @@ -43,6 +43,7 @@ __KERNEL_RCSID(0, "$NetBSD: kern_history.c,v 1.13 2017/01/10 00:50:57 pgoyette E #include "opt_biohist.h" #include "opt_sysctl.h" +#include #include #include #include @@ -289,6 +290,7 @@ sysctl_kernhist_new(struct kern_history *hist) struct kern_history *h; const struct sysctlnode *rnode = NULL; + membar_consumer(); if (kernhist_sysctl_ready == 0) return; @@ -329,6 +331,7 @@ sysctl_kernhist_init(void) sysctl_hist_node = rnode->sysctl_num; kernhist_sysctl_ready = 1; + membar_producer(); sysctl_kernhist_new(NULL); }