Module Name: src
Committed By: riastradh
Date: Wed Aug 9 08:24:18 UTC 2023
Modified Files:
src/sys/kern: subr_workqueue.c
Log Message:
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker.
No functional change intended. Makes it clearer that s is
initialized when used.
To generate a diff of this commit:
cvs rdiff -u -r1.46 -r1.47 src/sys/kern/subr_workqueue.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/subr_workqueue.c
diff -u src/sys/kern/subr_workqueue.c:1.46 src/sys/kern/subr_workqueue.c:1.47
--- src/sys/kern/subr_workqueue.c:1.46 Wed Aug 9 08:24:08 2023
+++ src/sys/kern/subr_workqueue.c Wed Aug 9 08:24:18 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_workqueue.c,v 1.46 2023/08/09 08:24:08 riastradh Exp $ */
+/* $NetBSD: subr_workqueue.c,v 1.47 2023/08/09 08:24:18 riastradh Exp $ */
/*-
* Copyright (c)2002, 2005, 2006, 2007 YAMAMOTO Takashi,
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_workqueue.c,v 1.46 2023/08/09 08:24:08 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_workqueue.c,v 1.47 2023/08/09 08:24:18 riastradh Exp $");
#include <sys/param.h>
@@ -156,12 +156,12 @@ workqueue_worker(void *cookie)
{
struct workqueue *wq = cookie;
struct workqueue_queue *q;
- int s;
+ int s, fpu = wq->wq_flags & WQ_FPU;
/* find the workqueue of this kthread */
q = workqueue_queue_lookup(wq, curlwp->l_cpu);
- if (wq->wq_flags & WQ_FPU)
+ if (fpu)
s = kthread_fpu_enter();
mutex_enter(&q->q_mutex);
for (;;) {
@@ -193,7 +193,7 @@ workqueue_worker(void *cookie)
cv_broadcast(&q->q_cv);
}
mutex_exit(&q->q_mutex);
- if (wq->wq_flags & WQ_FPU)
+ if (fpu)
kthread_fpu_exit(s);
}