Skip to contentSkip to conversation

Patch "staging: unisys: correctly handle return value from queue_delayed_work()" has been added to the 3.18-stable tree

PATCH [email protected] 1 participant 1 message May 5, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

staging: unisys: correctly handle return value from queue_delayed_work()

to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
staging-unisys-correctly-handle-return-value-from-queue_delayed_work.patch
and it can be found in the queue-3.18 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From f84bd6267d623b49f196d54ba9edc41ff1c4d5e3 Mon Sep 17 00:00:00 2001

From: Benjamin Romer <[email protected]>
Date: Thu, 1 Oct 2015 11:52:30 -0400
Subject: staging: unisys: correctly handle return value from queue_delayed_work()

From: Benjamin Romer <[email protected]>

commit f84bd6267d623b49f196d54ba9edc41ff1c4d5e3 upstream.

Properly handle the return value from queue_delayed_work() - it's a bool, not an int, so using a less than comparison isn't appropriate.

This mistake was found by David Binderman <[email protected]>.

[arnd: the fix is from 4.4 but needed some minor fixup to adapt
to context changes]

---
 drivers/staging/unisys/visorutil/periodic_work.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/staging/unisys/visorutil/periodic_work.c +4 -4
@@ -98,8 +98,8 @@ BOOL visor_periodic_work_nextperiod(stru
 		pw->want_to_stop = FALSE;
 		rc = TRUE;  /* yes, TRUE; see visor_periodic_work_stop() */
 		goto unlock;
-	} else if (queue_delayed_work(pw->workqueue, &pw->work,
-				      pw->jiffy_interval) < 0) {
+	} else if (!queue_delayed_work(pw->workqueue, &pw->work,
+				       pw->jiffy_interval)) {
 		ERRDEV(pw->devnam, "queue_delayed_work failed!");
 		pw->is_scheduled = FALSE;
 		rc = FALSE;
@@ -134,8 +134,8 @@ BOOL visor_periodic_work_start(struct pe
 		goto unlock;
 	}
 	INIT_DELAYED_WORK(&pw->work, &periodic_work_func);
-	if (queue_delayed_work(pw->workqueue, &pw->work,
-			       pw->jiffy_interval) < 0) {
+	if (!queue_delayed_work(pw->workqueue, &pw->work,
+				pw->jiffy_interval)) {
 		ERRDEV(pw->devnam, "%s queue_delayed_work failed!", __func__);
 		rc = FALSE;
 		goto unlock;

Patches currently in stable-queue which might be from [email protected] are

queue-3.18/staging-unisys-correctly-handle-return-value-from-queue_delayed_work.patch