From 29a9106f74a9155eec27a273a79701511a2d8d51 Mon Sep 17 00:00:00 2001 From: Justin M. Forbes Date: Sep 02 2015 17:00:59 +0000 Subject: Make flush_workqueue() available again to non GPL modules (rhbz 1259231) --- diff --git a/kernel.spec b/kernel.spec index dc8129c..de1b9bc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -606,6 +606,9 @@ Patch514: drm-qxl-validate-monitors-config-modes.patch Patch517: vmwgfx-Rework-device-initialization.patch Patch518: drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch +#rhbz 1259231 +Patch519: make-flush-workqueue-available-to-non-GPL-modules.patch + # END OF PATCH DEFINITIONS %endif @@ -2050,6 +2053,9 @@ fi # # %changelog +* Wed Sep 02 2015 Justin M. Forbes +- Make flush_workqueue() available again to non GPL modules (rhbz 1259231) + * Mon Aug 31 2015 Josh Boyer - 4.2.0-1 - Linux v4.2 diff --git a/make-flush-workqueue-available-to-non-GPL-modules.patch b/make-flush-workqueue-available-to-non-GPL-modules.patch new file mode 100644 index 0000000..d0966bd --- /dev/null +++ b/make-flush-workqueue-available-to-non-GPL-modules.patch @@ -0,0 +1,32 @@ +From 1dadafa86a779884f14a6e7a3ddde1a57b0a0a65 Mon Sep 17 00:00:00 2001 +From: Tim Gardner +Date: Tue, 4 Aug 2015 11:26:04 -0600 +Subject: [PATCH] workqueue: Make flush_workqueue() available again to non GPL + modules + +Commit 37b1ef31a568fc02e53587620226e5f3c66454c8 ("workqueue: move +flush_scheduled_work() to workqueue.h") moved the exported non GPL +flush_scheduled_work() from a function to an inline wrapper. +Unfortunately, it directly calls flush_workqueue() which is a GPL function. +This has the effect of changing the licensing requirement for this function +and makes it unavailable to non GPL modules. + +See commit ad7b1f841f8a54c6d61ff181451f55b68175e15a ("workqueue: Make +schedule_work() available again to non GPL modules") for precedent. + +Signed-off-by: Tim Gardner +Signed-off-by: Tejun Heo + +diff --git a/kernel/workqueue.c b/kernel/workqueue.c +index 4c4f061..a413acb 100644 +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -2614,7 +2614,7 @@ void flush_workqueue(struct workqueue_struct *wq) + out_unlock: + mutex_unlock(&wq->mutex); + } +-EXPORT_SYMBOL_GPL(flush_workqueue); ++EXPORT_SYMBOL(flush_workqueue); + + /** + * drain_workqueue - drain a workqueue