Module Name:    src
Committed By:   riastradh
Date:           Sat Feb 28 03:27:38 UTC 2015

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915: intel_drv.h

Log Message:
Recheck condition after wait in wait_for like Linux does.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_drv.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_drv.h:1.7 src/sys/external/bsd/drm2/dist/drm/i915/intel_drv.h:1.8
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_drv.h:1.7	Sun Sep  7 23:03:11 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_drv.h	Sat Feb 28 03:27:38 2015
@@ -50,7 +50,9 @@
 		int ms = (MS);						\
 		while (!(COND)) {					\
 			if (--ms < 0) {					\
-				ret__ = -ETIMEDOUT;			\
+				DELAY(1000);				\
+				if (!(COND))				\
+					ret__ = -ETIMEDOUT;		\
 				break;					\
 			}						\
 			DELAY(1000);					\
@@ -59,7 +61,8 @@
 		unsigned long timeout__ = jiffies + msecs_to_jiffies(MS); \
 		while (!(COND)) {					\
 			if (time_after(jiffies, timeout__)) {		\
-				ret__ = -ETIMEDOUT;			\
+				if (!(COND))				\
+					ret__ = -ETIMEDOUT;		\
 				break;					\
 			}						\
 			if ((W) && drm_can_sleep())  {			\

Reply via email to