Thread (16 messages) 16 messages, 2 authors, 2019-12-04
STALE2398d
Revisions (5)
  1. v1 [diff vs current]
  2. resend [diff vs current]
  3. v3 [diff vs current]
  4. v4 [diff vs current]
  5. v4 current

[PATCH v4 rebase 01/10] cdrom: add poll_event_interruptible

From: Michal Suchanek <hidden>
Date: 2019-11-26 19:55:25
Also in: linux-fsdevel, linux-scsi, lkml
Subsystem: the rest, uniform cdrom driver · Maintainers: Linus Torvalds, Phillip Potter

Add convenience macro for polling an event that does not have a
waitqueue.

Signed-off-by: Michal Suchanek <redacted>
---
 drivers/cdrom/cdrom.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index ac42ae4651ce..2ad6b73482fe 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -282,10 +282,24 @@
 #include <linux/fcntl.h>
 #include <linux/blkdev.h>
 #include <linux/times.h>
+#include <linux/delay.h>
 #include <linux/uaccess.h>
+#include <linux/sched/signal.h>
 #include <scsi/scsi_common.h>
 #include <scsi/scsi_request.h>
 
+#define poll_event_interruptible(event, interval) ({ \
+	int ret = 0; \
+	while (!(event)) { \
+		if (signal_pending(current)) { \
+			ret = -ERESTARTSYS; \
+			break; \
+		} \
+		msleep_interruptible(interval); \
+	} \
+	ret; \
+})
+
 /* used to tell the module to turn on full debugging messages */
 static bool debug;
 /* default compatibility mode */
-- 
2.23.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help