summaryrefslogtreecommitdiffstats
path: root/sound/oss/sleep.h
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2014-01-02 13:07:51 +0100
committerTakashi Iwai <tiwai@suse.de>2014-01-14 16:12:07 +0100
commitcdef2e5f358db5fd27eec4c72eb295c232287813 (patch)
tree83f0821da55eff4924b2947c29d8e2b87d302494 /sound/oss/sleep.h
parent1a1e0a80ceb766852e8abd5d4c3d9475611a7d85 (diff)
downloadlinux-cdef2e5f358db5fd27eec4c72eb295c232287813.tar.bz2
sound: oss: remove last sleep_on users
There are three files in oss for which I could not find an easy way to replace interruptible_sleep_on_timeout with a non-racy version. This patch instead just adds a private implementation of the function, now named oss_broken_sleep_on, and changes over the remaining users in sound/oss/ so we can remove the global interface. [fixed coding style warnings by tiwai] Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/oss/sleep.h')
-rw-r--r--sound/oss/sleep.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/sound/oss/sleep.h b/sound/oss/sleep.h
new file mode 100644
index 000000000000..a20fc925a5ce
--- /dev/null
+++ b/sound/oss/sleep.h
@@ -0,0 +1,18 @@
+#include <linux/wait.h>
+
+/*
+ * Do not use. This is a replacement for the old
+ * "interruptible_sleep_on_timeout" function that has been
+ * deprecated for ages. All users should instead try to use
+ * wait_event_interruptible_timeout.
+ */
+
+static inline long
+oss_broken_sleep_on(wait_queue_head_t *q, long timeout)
+{
+ DEFINE_WAIT(wait);
+ prepare_to_wait(q, &wait, TASK_INTERRUPTIBLE);
+ timeout = schedule_timeout(timeout);
+ finish_wait(q, &wait);
+ return timeout;
+}