summaryrefslogtreecommitdiff
path: root/include/linux/workqueue.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-09-08 14:49:32 +1000
committerDave Airlie <airlied@redhat.com>2009-09-08 14:49:32 +1000
commitcc84ef3fd20ef6dfe5fbc4778e7017d015b3bf7d (patch)
treece46a55f673cd2e669e9ccf625e6101a52138624 /include/linux/workqueue.h
parentc746e205f2fb6f74b4a622382607f065eca5eb49 (diff)
parent3ff323f89075624b6891e7c428edb8e8a35be13c (diff)
Merge remote branch 'origin/master' of ../linux-2.6 into drm-next
This was a non-trivial merge with some patches sent to Linus in drm-fixes. Conflicts: drivers/gpu/drm/radeon/r300.c drivers/gpu/drm/radeon/radeon_asic.h drivers/gpu/drm/radeon/rs600.c drivers/gpu/drm/radeon/rs690.c drivers/gpu/drm/radeon/rv515.c
Diffstat (limited to 'include/linux/workqueue.h')
-rw-r--r--include/linux/workqueue.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index 13e1adf55c4c..6273fa97b527 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -240,6 +240,21 @@ static inline int cancel_delayed_work(struct delayed_work *work)
return ret;
}
+/*
+ * Like above, but uses del_timer() instead of del_timer_sync(). This means,
+ * if it returns 0 the timer function may be running and the queueing is in
+ * progress.
+ */
+static inline int __cancel_delayed_work(struct delayed_work *work)
+{
+ int ret;
+
+ ret = del_timer(&work->timer);
+ if (ret)
+ work_clear_pending(&work->work);
+ return ret;
+}
+
extern int cancel_delayed_work_sync(struct delayed_work *work);
/* Obsolete. use cancel_delayed_work_sync() */