svn commit: r314971 - head/sys/compat/linuxkpi/common/include/linux
Hans Petter Selasky
hselasky at FreeBSD.org
Thu Mar 9 18:37:18 UTC 2017
Author: hselasky
Date: Thu Mar 9 18:37:17 2017
New Revision: 314971
URL: https://svnweb.freebsd.org/changeset/base/314971
Log:
Fix implementation of the DECLARE_WORK() macro in the LinuxKPI to fully
initialize the declared work structure and not only the function callback
pointer.
MFC after: 1 week
Sponsored by: Mellanox Technologies
Modified:
head/sys/compat/linuxkpi/common/include/linux/workqueue.h
Modified: head/sys/compat/linuxkpi/common/include/linux/workqueue.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/workqueue.h Thu Mar 9 18:33:40 2017 (r314970)
+++ head/sys/compat/linuxkpi/common/include/linux/workqueue.h Thu Mar 9 18:37:17 2017 (r314971)
@@ -72,8 +72,13 @@ struct work_struct {
atomic_t state;
};
-#define DECLARE_WORK(name, fn) \
- struct work_struct name = { .func = (fn) }
+#define DECLARE_WORK(name, fn) \
+ struct work_struct name; \
+ static void name##_init(void *arg) \
+ { \
+ INIT_WORK(&name, fn); \
+ } \
+ SYSINIT(name, SI_SUB_LOCK, SI_ORDER_SECOND, name##_init, NULL)
struct delayed_work {
struct work_struct work;
More information about the svn-src-head
mailing list