All of lore.kernel.org
 help / color / mirror / Atom feed
* [KJ] [PATCH] drm/drm_os_linux: use
@ 2005-03-02 20:33 Nishanth Aravamudan
  0 siblings, 0 replies; only message in thread
From: Nishanth Aravamudan @ 2005-03-02 20:33 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 1558 bytes --]

Hi,

Please consider applying.

Description: Rather than use custom code in DRM_WAIT_ON() to do exactly
what wait_event_interruptible_timeout() does, use the function and just
change the return values appropriately.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>


--- 2.6.11-kj-v/drivers/char/drm/drm_os_linux.h	2005-03-01 23:38:26.000000000 -0800
+++ 2.6.11-kj/drivers/char/drm/drm_os_linux.h	2005-03-02 12:30:45.000000000 -0800
@@ -6,6 +6,7 @@
 
 #include <linux/interrupt.h>	/* For task queue support */
 #include <linux/delay.h>
+#include <linux/wait.h>
 
 /** File pointer type */
 #define DRMFILE                         struct file *
@@ -121,26 +122,12 @@ do { 									 \
 
 #define DRM_WAIT_ON( ret, queue, timeout, condition )		\
 do {								\
-	DECLARE_WAITQUEUE(entry, current);			\
-	unsigned long end = jiffies + (timeout);		\
-	add_wait_queue(&(queue), &entry);			\
-								\
-	for (;;) {						\
-		__set_current_state(TASK_INTERRUPTIBLE);	\
-		if (condition)					\
-			break;					\
-		if (time_after_eq(jiffies, end)) {		\
-			ret = -EBUSY;				\
-			break;					\
-		}						\
-		schedule_timeout((HZ/100 > 1) ? HZ/100 : 1);	\
-		if (signal_pending(current)) {			\
-			ret = -EINTR;				\
-			break;					\
-		}						\
-	}							\
-	__set_current_state(TASK_RUNNING);			\
-	remove_wait_queue(&(queue), &entry);			\
+	long __ret;						\
+	__ret = wait_event_interruptible_timeout(queue, condition, timeout); \
+	if (__ret == 0)						\
+		ret = -EBUSY;					\
+	else if (__ret == -ERESTARTSYS)				\
+		ret = -EINTR;					\
 } while (0)
 
 

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-03-02 20:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-02 20:33 [KJ] [PATCH] drm/drm_os_linux: use Nishanth Aravamudan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.