Module Name: src Committed By: riastradh Date: Sun Dec 19 00:49:01 UTC 2021
Modified Files: src/sys/external/bsd/common/include/linux: workqueue.h src/sys/external/bsd/common/linux: linux_work.c Log Message: New system_unbound_wq. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ src/sys/external/bsd/common/include/linux/workqueue.h cvs rdiff -u -r1.46 -r1.47 src/sys/external/bsd/common/linux/linux_work.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/external/bsd/common/include/linux/workqueue.h diff -u src/sys/external/bsd/common/include/linux/workqueue.h:1.13 src/sys/external/bsd/common/include/linux/workqueue.h:1.14 --- src/sys/external/bsd/common/include/linux/workqueue.h:1.13 Mon Aug 27 15:06:02 2018 +++ src/sys/external/bsd/common/include/linux/workqueue.h Sun Dec 19 00:49:00 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: workqueue.h,v 1.13 2018/08/27 15:06:02 riastradh Exp $ */ +/* $NetBSD: workqueue.h,v 1.14 2021/12/19 00:49:00 riastradh Exp $ */ /*- * Copyright (c) 2013, 2018 The NetBSD Foundation, Inc. @@ -90,6 +90,7 @@ to_delayed_work(struct work_struct *work extern struct workqueue_struct *system_wq; extern struct workqueue_struct *system_long_wq; extern struct workqueue_struct *system_power_efficient_wq; +extern struct workqueue_struct *system_unbound_wq; int linux_workqueue_init(void); void linux_workqueue_fini(void); Index: src/sys/external/bsd/common/linux/linux_work.c diff -u src/sys/external/bsd/common/linux/linux_work.c:1.46 src/sys/external/bsd/common/linux/linux_work.c:1.47 --- src/sys/external/bsd/common/linux/linux_work.c:1.46 Sun Dec 19 00:48:53 2021 +++ src/sys/external/bsd/common/linux/linux_work.c Sun Dec 19 00:49:00 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_work.c,v 1.46 2021/12/19 00:48:53 riastradh Exp $ */ +/* $NetBSD: linux_work.c,v 1.47 2021/12/19 00:49:00 riastradh Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_work.c,v 1.46 2021/12/19 00:48:53 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_work.c,v 1.47 2021/12/19 00:49:00 riastradh Exp $"); #include <sys/types.h> #include <sys/atomic.h> @@ -119,6 +119,7 @@ static specificdata_key_t workqueue_key struct workqueue_struct *system_wq __read_mostly; struct workqueue_struct *system_long_wq __read_mostly; struct workqueue_struct *system_power_efficient_wq __read_mostly; +struct workqueue_struct *system_unbound_wq __read_mostly; static inline uintptr_t atomic_cas_uintptr(volatile uintptr_t *p, uintptr_t old, uintptr_t new) @@ -160,10 +161,17 @@ linux_workqueue_init0(void) goto fail3; } + system_unbound_wq = alloc_ordered_workqueue("lnxubdwq", 0); + if (system_unbound_wq == NULL) { + error = ENOMEM; + goto fail4; + } + return 0; -fail4: __unused - destroy_workqueue(system_power_efficient_wq); +fail5: __unused + destroy_workqueue(system_unbound_wq); +fail4: destroy_workqueue(system_power_efficient_wq); fail3: destroy_workqueue(system_long_wq); fail2: destroy_workqueue(system_wq); fail1: lwp_specific_key_delete(workqueue_key);